Welche Art von Problemen / Tipps / Tipps können Sie für ein .Net-Programm teilen, das möglicherweise 10k + E-Mails pro Tag an Abonnenten sendet?

7

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 !!

    
Tad Donaghe 04.05.2009, 19:31
quelle

11 Antworten

10
  • Stellen Sie sicher, dass Sie einen Hostingdienst verwenden, der Ihr Konto aufgrund der Menge an E-Mails, die Sie senden, nicht deaktiviert.
  • Fügen Sie eine Art von Audit oder Protokollierung hinzu, damit Sie wissen, welche E-Mails Sie gesendet haben
  • Verwenden Sie BCC, um dieselbe E-Mail an mehrere Empfänger zu senden
  • Schalte die E-Mails in die Warteschlange, um E-Mails zu vermeiden
  • Erwägen Sie das Senden von E-Mails in Stapeln. Z.B. Sie benachrichtigen Benutzer eines neuen Forumsbeitrags und senden dann nicht jedes Mal eine E-Mail an jeden, wenn jemand Beiträge veröffentlicht, und bieten die Möglichkeit, tägliche Auszüge zu erstellen.
  • Wie andere bereits erwähnt haben, verwenden Sie Threading, um eine große Menge an E-Mails zu versenden
gabor 04.05.2009, 19:35
quelle
5

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.

    
Nick Berardi 04.05.2009 19:37
quelle
5

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.

    
JonnyBoats 04.05.2009 19:35
quelle
4

Ich empfehle dringend Multithreading, wenn Sie nicht schon sind!

    
overslacked 04.05.2009 19:38
quelle
3

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.

    
Drew McGhie 04.05.2009 20:09
quelle
2

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.

    
Chad Grant 04.05.2009 20:34
quelle
2

Fügen Sie diese Zeile Ihren E-Mails hinzu ...

"Bitte fügen Sie [email protected] der Liste Ihres sicheren Absenders hinzu"

:) Haha

    
kd7 04.05.2009 21:48
quelle
2

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:

  • Stellen Sie sicher, dass Sie über einen Mechanismus verfügen, der auf Abmeldungen und Abmeldungen reagiert, einschließlich AOLs "Terms of Service" -E-Mails, in denen ein Nutzer Ihre E-Mails als Junk klassifiziert
  • Verwenden Sie Return-Path Spam-Scoring und E-Mail-Rendering-Dienste, um sicherzustellen, dass Ihre E-Mails für die Filter nicht wie Spam aussehen
  • Erwägen Sie die Verwendung einer Drittanbieter-Appliance oder eines Drittanbieterdienstes wie StrongMail für das Volume und die Whitelist mit den ISPs
Dave Swersky 05.05.2009 03:31
quelle
1

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%     
Ron 04.05.2009 19:56
quelle
1

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.

Siehe Ссылка und Ссылка

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.

    
NotMe 04.05.2009 20:23
quelle
1

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.

    
Jeff Putz 05.05.2009 03:25
quelle

Tags und Links