如何使用 SMTP 從 WordPress 發送電子郵件

已發表: 2023-04-11

WordPress 有一種發送電子郵件的本機方式。 它使用 PHP mail() 函數來發送所有這些時事通訊、密碼重置或您要發送給受眾的任何其他類型的電子郵件。 雖然這種方法理論上應該足夠了,但它遠非完美。

在 WordPress 中,使用 SMTP 發送電子郵件是一個更好的選擇。 而且設置起來並不困難。 今天的教程將向您展示如何使用和不使用插件來做到這一點。

什麼是 SMTP?

SMTP 或簡單郵件傳輸協議定義了電子郵件傳輸的規則。 它使得在不同類型的計算機、服務器和網絡之間交換電子郵件成為可能。

SMTP 服務器是根據 SMTP 協議運行並將電子郵件從發件人發送到收件人的應用程序。 為了簡化這個過程,SMTP 服務器接收來自電子郵件客戶端(Gmail、Yahoo!、Outlook 等)的電子郵件,並在需要時將它們傳輸到其他 SMTP 服務器。 然後電子郵件會被收件人的 SMTP 服務器接收並使用傳入郵件服務器(POP3 或 IMAP)進行傳送。

為什麼在 WordPress 中使用 SMTP 發送電子郵件是個好主意?

正如我們在開頭提到的,WordPress 使用 PHP mail() 函數來發送電子郵件。 由於多種原因,此方法存在問題:

  • 它主要適用於簡單的純文本電子郵件。 HTML 功能非常有限,您不能添加附件或嵌入圖像。 這給您留下了無聊的電子郵件,幾乎沒有設計元素;
  • 它存在嚴重的可交付性問題。 PHP mail() 沒有正確的電子郵件標頭。 因此,互聯網服務提供商 (ISP) 會將使用此方法發送的電子郵件標記為垃圾郵件或完全拒絕。 因此,例如,如果您使用 PHP mail() 自動將新帖子通過電子郵件發送給您的訂閱者,那麼您很可能經常訪問垃圾郵件文件夾;
  • 它不允許通過外部服務器發送電子郵件。 即使您配置了 SMTP 設置,它也只能用於 localhost 或類似的解決方案。 PHP mail() 也不支持 SMTP 身份驗證。

最簡單的解決方案是將 WordPress 配置為使用 SMTP 服務器發送電子郵件。 後者需要標頭認證並支持通過 SSL 和 TLS 進行安全傳輸。 這意味著您遇到電子郵件送達能力問題的可能性會降低,尤其是當您使用可靠的 SMTP 服務並正確設置所有內容時。

關於這一點,讓我們弄清楚如何使用 SMTP 服務器在 WordPress 中發送電子郵件。

在沒有插件的情況下在 WordPress 中配置 SMTP

您可以在 WordPress 中配置 SMTP,而無需使用一些編碼和 PHPMailer 的插件。 它是為 PHP 創建的庫,用於克服 mail() 函數的缺點。 PHPMailer 支持複雜的電子郵件主體(包括 HTML 和嵌入式圖像)和附件。 最重要的是,它使您能夠使用任何 SMTP 服務器發送電子郵件。

為了使 PHPMailer 工作,我們需要一個工作的 SMTP 服務器。 在下面的代碼示例中,我們將使用 Gmail SMTP 在 WordPress 中發送電子郵件。 但在我們開始之前,您應該按照這些說明創建應用密碼。 否則,您將無法成功進行身份驗證。

現在,導航到您網站的根目錄並找到wp-config.php文件。 使用以下代碼示例使用 Gmail 憑據配置 WordPress SMTP 設置。

 define( 'SMTP_username', '[email protected]' );
define( 'SMTP_password', 'your-gmail-app-password' );
定義('SMTP_server','smtp.gmail.com');
define( 'SMTP_FROM', '[email protected]' );
定義('SMTP_NAME','你的名字');
定義('SMTP_PORT','587');
定義('SMTP_SECURE','tls');
定義('SMTP_AUTH',真);
定義('SMTP_DEBUG',0);

轉到主題編輯器並找到functions.php文件以進行進一步編輯。 請注意,建議對子主題進行更改以避免主主題出現故障。 將以下腳本添加到functions.php文件中。

 add_action( 'phpmailer_init', 'my_phpmailer_smtp' );
函數 my_phpmailer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_server;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->用戶名 = SMTP_用戶名;
$phpmailer->Password = SMTP_password;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}

保存設置,僅此而已。 現在您的 WordPress 通過 SMTP 服務器發送電子郵件。

