Gute Möglichkeit zum Testen der E-Mail-Funktionalität

8

Arbeiten an einer App mit Benachrichtigung per E-Mail. Ich möchte testen, ohne E-Mails an Produktionsserver und Clients zu senden. Vor ein paar Jahren erinnere ich mich, dass jemand unseren Exchange-Server mit einer schlechten E-Mail-Schleife heruntergefahren hat und es vorziehen würde, das nicht zu wiederholen ...

Irgendwelche Vorschläge für ein Dev-Setup? Momentan denken Sie, dass ein einfacher SMTP-Server die Aufgabe erledigen wird, aber ich kenne diesen Bereich nicht. Ich würde die Fähigkeit benötigen, alle E-Mails zu sehen, die an den Server gesendet werden, aber sie sollten nie geliefert werden.

Danke.

    
jason saldo 10.12.2008, 20:42
quelle

6 Antworten

18

Papercut passt perfekt zu dem, wonach Sie suchen. Es wurde in den letzten Monaten öffentlich zugänglich gemacht. Ich benutze es seit einem Monat. Es könnte nicht einfacher sein, E-Mail-Funktionalität zu testen.

  1. Laden Sie Papercut herunter.
  2. Führe Papercut aus, während es in deinem Fach liegt.
  3. Konfigurieren Sie den SMTP-Host Ihrer Anwendung für den Computer, auf dem Papercut ausgeführt wird.
  4. Papercut ansehen empfängt die E-Mails und zeigt den Inhalt an.
  5. Wenn du fertig bist. Schließen Sie Papercut.
Dale Ragan 11.12.2008, 00:57
quelle
5

Es ist ziemlich einfach, einen Alias ​​einzurichten, der an eine Datei geliefert wird, und nicht über einen Zustellmechanismus in einem der gängigen Unix / Linux-Mailserver wie Postfix oder Sendmail. Während des Tests können Sie diese Datei einschränken, um zu sehen, dass die E-Mail gesendet wird, wenn Sie dies erwarten. Nachdem die Tests abgeschlossen sind, können Sie sie an den Ort weiterleiten, an den sie wirklich gehen soll.

    
Paul Tomblin 10.12.2008 20:53
quelle
1

Je nachdem, was Ihr E-Mail-Mechanismus ist, wäre eine andere Alternative, ein Testmail-Skript (py, php, sh) zu erstellen, das alle bereitgestellten Argumente aufzeichnet und sie in eine Tag-Tabelle mit Ereigniszeitstempeln ablegt. Es ist nicht elegant, aber würde für das Debuggen tun. Trick hängt alles davon ab, wie Sie E-Mail senden.

Wenn Sie smtp und nicht sendmail verwenden, schreiben Sie in ähnlicher Weise eine Ghetto-App, die auf einer hohen Portnummer lauscht und nur dumm mit den richtigen Werten antwortet.

    
David 10.12.2008 20:52
quelle
1

Ihre Frage hat die Umgebung nicht beschrieben, aber wenn Sie eine OO-Sprache (z. B. Java) verwenden, können Sie die Abhängigkeitsinjektion verwenden. Schreibe eine MessageSender Schnittstelle mit zwei Implementierungen; Eins ( EmailMessageSender ) sendet tatsächlich E-Mails, während das andere ( FileMessageSender ) die Nachricht in einer Zeichenfolge erfasst.

Schreiben und testen Sie EmailMessageSender isoliert; Sobald es verifiziert ist, legen Sie es in das Regal.

Schreiben Sie die anderen Teile des Systems gegen MessageSender und testen Sie sie mit einer (injizierten) Instanz von FileMessageSender . (Wenn FileMessageSender auch den Abruf des Inhalts der "gesendeten Nachricht" zulässt, können Sie ihn im Komponententest verwenden.)

Nachdem Sie den Rest des Systems verifiziert haben, stellen Sie es mithilfe einer korrekt konfigurierten Instanz von EmailMessageSender (erneut über Injection) bereit.

    
joel.neely 11.12.2008 00:43
quelle
1

Sie können Mailtrap verwenden. Sie können dies auf Ihrem Staging-Server oder Entwicklungsserver einrichten. Es ist einfach zu bedienen und Sie können auch Produktions-E-Mail-Adresse verwenden. Alle E-Mails werden in den E-Mail-Posteingang von Mailtrap eingefangen. Es ist einfacher einzurichten.

    
Suraj 27.04.2017 08:53
quelle
0

Warum spuckst du die E-Mail-Liste nicht einfach in eine Textdatei aus und löschst alle Anrufe vom Mail-Server?

    
madcolor 10.12.2008 20:46
quelle

Tags und Links