Heim > Backend-Entwicklung > PHP-Tutorial > E -Mail -Debugging mit Mailcatcher

E -Mail -Debugging mit Mailcatcher

Jennifer Aniston
Freigeben: 2025-02-21 11:15:09
Original
533 Leute haben es durchsucht

E -Mail -Debugging mit Mailcatcher

Sie verwenden E -Mails in Ihren Anwendungen, oder? Ok, das ist eine rhetorische Frage. Natürlich tust du es. Obwohl E -Mail über 30 Jahre alt ist, ist es bei weitem immer noch die beliebteste Anwendung der Welt. Hier sind einige Statistiken aus Pingdom für 2012:

  • 2,2 Milliarden - Anzahl der E -Mail -Benutzer weltweit
  • 144 Milliarden - Gesamt -E -Mail -Verkehr pro Tag weltweit
  • 4,3 Milliarden - Anzahl der E -Mail -Kunden weltweit im Jahr 2012

erstaunlich!

Key Takeaways
  • MailCatcher ist ein nützliches Tool für Entwickler, mit dem Sie E -Mail -Funktionen in Ihren Anwendungen testen können, ohne tatsächlich E -Mails an echte Adressen zu senden. Es wird einen einfachen SMTP -Server ausgeführt, auf dem jede Nachricht gesendet wird und in einer Weboberfläche angezeigt wird.
  • Die MailCatcher -Web -Benutzeroberfläche ist einfach und effektiv, wobei die E -Mails in der Warteschlange aufgelistet und detaillierte Informationen dazu bereitgestellt werden. Dies ist eine hervorragende Möglichkeit zu überprüfen
  • Einrichten von MailCatcher umfasst die Installation auf Ihrem virtuellen Computer oder Linux -Computer und Konfigurieren Ihrer Anwendung, um E -Mails an den MailCatcher -Server zu senden. Der Artikel enthält detaillierte Anweisungen und Beispielcode für diesen Vorgang.
  • Es ist wichtig zu beachten, dass MailCatcher nicht für die Verwendung in einer Produktionsumgebung ausgelegt ist. Es ist ein Entwicklungsinstrument, das für die Verwendung in einer lokalen Entwicklungsumgebung vorgesehen ist. Die Verwendung in einer Produktionsumgebung kann zu verlorenen E -Mails und anderen Problemen führen.

Aber warum ein weiterer Artikel über E -Mail?

Aus einem einfachen Grund, von dem wir wahrscheinlich alle an der einen oder anderen Stelle gefangen wurden. Weil wir so nah an der Produktion wie möglich testen müssen, aber ohne unsere Kunden versehentlich eine E -Mail zu senden und sie folglich verwirrt oder frustriert zu werden oder dass ihre Kunden Test -E -Mails erhalten haben.

Ich bin sicher, Sie wissen, was ich meine. Sie denken, Sie haben Ihre Anwendung in einem Debug -Modus festgelegt. Angesichts dessen starten Sie Ihren Test, der eine Last von E -Mails von Ihrer Bewerbung sendet. Währenddessen fühlen Sie sich in dem Wissen wohl, dass niemand außer Sie jemals sehen wird.

Ihre Tests bestehen, Sie gratulieren sich selbst und fahren weiter. Kurze Zeit später erhalten Sie eher ein, sagen wir einfach , Skype -Anruf von Ihrem Kunden. Sie ärgert sich ziemlich, als ihre Kunden angerufen haben und gefragt haben, warum sie von ihrem Unternehmen seltsame E -Mails erhalten haben. Sie ist nicht glücklich und will Antworten?

dort gewesen? Willst du nicht wieder da sein? Ich vermute, Sie tun es nicht. Hier ist die Lösung - Mailcatcher. Wenn Sie damit nicht vertraut sind, mailcatcher

