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:
erstaunlich!
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.
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>
Führen Sie dann im geklonten Projektverzeichnis den folgenden Befehl aus:
vagrant up
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.
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>
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.
Jetzt können Sie die MailCatcher -Web -Benutzeroberfläche unter http://192.168.56.111:1080 sehen. Es wird wie das Bild unten aussehen:
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.
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>
Es enthält Mail-loader.php, das unten verfügbar ist.
vagrant up
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>
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.
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:
Ü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.
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.
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.
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 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!