11 Stimmen

Wie testet man das Senden von E-Mails aus asp.net auf Entwicklungsmaschine?

Wie kann ich das erreichen? Die SMTP-Klasse gibt auf dem Entwicklungsrechner eine Fehlermeldung aus, dass kein SMTP-Server gefunden wurde. Gibt es eine Möglichkeit, das Senden von E-Mails auf dem Entwicklungsrechner zu testen?

0voto

tvanfosson Punkte 506878

Ich in der Regel tun dies, indem Sie eine Wrapper-Klasse für den SmtpClient, dann mocking aus der Wrapper in meine Tests erstellen. Dadurch werden die tatsächlichen Mail-Client/Server-Abhängigkeiten aus meinen Unit-Tests entfernt. Der Wrapper selbst ist relativ schlank, so dass ich nicht das Gefühl habe, dass ich dafür Tests erstellen muss. Normalerweise führe ich meine Tests auf Integrationsebene für Dinge wie diese als explorative Tests in meiner Staging-Umgebung durch. Die Staging-Umgebung verwendet in der Regel einen Produktions-Mailserver, allerdings mit "gefälschten" Daten - z. B. Kunden-E-Mail-Adressen, die durch meine eigenen ersetzt werden.

Davon abgesehen würde ich erwarten, dass der Client auch auf Ihrem Entwicklungssystem fehlerfrei funktioniert, es sei denn, Ihr Mailserver ist durch eine Firewall oder ähnliches geschützt, so dass Ihr Entwicklungssystem nicht mit ihm kommunizieren kann. Können Sie den Fehler, der bei Ihnen auftritt, genauer beschreiben?

0voto

Chao Punkte 2993

Ohne die Ausnahme zu sehen, können wir nicht viel tun. Solange die Details auf Ihrer Dev-Maschine auf einen richtigen SMTP-Server zeigen und die richtigen Anmeldeinformationen haben, wird Ihr Code nicht das Problem sein und Sie sollten weiter unten in der Kette suchen. Ich hatte eine Ausnahme, bei der der Zielcomputer die Anfrage ablehnte, obwohl alles andere stimmte. Nachdem ich Ewigkeiten damit verbracht habe, die Anmeldeinformationen doppelt und dreifach zu überprüfen, von unserem Server zu senden usw., habe ich den Fehler auf McAfee zurückgeführt, das den E-Mail-Port 25 blockiert...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X