2009-07-29 4 views
5

Was ist der beste Weg, Massen-E-Mails mit ASP.Net zu senden?Senden Sie Massen-E-Mails mit ASP.Net

Zum Beispiel muss ein Website-Administrator E-Mails (z. B. einen Newsletter) an alle Benutzer seiner Website senden.

Was ist der beste Weg, dies mit ASP.Net 3.5 und C# zu tun?

Antwort

2

Wenn ich dies alleine schreiben würde, würde ich einfach die E-Mail-Adressen aus der Datenbank abrufen und die System.Net.Mail.SmtpClient-Klasse durchlaufen.

Bitte stellen Sie jedoch sicher, dass Sie den CAN-SPAM-Act kennen und dass Sie die Richtlinien befolgen.

+4

Aus Erfahrung ist dies ein wirklich schlechter Ansatz. –

+0

Ich habe es vorher getestet, aber denken Sie nicht darüber nach, wenn Sie E-Mails an mehr als 100 Adressen senden möchten! – Babak

+0

@Spencer Wenn du eine abweichende Meinung äußern willst, gib wenigstens einige Details an, warum du der gegebenen Antwort nicht zustimmst. –

1

Überprüfen Sie diesen Link >>>>Sending Mass Email using ASP.Net Die Quelle ist in VB.Net, aber da die MFCL die gleiche ist, können Sie den Code in CSharp leicht ändern. Der Aspx-Teil bleibt jedoch gleich.

+1

Die Verwendung von BCC ist ein guter Ansatz, aber ich denke nicht, dass es eine gute Idee ist, wenn Sie E-Mails an mehr als 1000 Adressen senden möchten. – Babak

+0

Ich werde diese Abstimmung wählen, weil es aus Performance-Sicht besser ist, als einzelne E-Mails zu verschicken. Mit @ BabakArjs Kommentar wäre es auch nicht schwer, eine Schleife zu verwenden, um eine bcc-Liste auf eine bestimmte Anzahl von Einträgen aufzubauen, diese dann zu senden und mit dem Rest fortzufahren. – David

9

Edit per Troys Kommentar.

Sie sollten einen externen Prozess verwenden, um die E-Mails zu senden. Wenn Ihre E-Mail-Liste auf ein paar Hundert ansteigt, werden Sie in kürzester Zeit in Timeouts geraten. Sobald Sie in die Listen gelangen, die tausend oder eine Million Datensätze lang sind, können Sie jede praktikable Lösung vergessen, die nur ASP.Net verwendet.

Ich habe tatsächlich einen Windows-Dienst entwickelt, der das Senden von Massen-E-Mails behandelt. Grundsätzlich erstelle ich in ASP.Net eine Kampagne und einen Batch-Job in verschiedenen DB-Datensätzen und füge dann auch eine Empfängerliste ein. Sobald der Job vollständig in die Datenbank geschrieben wurde, wird sein Status geändert, so dass der Windows-Dienst weiß, dass er mit der Verarbeitung des Jobs beginnen kann. Dann kann die ASP.Net-Site die Datensätze jederzeit überprüfen, um festzustellen, wie weit der Dienst bereits gekommen ist.

+1

Der Schlüssel zu dieser Nachricht ist, dass es einen Prozess für die Warteschlangenbildung und einen separaten Prozess für das Senden gibt. Ich habe den gleichen Ansatz (unter vollkommen legitimen Umständen!) Verwendet und die Versicherung, die dies gegen mögliche Zeitüberschreitungen gibt, wenn die Aufzählung einer großen Anzahl von Empfängern von unschätzbarem Wert ist. –

+0

+1 - Ich habe genau diesen Ansatz gewählt. Sie müssen eine gute Fehlerbehandlung und -wiederherstellung haben, damit der Prozess robust ist, aber es ist eine gute Strategie. –

+0

Ich würde zustimmen, dass ein externer Dienst VIEL bevorzugt wird, um es selbst zu kodieren. – David

Verwandte Themen