Ich weiß, wie man den grundlegenden c # -Code schreibt, um E-Mails zu senden, aber ich frage mich, ob es größere Probleme gibt. Gibt es Dinge, die ich vermeiden sollte? Best Practices? usw.
Danke !!
Sie möchten dieses Material wahrscheinlich in Stapeln erzeugen, damit nicht alles von einem Prozess in einer kontinuierlichen Schleife gesendet wird. Sie können dies viel schneller tun, wenn Sie die Chargen mit 25 E-Mails gruppieren und etwa 50 Threads erzeugen, um diese 25 Warteschlangen zu senden. Angesichts Ihrer 10.000 E-Mails würde es nur 8 Schleifen benötigen, um den gesamten Stapel von E-Mails zu vervollständigen.
Sie können diese Zahlen natürlich ändern, aber Sie müssen dies in mehrere Threads aufteilen, die eine Gruppe von E-Mails senden. Es liegt an Ihnen, die optimalen Zahlen für diesen Prozess zu finden.
Sie sollten wahrscheinlich Ihre E-Mails drosseln, um nicht mehr als x pro Zeiteinheit zu senden. Sie möchten nicht, dass der E-Mail-Server eines Clients Ihre E-Mails für einen Denial-of-Service-Angriff missbraucht.
Ich nehme an, Sie haben sich mit den größeren Themen beschäftigt, etwa wie sich ein Kunde anmeldet oder abmeldet?
Seien Sie auch darauf vorbereitet, dass viele Nachrichten als unzustellbar zurückkommen, und bereiten Sie sie vor, um sie zu verarbeiten. Menschen ändern ihre E-Mail-Adresse die ganze Zeit, verlassen ein Unternehmen usw. Machen Sie keinen Feind eines Kunden (oder großen ISP), indem Sie weiterhin E-Mails an die gleichen unzustellbaren Adressen Tag für Tag senden.
Als Reaktion auf Ihren Kommentar könnte ein leistungsstarker E-Mail-Server auf einer schnellen Verbindung problemlos 100, wenn nicht sogar 1.000 E-Mails pro Sekunde senden.
Denken Sie darüber nach, zu welcher Tageszeit der Empfänger tatsächlich die E-Mail erhalten soll. Morgen, Nachmittag usw. Und denken Sie an die Zeitzone (nicht für Sie). Eine E-Mail, die einen "idealen Wein zum Abendessen" promotet, wird besser um 4 Uhr nachmittags verschickt als um 4 Uhr.
Seien Sie sehr vorsichtig bei der Verwendung eines "gemeinsamen" E-Mail-Servers. Teilen Sie es mit einem Spammer, der die IP-Adresse auf die schwarze Liste setzen wird? Wie können Sie sicher sein, dass sich das morgen nicht ändert?
Sind Sie mit dem vertrauenswürdigen offenen E-Mail-Standard vertraut? Je mehr Sie tun können, um sich von den Spammern zu trennen, desto besser wird Ihre E-Mail-Kampagne empfangen.
Ich empfehle dringend Multithreading, wenn Sie nicht schon sind!
Wenn Sie Tausende von E-Mails verschicken, gehe ich davon aus, dass Sie Teil einer Unternehmensentität werden, die es tut. Dies ist weniger eine Antwort auf wie, aber Sie müssen sich wirklich der CAN SPAM Act von 2003 bewusst sein. Meine Firma macht Massenmails und es war eines der ersten Dinge, die ich an meinem ersten Arbeitstag bekommen habe. Angesichts der Tatsache, dass es einige recht harte Strafen geben kann, können Sie sicherstellen, dass Sie sich an die Bestimmungen des Gesetzes halten, um einige Probleme zu vermeiden.
Bei GameSpy haben wir MSMQ verwendet, um unsere E-Mails in Warteschlangen zu stellen, manchmal hunderttausend oder mehr. Wenn der Dienst abstürzte oder etwas schief ging, war es einfach genug, neu zu starten, und es wurde dort fortgesetzt, wo es aufgehört hat.
Fügen Sie diese Zeile Ihren E-Mails hinzu ...
"Bitte fügen Sie [email protected] der Liste Ihres sicheren Absenders hinzu"
:) Haha
Ich habe an einem Massen-E-Mail-System für eine Marketingfirma gearbeitet. Wir haben ungefähr 10 Millionen pro Monat zwischen mehreren Kunden geschickt. Ein paar Hinweise:
Das hat eigentlich nichts mit .net zu tun, aber:
Erstellen Sie eine einfache Methode zum Abbestellen.
Stellen Sie sicher, dass die IP-Adresse Ihres Hosts nicht bereits auf einer Blacklist aufgeführt ist. Stellen Sie außerdem sicher, dass das Reverse-DNS korrekt konfiguriert ist.
Stellen Sie sicher, dass Sie Ihre Konfiguration in einer Konfigurationsdatei speichern. Es wird dein Leben leichter machen.
Web.config:
%Vor%Ich würde ernsthaft in Betracht ziehen, Ihren Mailserver woanders zu hosten.
Spamhous, Outblaze und andere haben bereits den Großteil des EC2-Adressraums auf die schwarze Liste gesetzt. Du wirst es schwer haben.
UPDATE für Empfehlungen
Wenn ich diesen Weg gehen würde, würde ich eines von zwei Dingen tun. Entweder würde ich meinen eigenen Mailserver aufbauen und oben auf den schwarzen Listen bleiben; Oder, ich würde mich mit einem E-Mail-Marketing-Unternehmen wie Constant Contact integrieren. Sie haben eine ziemlich anständige Web-Service-API.
Sei sehr vorsichtig darüber, wie du das Ding einfädelst. Ich habe einen schlechten Code gesehen, der mehrere Threads startet, aber keine Möglichkeit bietet, die Daten zu sperren, sodass einige Leute bis zu zehn oder mehr derselben E-Mail erhalten. Das ist offensichtlich nicht gut.
Auch wenn es in der gleichen Box wie Ihre Website laufen soll, möchten Sie auf jeden Fall ein Timer-Objekt verwenden, um nicht alles auf einmal zu senden. Je nach Implementierung können Sie die CPU oder die Festplatte in die Knie zwingen.