您在應用程序中使用電子郵件,對嗎?好的,這是一個修辭問題。當然,您會這樣做。儘管電子郵件已有30多年的歷史,但到目前為止,它仍然是地球上最受歡迎的應用程序。以下是Pingdom的一些統計數據,2012年:
>驚人!
>我敢肯定你知道我的意思。您認為您已將應用程序設置為某種調試模式。鑑於此,您開始測試,該測試從您的應用程序中發送了大量電子郵件。一直以來,您會感到很自在,因為他們知道,除了您會看到它們,但您都不會看到它們。
您的測試過去,您祝賀自己,然後繼續前進。不久之後,您會收到一個相反的內容,我們只是說
在那裡嗎?不想再在那裡嗎?我猜你沒有。這是解決方案 - 郵件捕捉器。如果您不熟悉,MailCatcher
>聽起來像是一個不錯的解決方案?無論您是疲倦,在壓力下,團隊中的新工作,還是只需要進行測試 - MailCatcher都將確保任何電子郵件都不會在您的網絡外發送,甚至在開發虛擬機上都不會發送。…運行一個超級簡單的SMTP服務器,該服務器捕獲發送給它的任何消息以顯示在Web界面中。運行MailCatcher,將您喜歡的應用程序設置為SMTP://127.0.0.1:1025而不是您的默認SMTP服務器,然後查看http://127.0.0.1:1080,查看到目前為止到達的郵件。
>在這篇文章中,我將向您展示如何在電子郵件捕獲電子郵件時將其設置並通過界面運行。
>
預先準備的虛擬機
然後,在克隆的項目目錄中,運行以下命令:
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
vagrant up
已安裝。
>您可能不必運行第三個命令。我這樣做了,因為我使用了非常簡約的Ubuntu精確的64 Vagrant Image,它需要包裝來構建MailCatcher。請注意,如果您使用不同的Linux發行版或版本,則單個軟件包名稱可能會有所不同。
注意:如果您遵循標準MailCatcher啟動過程,它將僅在IP 127.0.0.1和端口1025上收聽。使用此設置,我們將無法從主機計算機中看到它。因此,我在192.168.56.111上添加了公共IP,並更改了MailCatcher的配置,以便在所有IP上聽。>現在,您可以在http://192.168.56.111:1080上查看MailCatcher Web UI。它看起來像下圖:
<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>
>這是一個非常簡單的界面,在郵件捕獲隊列中列出了電子郵件,如果可用,則在頂部列出。當列表中有電子郵件時,底部窗格很好地向您展示了有關它們的信息,我們將在稍後看到。
>在本文中,我創建了一個簡單的PHP腳本,index.php,在項目存儲庫中可用,可以在http://192.168.56.111上訪問。它使用SwiftMailer連接到MailCatcher並在加載時發送電子郵件。您可以在相當標準的HTML頁面下方的代碼中看到。
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
>包括郵件loader.php,可在下面可用。
>vagrant up
基本上,只有一行對我們來說很重要,這是以下內容:
>這將創建與我們剛剛設置的MailCatcher服務器的連接。就是這樣,沒什麼好看的!現在,我已經重新加載了該頁面三遍,該頁面已發送了三封電子郵件。您可以看到它們在下圖中的MailCatcher中列出。
<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>
>我單擊了第一個條目,該條目顯示了收到,從,和主題詳細信息以及電子郵件的正文。如果我們切換到源標籤,如下圖所示,我們可以看到原始的電子郵件詳細信息:
通過第三個選項卡,我們可以使用分形來分析電子郵件的內容。今天我會跳過這一點,因為它超出了本文的範圍。
>完成此操作,我們現在可以像以前那樣創建電子郵件,設置收件人,主題,附件等,如我上面的內容,並且知道它們永遠不會真正進入真實的地址。
>現在,我們可以放心,我們的客戶(及其客戶)將永遠不會收到任何從未打算給他們的電子郵件。真是一種解脫。
總結
現在,這是一個相當微不足道的示例,僅在示例中使用簡單的SwiftMailer代碼段。我敢肯定,您的代碼庫比這個示例要復雜得多。
您已經使用MailCatcher嗎?您將其整合的經驗是什麼?有沒有發現您不知道的問題?在評論中分享您的想法。
您的應用程序的SMTP設置指向MailCatcher的SMTP服務器。該服務器在Localhost上運行並在端口1025上傾聽。設置這些值的確切過程將取決於您的應用程序的語言和框架,但是通常,您需要將SMTP地址設置為“ Local -Host”,而SMTP端口則將其設置為'1025 '。
MailCatcher並非設計用於生產環境。它是一種用於在當地開發環境中使用的開發工具。在生產環境中使用MailCatcher會導致丟失的電子郵件和其他問題。對於生產環境,您應該使用可靠的,可生產的SMTP服務器。
>>我可以將MailCatcher與Docker使用嗎?有包括MailCatcher的Docker圖像,您還可以創建自己的Dockerfile,以將MailCatcher包括在Docker設置中。在Docker容器中運行MailCatcher時,您將需要確保曝光適當的端口,以便您的應用程序可以連接到MailCatcher SMTP服務器。
如果您在MailCatcher上遇到麻煩,第一步是檢查終端中的輸出是否有任何錯誤消息。這些消息通常可以提供有關出現問題的線索。如果您在發送電子郵件時遇到困難,請確保正確配置了您的應用程序的SMTP設置以指向MailCatcher的SMTP服務器。
>您可以通過在啟動MailCatcher的終端中按CTRL C來停止MailCatcher服務器。另外,如果您啟動MailCatcher作為背景過程,則可以通過運行命令Killall MailCatcher來停止它。
MailCatcher Web界面的感覺無法自定義。但是,由於MailCatcher是開源的,因此您可能會修改源代碼以自定義接口。請注意,這將需要對Ruby和Sinatra Web框架有很好的了解。
以上是通過MailCatcher發送電子郵件調試的詳細內容。更多資訊請關注PHP中文網其他相關文章!