Ich hasse es hier nur einen Stack-Trace zu posten, aber ich habe keine Ideen mehr ... Meine App sendet E-Mails für verschiedene Aufgaben auf der Website, und in 90% der Fälle gibt es keine Probleme. Hin und wieder löst ASP.NET jedoch eine seltsame Ausnahme aus, die sich auf die Mailserver-Konnektivität zu beziehen scheint (ich verwende Google Business Server für E-Mails). Der Fehler ist zu allgemein für mich, um zu debuggen, folglich die Stapelspur unten. Meine App erfasst die Ausnahme und schreibt ein generisches 'try again in 5 minutes response' zurück.
Ich bin von diesem Fehler überrascht, weil:
Irgendwelche Ideen? Die einzigen offenen Fragen, die ich mir vorstellen kann, sind:
Der Code:
%Vor%Die Ausnahme:
%Vor%Ich habe in der Vergangenheit an Massen-E-Mail-Systemen gearbeitet. Die Ausnahmemeldung, die Sie erhalten, ist vollständig beschreibend: Der SMTP-Server nimmt vorübergehend keine E-Mails an. Dies kann auf eine Reihe von Bedingungen zurückzuführen sein:
Die Tatsache, dass das erneute Versenden der E-Mail später immer funktioniert, zeigt an, dass dies ein normales, erwartetes Verhalten ist. Es gibt nichts, was Sie anders machen können, um dies zu vermeiden. Es ist eine gängige Methode, die von ISPs verwendet wird, um den Datenverkehr bei Bedarf zu drosseln.
Zusätzlich zu dem, was Dave Swersky bereits gesagt hat: Sie können die E-Mails, die Sie senden möchten, speichern (z. B. Dateisystem oder Datenbank) und die E-Mail-Generierung von einem Dienst übernehmen lassen. Ihr Dienst würde nach neuen E-Mails zum Senden suchen. Wenn beim Senden ein Fehler auftritt, können Sie die E-Mail wieder in die Warteschlange stellen und es später erneut versuchen.
Vielleicht können Sie sogar einen lokalen STMPServer verwenden, der GoogleMail als Relay-Server verwendet. In diesem Fall könnten Sie die integrierte pickupdirectory-Funktionalität verwenden, anstatt sie selbst zu schreiben.