… führt einen super einfachen SMTP -Server aus, auf dem jede Nachricht gesendet wird, die in einer Weboberfläche angezeigt wird. Führen Sie MailCatcher aus, stellen Sie Ihre bevorzugte App so ein, dass sie anstelle Ihres Standard -SMTP -Servers an SMTP: //127.0.0.1: 1025 geliefert werden. Schauen Sie sich dann http://127.0.0.1:1080 an, um die bisher angekommene Mail zu sehen.

Klingt nach einer guten Lösung? Egal, ob Sie müde sind, unter Druck, neu im Team oder nur Tests ausführen müssen - MailCatcher stellt sicher, dass keine E -Mails, die jemals außerhalb Ihres Netzwerks oder sogar außerhalb Ihrer virtuellen Entwicklungsmaschine gesendet werden.

In diesem Beitrag werde ich Ihnen zeigen, wie Sie sie einrichten und durch die Benutzeroberfläche rennen, wenn E -Mails von ihm erfasst wurden.

Eine vorbereitete virtuelle Maschine

Um Ihnen große Mühe bei der Einrichtung von Mailcatcher zu sparen, habe ich ein benutzerdefiniertes Vagrant -Box erstellt, das alles für Sie macht. Stellen Sie sicher, dass Sie VirtualBox und Vagrant installiert haben, und klonen Sie dann eine Kopie des Repositorys des Artikels mit dem folgenden Befehl:

<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie dann im geklonten Projektverzeichnis den folgenden Befehl aus:

vagrant up
Nach dem Login kopieren
Nach dem Login kopieren

Auf diese Weise starten Sie den Bereitstellungsprozess für virtuelle Maschine und zeigt eine Menge Ausgabe an, wenn der Bereitstellungsprozess ausgeführt wird. Die konfigurierte virtuelle Maschine ist ziemlich minimalistisch. Es verfügt über MailCatcher , sendmail und nginx installiert.

nginx verfügt über ein einfaches Vhost -Setup, das das Projektverzeichnis auf/var/www/auf der virtuellen Maschine ordnet. Wenn Sie genau wissen möchten, was während der Bereitstellung passiert, können Sie die Provision.sh.

manuell installieren mailcatcher

Wenn Sie MailCatcher selbst installieren möchten und einen virtuellen Computer (oder einen Linux -Computer verfügbar) haben, sind hier die Schritte zum Ausführen:

<span>sudo apt-get install -y vim curl python-software-properties lynx nginx
</span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc
</span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3
</span><span>sudo gem install mailcatcher
</span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
Nach dem Login kopieren
Nach dem Login kopieren

Sie können den dritten Befehl ausführen oder nicht. Ich habe getan, als ich ein sehr minimalistisches Ubuntu -präzise 64 -Vago -Bild verwendet habe, das die Pakete zum Erstellen von Mailcatcher benötigt. Bitte beachten Sie, dass die einzelnen Paketnamen möglicherweise unterschiedlich sein, wenn Sie sich auf einer anderen Linux -Verteilung oder -version befinden.

Hinweis: Wenn Sie den Standard -MailCatcher -Startvorgang befolgen, werden Sie nur IP 127.0.0.1 und Port 1025 anhören. Mit diesem Setup konnten wir es nicht vom Host -Computer vom Host -Computer sehen. Deshalb habe ich eine öffentliche IP auf der virtuellen Maschine, 192.168.56.111, hinzugefügt und die Konfiguration von MailCatcher so geändert, dass sie auf allen IPs hört.

Die MailCatcher -Web -UI

Jetzt können Sie die MailCatcher -Web -Benutzeroberfläche unter http://192.168.56.111:1080 sehen. Es wird wie das Bild unten aussehen:

E -Mail -Debugging mit Mailcatcher

Es handelt sich um eine ziemlich einfache Schnittstelle, in der die E -Mails in der E -Mail -Catcher -Warteschlange angegeben sind, sofern verfügbar, oben. Wenn es in der Liste E -Mails gibt, zeigt der untere Bereich Ihnen gute Informationen darüber, die wir später sehen werden.

Beispielcode