有關詳細信息,請參閱如何通過 PHP 函數在 WordPress 中發送電子郵件。

使用插件設置 WordPress SMTP

將 WordPress 配置為通過 SMTP 發送電子郵件的更簡單方法是通過專用插件。 它們不需要編碼技能——即使沒有開發人員的幫助,您也可以配置它們。

WP 郵件 SMTP

WP 郵件 SMTP

WP Mail SMTP 是最流行的用於設置 SMTP 的插件。 它指示 PHP mail() 使用集成郵件程序或自定義 SMTP 設置之一。 通過這樣做,它解決了本機功能的可交付性問題。

您可以通過從 WordPress 網站的儀表板導航到“插件”選項卡並按“添加新”輕鬆安裝 WP Mail SMTP。 在搜索框中輸入“WP Mail SMTP”,按“立即安裝”,然後按“激活”。

WP 郵件 SMTP 安裝

安裝插件後,您可以從儀表板或使用設置嚮導配置郵件程序。 兩者俱有相同的概念,只是不同的設計。 我們更喜歡使用儀表板,因此我們將在它的幫助下設置插件。

我們有兩個主要選擇:

  • 使用第三方 SMTP 服務設置 WP Mail SMTP
  • 使用內置郵件程序

這兩個選項的第一步是相同的,所以讓我們在這裡討論一下。 打開 WP Mail SMTP 設置並向下滾動到“主連接”選項卡下的發件人電子郵件和發件人姓名。

在發件人電子郵件字段中,輸入將用於發送電子郵件的電子郵件地址。 這可以是一個免費的電子郵件帳戶,但我們建議使用帶有自定義域的地址以提高送達率。 為確保輸入的地址用於所有電子郵件,請選中 Force From Email 框。

在“發件人姓名”字段中,輸入將在已發送電子郵件中顯示的姓名。 再次檢查 Force From Name 以確保其他插件(例如,WooCommerce 或 WordPress 時事通訊插件)不會覆蓋此設置。

WP 郵件 SMTP 設置

完成後,我們可以繼續設置郵件程序以指示 WordPress 使用插件發送電子郵件。

使用第三方 SMTP 服務設置 WP 郵件

使用可靠的第三方 SMTP 服務對於確保將您的 WordPress 電子郵件發送到收件人的收件箱至關重要。 借助 WP Mail SMTP 的其他 SMTP 功能,您可以輕鬆集成您最喜歡的郵件程序。 對於今天的教程,我們將使用 Mailtrap 提供的可靠 SMTP 服務。

但在將其與您的 WordPress 網站集成之前,您首先需要創建一個帳戶並按照應用程序內的嚮導來驗證您的域。 為此,您應該有權訪問您域的 DNS 記錄。 在其中,您必須添加現成的 SPF、DKIM 和 DMARC 記錄,然後按驗證域。

Mailtrap 域驗證

一旦您的帳戶啟動並運行,請返回“發送域”並按已驗證的域。 然後單擊“API 和 SMTP”,選擇“SMTP”,然後復制憑據。

Mailtrap api smtp 集成

返回 WP Mail SMTP 並在 Mailer 選項卡下選擇 Other SMTP。

Mailtrap 其他 SMTP

您會看到一組空白字段。 使用 Mailtrap 的 SMTP 憑據填寫它們:

  • SMTP 主機:live.smtp.mailtrap.io
  • 加密方式:TLS(也可以選擇SSL,但推薦使用TLS)
  • SMTP端口:587(會自動填寫)
  • 身份驗證:打開
  • SMTP 用戶名:api
  • SMTP 密碼:您的 SMTP 密碼
郵件陷阱 SMTP 設置

按“保存設置”。 您會看到一個確認窗口。 如果一切配置正確並且 WordPress 發送 SMTP 電子郵件,請返回您的 Mailtrap 帳戶並按“驗證設置”。

Mailtrap 驗證設置

使用內置郵件程序

讓我們繼續第二個集成選項——使用內置郵件程序來確保 WordPress 使用 SMTP 發送電子郵件。 使用此方法,您可以選擇 WP Mail SMTP 的郵件程序之一,包括 SendLayer、SMTP.com、Sendinblue、Amazon SES 等。此方法也可以用於在 WordPress 甚至 Microsoft 365/Outlook 中設置 Gmail SMTP。

大多數 ESP 的集成過程都是相似的。 當然,您應該有一個工作帳戶才能將其與 WP Mail SMTP 集成。 您只需要選擇郵件程序並輸入您帳戶的 API 密鑰。 有關說明將在 ESP 的官方文檔中提供。

