搜尋
首頁後端開發php教程通過MailCatcher發送電子郵件調試

通過MailCatcher發送電子郵件調試

您在應用程序中使用電子郵件,對嗎?好的,這是一個修辭問題。當然,您會這樣做。儘管電子郵件已有30多年的歷史,但到目前為止,它仍然是地球上最受歡迎的應用程序。以下是Pingdom的一些統計數據,2012年:

>
  • 22億 - 全球電子郵件用戶的數量
  • 1440億 - 全球每天的電子郵件流量
  • 43億 - 2012年全球電子郵件客戶端的數量

驚人!

鑰匙要點

  • MailCatcher是開發人員的有用工具,可讓您在應用程序中測試電子郵件功能而無需實際將電子郵件發送到真實地址。它運行了一個簡單的SMTP服務器,該服務器會捕獲發送給它的任何消息並在Web界面中顯示。 >
  • > MailCatcher Web UI簡單有效,在隊列中列出電子郵件並提供有關它們的詳細信息。這是驗證您的代碼是否應付起來並且發送工作流程正常運行的絕佳方法。
  • >
  • >設置MailCatcher涉及將其安裝在虛擬機或Linux機器上,並配置您的應用程序將電子郵件發送到MailCatcher服務器。本文為此過程提供了詳細的說明和示例代碼。
  • >
  • >重要的是要注意,MailCatcher不是為生產環境使用的。它是一種用於在當地開發環境中使用的開發工具。在生產環境中使用它可能會導致丟失的電子郵件和其他問題。
  • >
但是為什麼要在電子郵件上另一篇文章?

>

出於一個簡單的原因,我們很可能在某個點或另一個點被抓住了。因為我們需要盡可能接近生產測試,但沒有意外地向客戶發送電子郵件,因此他們變得困惑或沮喪,或者為客戶收到測試電子郵件而感到尷尬。

>我敢肯定你知道我的意思。您認為您已將應用程序設置為某種調試模式。鑑於此,您開始測試,該測試從您的應用程序中發送了大量電子郵件。一直以來,您會感到很自在,因為他們知道,除了您會看到它們,但您都不會看到它們。

您的測試過去,您祝賀自己,然後繼續前進。不久之後,您會收到一個相反的內容,我們只是說 terse ,Skype呼叫您的客戶。隨著客戶的響起,她很生氣,問他們為什麼收到公司的奇數電子郵件。她不開心,想要答案嗎?

在那裡嗎?不想再在那裡嗎?我猜你沒有。這是解決方案 - 郵件捕捉器。如果您不熟悉,MailCatcher

…運行一個超級簡單的SMTP服務器,該服務器捕獲發送給它的任何消息以顯示在Web界面中。運行MailCatcher,將您喜歡的應用程序設置為SMTP://127.0.0.1:1025而不是您的默認SMTP服務器,然後查看http://127.0.0.1:1080,查看到目前為止到達的郵件。

>聽起來像是一個不錯的解決方案?無論您是疲倦,在壓力下,團隊中的新工作,還是只需要進行測試 - MailCatcher都將確保任何電子郵件都不會在您的網絡外發送,甚至在開發虛擬機上都不會發送。

>在這篇文章中,我將向您展示如何在電子郵件捕獲電子郵件時將其設置並通過界面運行。

>

預先準備的虛擬機

>為您節省了設置MailCatcher的麻煩,我創建了一個自定義的Vagrant Box,可以為您提供所有功能。確保已安裝了VirtualBox和Vagrant,然後使用以下命令克隆文章存儲庫的副本:

然後,在克隆的項目目錄中,運行以下命令:

<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
>這將啟動虛擬機配置過程,隨著配置過程的運行,顯示了很多輸出。配置的虛擬機非常簡約。它具有 sendmail>和
vagrant up
> nginx

已安裝。 > >手動安裝MailCatcher 如果您想自己安裝MailCatcher,並且擁有虛擬機(或可用的Linux機器),則是運行的步驟:

>您可能不必運行第三個命令。我這樣做了,因為我使用了非常簡約的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
如果您不熟悉SwiftMailer Aurelio在SitePoint上的文章,則提供了極好的介紹。順便說一句,這是我用於此示例的代碼。謝謝Aurelio。

基本上,只有一行對我們來說很重要,這是以下內容:>

>這將創建與我們剛剛設置的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>
>

通過MailCatcher發送電子郵件調試>我單擊了第一個條目,該條目顯示了收到,從,和主題詳細信息以及電子郵件的正文。如果我們切換到源標籤,如下圖所示,我們可以看到原始的電子郵件詳細信息:>

通過第三個選項卡,我們可以使用分形來分析電子郵件的內容。今天我會跳過這一點,因為它超出了本文的範圍。 通過MailCatcher發送電子郵件調試

我們都是設置

>完成此操作,我們現在可以像以前那樣創建電子郵件,設置收件人,主題,附件等,如我上面的內容,並且知道它們永遠不會真正進入真實的地址。

我們可以編寫測試,以驗證代碼是否應有起作用。我們可以檢查發送工作流,檢查消息內容,收件人,標題等的郵件。它盡可能地實用,而沒有實際發送我們環境之外的任何東西。