Für diesen Artikel habe ich ein einfaches PHP -Skript index.php erstellt, das im Projektrepository verfügbar ist und unter http://192.168.56.111 zugänglich ist. Es verwendet Swiftmailer, um eine Verbindung zum MailCatcher herzustellen und eine E -Mail unter Load zu senden. Sie können in dem Code unterhalb einer ziemlich Standard -HTML -Seite sehen.

<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
Nach dem Login kopieren
Nach dem Login kopieren

Es enthält Mail-loader.php, das unten verfügbar ist.

vagrant up
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie mit dem Artikel von Swiftmailer Aurelio hier auf SitePoint nicht vertraut sind, bietet eine hervorragende Einführung. Übrigens ist es sein Code, den ich für dieses Beispiel verwendet habe. Danke Aurelio.

Grundsätzlich gibt es für uns nur eine Zeile, die uns feststellen kann. Dies ist Folgendes:

<span>sudo apt-get install -y vim curl python-software-properties lynx nginx
</span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc
</span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3
</span><span>sudo gem install mailcatcher
</span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
Nach dem Login kopieren
Nach dem Login kopieren

Dies erstellt eine Verbindung zum MailCatcher -Server, den wir gerade eingerichtet haben. Das ist es, nichts Besonderes! Ich habe die Seite jetzt dreimal neu geladen, wodurch drei E -Mails gesendet wurden. Sie können sehen, dass sie im Bild unten in MailCatcher aufgeführt sind.

E -Mail -Debugging mit Mailcatcher

Ich habe auf den ersten Eintrag geklickt, in dem die empfangenen Details und die Fachdetails sowie den Körper der E -Mail angezeigt werden. Wenn wir wie im Bild unten zur Registerkarte Quelle wechseln, können wir die RAW -E -Mail -Details sehen:

E -Mail -Debugging mit Mailcatcher

Über die dritte Registerkarte können wir mit Fractal den Inhalt unserer E -Mail analysieren. Ich werde das heute überspringen, da es über den Rahmen dieses Artikels hinausgeht.

Wir sind alle

gesetzt

Nachdem können wir jetzt E -Mails erstellen, wie wir es sonst tun würden, die Empfänger, Themen, Anhänge usw. wie ich oben einstellen und wissen, dass sie niemals zu den wirklichen Adressen gehen werden.

Wir können Tests schreiben, um zu überprüfen, ob der Code so funktioniert, wie er sollte. Wir können den E -Mail -Senden von Workflow, Meldungsinhalt, Empfänger, Header usw. überprüfen. Es ist so praktisch wie es nur geht, ohne etwas außerhalb unserer Umgebung zu schicken.

Jetzt können wir sicher sein, dass unsere Kunden (und ihre Kunden) niemals E -Mails erhalten, die nie für sie bestimmt waren. Was für eine Erleichterung.

einpacken

Nun, dies ist ein ziemlich triviales Beispiel, nur ein einfaches Snippet für Swiftmailer -Code für das Beispiel. Ich bin mir sicher, dass Ihre Codebasen viel komplexer und raffinierter sind als dieses Beispiel.

Ich bin mir jedoch sicher, dass Sie in Ihren Anwendungen Debug- und Testenkonfigurationen zur Verfügung haben, bei denen Sie den Host und den Port entsprechend festlegen können und ihn von Live differenzieren können. Auf diese Weise muss sich kein anderer Code ändern, und Sie können die Vorteile der Seelenfriedenscatcher nutzen.

Verwenden Sie EMALCATCHER bereits? Was ist Ihre Erfahrung mit der Integration? Gab es irgendwelche Probleme, die Sie nicht bewusst haben? Teilen Sie Ihre Gedanken in den Kommentaren.

häufig gestellte Fragen zu Mailcatcher