內置郵件程序

對於某些郵件程序,您可能需要輸入您的發送域、消息流 ID 或區域。 此處提供了每個郵件程序的詳細說明。

HubSpot WordPress 插件

HubSpot WordPress 插件

WP Mail SMTP主要用於配置WordPress使用SMTP發送郵件。 相反,HubSpot WordPress 插件是適用於您的 WordPress 網站的完整客戶關係管理器 (CRM) 插件。 在它的幫助下,您可以使用註冊表單構建電子郵件列表,通過實時聊天與訪客交流,以及分析重要指標。

最重要的是,HubSpot WordPress 插件使您能夠集成您喜歡的 ESP,以(手動或自動)向您的聯繫人發送營銷電子郵件。 它還具有內置模板和拖放式編輯器。 因此,如果您正在尋找的不僅僅是 SMTP 配置,HubSpot 可能是您的不錯選擇。

Gmail 郵件傳輸協議

Gmail 郵件傳輸協議

Gmail SMTP 是另一個使用 SMTP 發送電子郵件的 WordPress 插件,但它是專門為 Gmail 設計的。 它依靠 PHPMailer 和本機 wp_mail 函數來發送電子郵件,這意味著您仍然可以使用它們的所有功能。

Gmail SMTP 插件使用 API 和 OAuth 2.0 協議與 Gmail 連接。 這樣,您就不必輸入任何用戶名或密碼。 但是,您需要在 Google Developer Console 中創建一個應用程序並配置 OAuth 憑據。 幸運的是,該插件的官方頁面列出了必要的說明。

發布 SMTP 郵件程序

發布 SMTP 郵件程序

我們這裡的最後一個選項是 Post SMTP Mailer。 它是一個用戶友好的插件,可讓您使用 SMTP 或 API 集成 ESP。 免費版支持 Mailgun、SendGrid、Mandrill(現在是 Mailchimp 交易電子郵件)、SparkPost、Postmark、Sendinblue 和 Gmail API。 專業版將使您能夠訪問 Zoho Mail、Amazon SES 和 Microsoft 365。

此外,Post SMTP Mailer 會存儲電子郵件日誌並在出現任何問題時發送 Chrome 通知。

如何在 WordPress 中測試電子郵件?

為確保您的配置可以成功從 WordPress 發送電子郵件,您需要測試您的電子郵件。 大多數插件都帶有用於一些基本檢查的默認測試功能。

例如,使用 WP Mail SMTP,您可以導航到“電子郵件測試”選項卡,輸入您的電子郵件地址,然後按“發送電子郵件”。 如果配置正確,您應該會在收件箱中找到一封測試郵件。 如果沒有,WP Mail SMTP 將顯示錯誤日誌。

WP Mail SMTP 郵件測試

但是,測試電子郵件發送功能並不總是足夠的。 在向您的聯繫人發送電子郵件之前,測試 HTML、驗證標頭和檢查您的垃圾郵件分數是必不可少的。 這就是 Mailtrap 的另一個解決方案,電子郵件測試可以幫助您的地方。 它會將您的 WordPress 電子郵件捕獲到一個虛擬收件箱中,確保它們都不會到達收件人的收件箱。

與電子郵件發送類似,電子郵件測試可以使用其 SMTP 憑據與 WordPress 插件集成。 您可以通過展開“我的收件箱”並按“顯示憑據”在您的帳戶中找到這些憑據。 示例 SMTP 設置如下所示:

  • SMTP 主機:sandbox.smtp.mailtrap.io
  • 加密:TLS 或 SSL
  • SMTP 端口:465 或 587
  • 身份驗證:打開
  • SMTP 用戶名:<您的 SMTP 用戶名>
  • SMTP 密碼:<您的 SMTP 密碼>

如果配置正確,幾秒鐘後,您的測試電子郵件將彈出到您的虛擬收件箱中。

Mailtrap 電子郵件測試

正如我們所見,要將 WordPress 配置為使用 SMTP 發送電子郵件,您有兩個主要選擇:使用 PHPMailer 編碼或使用插件。 第一個選項更適合開發人員,而第二個選項更適合營銷人員。 無論選擇哪種方法,最主要的是找到解決 PHP 缺點的方法。

我們上面列出的所有插件都允許您使用 Gmail 的 SMTP。 雖然偶爾發送電子郵件已經足夠了,但最好選擇可靠的 ESP 來發送大量電子郵件。 否則,您的電子郵件很可能會被標記為垃圾郵件。

享受!