2012-10-16 12 views
5

Eines unserer Probleme ist, dass unser ausgehenden E-Mail-Server manchmal saugt. Benutzer werden eine E-Mail in unserer Anwendung auslösen, und die Anwendung kann in der Größenordnung von 30 Sekunden dauern, um sie tatsächlich zu senden. Machen wir es noch schlimmer und geben zu, dass wir dies nicht einmal auf einem Hintergrundthread machen, so dass der Benutzer während dieser Zeit vollständig blockiert ist. SQL Server Database Mail wurde als Lösung für dieses Problem vorgeschlagen, da es im Grunde eine Nachrichtenwarteschlange implementiert und physisch näher und viel reaktionsschneller ist als unser E-Mail-Host von Drittanbietern. Es ist auch wirklich sehr einfach für uns zu implementieren, da es nur einen Aufruf an SmtpClient.Send mit der Ausführung einer gespeicherten Prozedur ersetzt. Die meisten unserer Anwendungs-E-Mails enthalten PDFs, XLSs usw., und ich habe gesehen, dass die Größe dieser Anhänge bis zu 20 MB erreicht.Ist es eine gute Idee, Database Mail als E-Mail-Relay-Server zu verwenden?

Mit Datenbank-E-Mail, um alle unsere Anwendung zu behandeln E-Mail-Gerüche schlecht für mich, aber ich habe es schwer, jemanden davon sprechen angesichts der extrem niedrigen Kosten der Implementierung. Unser Produktions-Datenbank-Server ist viel zu mächtig, also bin ich mir nicht sicher, ob es könnte die Last, entweder. Irgendwelche Ideen oder sicherere Alternativen?

Antwort

1

Alles, was Sie tun müssen, ist die Ausführung über einen SMTP-Server. Wenn Sie große Mengen an E-Mails versenden möchten, müssen Sie nicht nur die Server (und DNS-Server) ausgleichen Wenn Sie 100K + Mails gleichzeitig versenden möchten, stellen Sie jedoch sicher, dass Ihre ausgehenden E-Mail-Server über die richtigen A-Einträge verfügen, die in DNS registriert sind, um Rücksprünge zu verhindern.

Es ist eine billige Lösung (abzüglich der Load Balancer Kosten).

+0

Könnten Sie näher ausführen? Meinst du damit einen SMTP-Server in unserem LAN zu hosten und diesen zu nutzen? Wäre Spam-Filterung ein Problem? Wir senden, was ich als eine geringe Menge an E-Mail betrachte, aber senden oft große Anhänge, so dass ich nicht sicher bin, ob der Lastenausgleich die Kosten wert ist. –

0

Ja, dual home der Server für Ihr internes LAN und das Internet und stellen Sie sicher, es ist ein Outbound-Server. Beginnen Sie mit einem SMTP-Server und wenn Sie sofort Engpässe bekommen, schauen Sie, ob es sich um Speicher-, Festplatten-, Netzwerk- oder Load-bezogene Lösungen handelt. Wenn es sich um eine Last handelt, kann es Zeit sein, den Lastausgleich zu betrachten. Wenn es speicherbezogen ist, werfen Sie mehr Speicher darauf. Wenn es diskettenbezogen ist, wirf einen Raid 0 + 1 Array darauf. Wenn es netzwerkabhängig ist, verwenden Sie eine größere Leitung.

+0

Ich bin ein ziemlich beschissener Netzwerk/Server Administrator. Unser tatsächlicher Netzwerk-/Serveradministrator sagt, dass Empfänger unsere E-Mails blockieren könnten, da sie nicht in der Lage wären, unseren SMTP-Server rückwärts zu durchsuchen. Ich weiß nicht wirklich, was das bedeutet, aber ich untersuche es. Willkommen bei StackOverflow! Es ist eine bessere Idee, nur Ihre ursprüngliche Antwort zu bearbeiten, anstatt eine neue Antwort zu posten, um eine Folgefrage zu beantworten. –

+0

Informieren Sie Ihren Netzwerkadministrator, dass dies bei ordnungsgemäß konfigurierten DNS-Einträgen kein Problem darstellt. –

+0

Er sagt, dass unsere Domain bereits auf einen Mailserver verweist (es ist nicht unser eigener) und dass wir eine Subdomain oder etwas Seltsames verwenden müssten, um eine zweite zu haben. –