Wie installiere ich MailCatcher auf meinem System? Zunächst müssen Sie sicherstellen, dass Ruby und Rubygemems auf Ihrem System installiert sind. Sobald Sie diese Voraussetzungen haben, können Sie MailCatcher installieren, indem Sie den Befehls Gem Mailcatcher in Ihrem Terminal ausführen. Nach Abschluss der Installation können Sie den MailCatcher starten, indem Sie den Befehlspostcatcher in Ihrem Terminal ausführen. Sie sollten nun in der Lage sein, auf die MailCatcher -Weboberfläche unter http: // localhost: 1080 zugreifen zu können. Die SMTP -Einstellungen Ihrer Anwendung verweisen auf den SMTP -Server von MailCatcher. Der Server läuft auf Localhost und hört auf Port 1025 an. Der genaue Prozess für die Festlegung dieser Werte hängt von der Sprache und dem Framework Ihrer Anwendung ab. Im Allgemeinen müssen Sie die SMTP -Adresse auf 'Localhost' und den SMTP -Port auf '1025 festlegen '.

Kann ich MailCatcher in einer Produktionsumgebung verwenden? Es ist ein Entwicklungsinstrument, das für die Verwendung in einer lokalen Entwicklungsumgebung vorgesehen ist. Die Verwendung von Mailcatcher in einer Produktionsumgebung kann zu verlorenen E -Mails und anderen Problemen führen. Für Produktionsumgebungen sollten Sie einen robusten, produktionsbereiten SMTP-Server verwenden. Wenn Sie den MailCatcher -Server gestartet haben, werden alle von Ihrer Bewerbung gesendeten E -Mails von MailCatcher gefangen und in seiner Weboberfläche angezeigt. Sie können auf diese Schnittstelle zugreifen, indem Sie in Ihrem Webbrowser zu http: // localhost: 1080 navigieren. Hier sehen Sie eine Liste aller von Mailcatcher gefangenen E -Mails und können auf jede E -Mail klicken, um die Inhalte anzuzeigen. ist so einfach wie das Klicken auf die Schaltfläche "Löschen" in der MailCatcher -Weboberfläche. Dadurch werden alle E -Mails von der Benutzeroberfläche entfernt. Bitte beachten Sie, dass E -Mails nach dem Löschen nicht wiederhergestellt werden können.

Kann ich MailCatcher mit Docker verwenden? Es stehen Docker -Bilder zur Verfügung, die MailCatcher enthalten. Sie können auch Ihre eigene Dockerfile erstellen, um MailCatcher in Ihr Docker -Setup aufzunehmen. Wenn Sie MailCatcher in einem Docker -Container ausführen, müssen Sie sicherstellen, dass die entsprechenden Ports ausgesetzt sind, damit Ihre Bewerbung eine Verbindung zum MailCatcher SMTP -Server herstellen kann.

Wie kann ich Probleme mit MailCatcher -Fehler beheben? Diese Nachrichten können häufig Hinweise darauf geben, was schief geht. Wenn Sie Probleme beim Senden von E -Mails haben, stellen Sie sicher, dass die SMTP -Einstellungen Ihrer Anwendung korrekt konfiguriert sind, um auf den SMTP -Server von MailCatcher zu verweisen.

Kann ich MailCatcher mit mehreren Projekten verwenden? MailCatcher mit mehreren Projekten. Solange jedes Projekt so konfiguriert ist, dass E -Mails an denselben SMTP -Server (d. H. Der SMTP -Server von MailCatcher) sendet

Sie können den MailCatcher -Server anhalten, indem Sie Strg C im Terminal drücken, an dem Sie den MailCatcher gestartet haben. Wenn Sie den MailCatcher als Hintergrundvorgang gestartet haben, können Sie ihn anstellen, indem Sie den Befehl Killall Mailcatcher ausführen. Das Gefühl der MailCatcher -Weboberfläche ist nicht anpassbar. Da MailCatcher jedoch Open-Source ist, können Sie den Quellcode möglicherweise ändern, um die Schnittstelle anzupassen. Bitte beachten Sie, dass dies ein gutes Verständnis von Ruby und dem Sinatra Web Framework erfordern würde, mit dem Mailcatcher erstellt wird.

Das obige ist der detaillierte Inhalt vonE -Mail -Debugging mit Mailcatcher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage