2010-03-08 3 views
5

Ich möchte die E-Mail mit asp.net und C# -Code planen.Zeitplan E-Mail in asp.net, C#

Was ist Grundidee oder Code für Zeitplan E-Mail?

+2

@Will, Warum können Sie nicht planen, dass eine E-Mail zu einem späteren Zeitpunkt gesendet wird? Es ist eine vollkommen legitime Anforderung - sie möchten vielleicht um 6 Uhr morgens von ihrer Website eine E-Mail verschicken, wollen aber zu diesem Zeitpunkt nicht wirklich auf "Senden" drücken müssen. Die E-Mail wird im Voraus eingerichtet, getestet usw. und dann so geplant, dass sie gesendet wird, sodass sie in den Posteingängen der Benutzer schön und früh sitzt. –

+0

@zaph in Ordnung, nehme für eine Minute an, dass er tatsächlich gefragt hat (wurde selbst geteilt). Sie müssen 1) eine App schreiben, die E-Mails sendet und dann 2) diese E-Mails an die Anwendung weitergeben.Ich denke, der Grund meines Kommentars war, dass man eine E-Mail nicht magisch planen kann. Ja, Sie können eine Anwendung erstellen, die zu einem späteren Zeitpunkt eine E-Mail sendet, aber Sie müssen diese schreiben. Außerdem, Dupling überall auf der Website. – Will

Antwort

4

Verwenden Sie vielleicht einen Scheduler? Quartz.NET ist ein ziemlich anständiger.

Ich nehme an, Sie wissen bereits, wie man eine Mail sendet, also planen Sie einfach einen neuen Job und rollen Sie damit.

2

Versuchen Sie, einfach eine einfache Konsolenanwendung zu schreiben, die die E-Mail sendet und den Windows Taskplaner verwendet, um sie bei Bedarf auszuführen. Das Senden einer E-Mail ist eine ziemlich normale Aufgabe, wie Will sagte, es gibt viele ähnliche Fragen, die bereits hier auftauchen, aber wenn Sie sich den Namespace System.Net.Mail ansehen, sollten Sie damit beginnen.

+0

Ich möchte meinen Computer nicht immer starten. Ich möchte auf meinem Hosting-Server einstellen. Ich bleibe in Indien und Server in den USA. Ich kann keine manuelle Software oder Konsolenanwendung auf ihrem installieren. also sollte ich sollte od? – AjmeraInfo

+1

Wenn ich Sie richtig verstehe, möchten Sie eine E-Mail auf einem Server auslösen, auf dem Sie keine Software installieren können? Ich denke, Ihre einzige Option könnte die Option von Albert sein, sie von einem SQL-Job auszuführen. –

2

Sie könnten eine Datenbanktabelle haben EmailSchedule (ID, SendTo, Betreff, MessageBody, SendDateTime) Wenn Sie eine zu versendende E-Mail planen möchten, schreiben Sie in die Tabelle.

dann einen Prozess haben, der alle x Minuten läuft und sendet alle E-Mails, wo SendDateTime < = Jetzt

Grüße

+0

Während beide Antworten bisher funktionieren, habe ich in der Vergangenheit herausgefunden, dass das Einrichten eines Jobs in der Datenbank, der diesen Prozess startet, einfacher zu konfigurieren und einzurichten ist als die Verwendung geplanter Aufgaben. –

0

Sie eine Tabelle in SQL haben könnte genannt mailToBeSent oder so ähnlich ... und jedes Mal, Sie möchten eine E-Mail planen, eine E-Mail in diese Tabelle mit allen geeigneten Datenelementen (Betreff, An, Cc, Text usw.) einfügen und vor allem ein Feld für Datum/Uhrzeit senden und einen SQL-Job ausführen lassen Alle 5/10/15 Minuten oder was auch immer Sie wählen, und überprüfen Sie diese Tabelle für Mail, die gesendet werden muss ... senden Sie die Nachricht, und löschen Sie den Datensatz bei Erfolg.

Ich kenne jemanden, der dieses Setup verwendet und es funktioniert wunderbar. Leider habe ich seinen Code nicht, aber ein paar Google-Suchen für jedes Stück des Prozesses könnten sich als fruchtbar erweisen.

Hier ist ein Anfang: http://www.google.com/search?&q=how+to+use+sql+job+table+to+send+emails Die erste Reihe von Links sieht gut aus. Wenn Sie diesen Weg beginnen und weitere Hilfe benötigen, lassen Sie es uns wissen.

+0

autsch. Kann mir jemand sagen, warum das ein schlechter Vorschlag ist? Wir benutzen diese Methode für ein paar Anwendungen und es funktioniert wunderbar ... was ist damit falsch? – Albert

1

Die einfachste Möglichkeit, das Senden von E-Mails zu unterscheiden, besteht darin, eine Aufgabe im Windows-Werkzeug für geplante Aufgaben zu planen. Diese Aufgabe ist ein einfacher Aufruf einer VBS-Datei. Diese VBS-Datei öffnet eine URL von Ihrer Webanwendung. Hinter dieser URL legen Sie eine Webseite, die Ihre geplante Arbeit in der App erledigen, in diesem Fall das Senden von E-Mails. Es braucht keinen Windows-Dienst, nur ein einfaches Vbs. Die aufgerufene Seite befindet sich in Ihrer App. Sie müssen also keine zusätzlichen Arbeiten ausführen, um Daten oder Behandlungen außerhalb der Web-App zu verbinden.

Hope this helfen,

Grüße,

Pierre.