>現在,我們可以放心,我們的客戶(及其客戶)將永遠不會收到任何從未打算給他們的電子郵件。真是一種解脫。

總結

現在,這是一個相當微不足道的示例,僅在示例中使用簡單的SwiftMailer代碼段。我敢肯定,您的代碼庫比這個示例要復雜得多。

>但是,我敢肯定,在您的應用程序中,您可以進行調試和測試配置,您可以在其中設置主機和端口,並將其與Live區分開。通過這樣做,沒有其他代碼需要更改,您可以從MindCatcher帶來的心靈的好處中獲得好處。

您已經使用MailCatcher嗎?您將其整合的經驗是什麼?有沒有發現您不知道的問題?在評論中分享您的想法。

經常詢問有關MailCatcher的問題

>如何在系統上安裝MailCatcher?

>安裝MailCatcher是一個簡單的過程。首先,您需要確保系統上安裝了Ruby和Rubygems。擁有這些先決條件後,您可以通過在終端中運行命令GEM安裝MailCatcher來安裝MailCatcher。安裝完成後,您可以通過在終端中運行命令MailCatcher來啟動MailCatcher。現在,您應該能夠訪問http:// localhost:1080。

>我如何配置我的應用程序以使用mailCatcher?

您的應用程序的SMTP設置指向MailCatcher的SMTP服務器。該服務器在Localhost上運行並在端口1025上傾聽。設置這些值的確切過程將取決於您的應用程序的語言和框架,但是通常,您需要將SMTP地址設置為“ Local -Host”,而SMTP端口則將其設置為'1025 '。

我可以在生產環境中使用MailCatcher嗎?

MailCatcher並非設計用於生產環境。它是一種用於在當地開發環境中使用的開發工具。在生產環境中使用MailCatcher會導致丟失的電子郵件和其他問題。對於生產環境,您應該使用可靠的,可生產的SMTP服務器。

>

>如何查看我在MailCatcher中的應用程序發送的電子郵件?

>

已經啟動了MailCatcher服務器,您的應用程序發送的任何電子郵件都將被MailCatcher捕獲並顯示在其Web界面中。您可以通過導航到Web瀏覽器中的http:// localhost:1080來訪問此界面。在這裡,您將看到MailCatcher捕獲的所有電子郵件的列表,您可以單擊任何電子郵件以查看其內容。

>

如何清除MailCatcher中的電子郵件?

清除MailCatcher中的電子郵件就像在MailCatcher Web界面中單擊“清除”按鈕一樣簡單。這將從接口中刪除所有電子郵件。請注意,一旦清除了電子郵件,就無法恢復它們。

>我可以將MailCatcher與Docker使用嗎?有包括MailCatcher的Docker圖像,您還可以創建自己的Dockerfile,以將MailCatcher包括在Docker設置中。在Docker容器中運行MailCatcher時,您將需要確保曝光適當的端口,以便您的應用程序可以連接到MailCatcher SMTP服務器。

>如何對MailCatcher進行故障排除?

如果您在MailCatcher上遇到麻煩,第一步是檢查終端中的輸出是否有任何錯誤消息。這些消息通常可以提供有關出現問題的線索。如果您在發送電子郵件時遇到困難,請確保正確配置了您的應用程序的SMTP設置以指向MailCatcher的SMTP服務器。

我可以將MailCatcher與多個項目使用嗎?帶有多個項目的MailCatcher。只要每個項目都配置為將電子郵件發送到同一SMTP服務器(即MailCatcher的SMTP服務器),MailCatcher就會從所有這些項目中捕獲電子郵件。

>如何停止MailCatcher服務器?

>您可以通過在啟動MailCatcher的終端中按CTRL C來停止MailCatcher服務器。另外,如果您啟動MailCatcher作為背景過程,則可以通過運行命令Killall MailCatcher來停止它。

我可以自定義MailCatcher Web界面的外觀和感覺嗎?

MailCatcher Web界面的感覺無法自定義。但是,由於MailCatcher是開源的,因此您可能會修改源代碼以自定義接口。請注意,這將需要對Ruby和Sinatra Web框架有很好的了解。

以上是通過MailCatcher發送電子郵件調試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

如何註冊和使用Laravel服務提供商如何註冊和使用Laravel服務提供商Mar 07, 2025 am 01:18 AM

Laravel的服務容器和服務提供商是其架構的基礎。 本文探討了服務容器,詳細信息服務提供商創建,註冊,並通過示例演示了實際用法。 我們將從OVE開始

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

PHP記錄:PHP日誌分析的最佳實踐PHP記錄:PHP日誌分析的最佳實踐Mar 10, 2025 pm 02:32 PM

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

解釋PHP中晚期靜態結合的概念。解釋PHP中晚期靜態結合的概念。Mar 21, 2025 pm 01:33 PM

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

自定義/擴展框架:如何添加自定義功能。自定義/擴展框架:如何添加自定義功能。Mar 28, 2025 pm 05:12 PM

本文討論了將自定義功能添加到框架上,專注於理解體系結構,識別擴展點以及集成和調試的最佳實踐。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
2 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能