2009-07-01 6 views
0

Ich habe die Aufgabe, die Unternehmen E-Mail-Absendungen von ihrer Website zu vereinheitlichen und zu vereinfachen, mit der Möglichkeit, die E-Mails selbst zu bearbeiten. Also im Scetching auf eine C# -Fensterform Anwendung mit WYSIWYG-Editor, um alle E-Mails zu verwalten. Die E-Mail ist in SQL-DB gespeichertErstellen einer E-Mail senden Anwendung in C#

Aber ich brauche dringend einige Tipps und Hinweise auf die Logik einiger der Sendungen.

Einige der Aussendungen sind Aktionen, die von Anmeldungen auf der Website ausgelöst werden. Einige Aussendungen basieren jedoch auf Intervallen, wie Suchtreffer-E-Mail-Benachrichtigungen und andere Erinnerungs-E-Mails, die zwischen 5 Minuten und 24 Uhr gesendet werden .

Mein Dilema ist das: Wie gehen Sie am besten mit Intervall basierten Aussendungen? Kannst du eine Art von Deamon implementieren oder die Checks speichern, die in bestimmten Intervallen gespeichert sind, und Ausschüsse auslösen, wenn es Treffer gibt? Ich würde es vorziehen, wenn die Anwendung sowohl die Verwaltung der E-Mail-Inhalt und die geplanten Versendungen (die 5 min Checks und alle Mitternacht)

oder würde es eine andere kluge Weise, die intervallbasierte sendouts zu bewältigen?

Dankbar für Tipps und Hinweise, wie diese

Antwort

2

Für die Anmelde-E-Mails Sie nur Code hinzufügen, können die E-Mail zu senden, was auch immer ausgeführt wird, wenn Benutzer anmelden.

Für die geplanten E-Mails gibt es eine Reihe von Möglichkeiten, wie Sie damit umgehen können.

Wenn Sie denken, nur alles in der Datenbank verwalten ist besser, und sind auf SQL 2005 oder höher, gibt es integrierte Datenbank Mail-Funktionalität. http://msdn.microsoft.com/en-us/library/ms175887.aspx
Wiederkehrende E-Mails können von geplanten Jobs gesendet werden, die eine Warteschlange von E-Mails überprüfen, die Sie verwalten.

Wenn Sie die E-Mails in Ihrem Code behandeln möchten Sie System.Net.Mail verwenden können. Die Planung kann von einem Windows-Dienst oder einer wiederkehrenden Aufgabe im Betriebssystem ausgeführt werden.
http://support.microsoft.com/kb/226795

0

angehen würde Irgendeine Art von Warteschlange für Sie ideal. Sie würden Ihre Anfrage in die Warteschlange stellen und sie würde generiert werden. Trigger kann die Anforderung sowohl in die Warteschlange als auch in Ihre Benutzeroberfläche einfügen. Und natürlich erwarte ich Sie, dass durch den Code tun (smtp)

0

Dies ist eine sehr weit gefasste Frage ist aber, wenn Sie SQL Server verwenden, haben Sie eine Menge von E-Mail-Optionen eingebaut. Auch Warteschlangen und Scheduler integriert.

+0

Können Sie die Warteschlangen und scheduels aus dem C# -Code umgehen versuchen?hinzufügen/bearbeiten/entfernen etc – Andreas

+0

@ ads81 können Sie, wenn in SQL 2008 und SQLDMO in jeder Version unter dem SQL Management Objects-Bibliotheken verwenden – BinaryMisfit

1

Google für "C# Windows Service" - ein Service ist das Windows-Äquivalent eines Daemon, der ideale Weg, um ein Programm zu schreiben, das im Hintergrund läuft, automatisch auf einem Server startet und sich nicht vorher anmelden muss es beginnt.

Machen Sie den Dienst Thread.Sleep jeweils für ein paar Sekunden und prüfen Sie, ob es Zeit für das Herunterfahren ist oder ob die Datenbank nach zu sendenden E-Mails gefragt wird.

http://www.systemnetmail.com/

Verwandte Themen