預設情況下,WordPress使用不可靠的PHP郵件功能,並且所發出的電子郵件經常會被郵件服務商標記為垃圾郵件。使用SMTP伺服器是確保WordPress電子郵件可傳遞性的最佳方法。
在本教程中,我們將詳細介紹如何使用免費的SMTP伺服器傳送WordPress電子郵件。
為什麼使用SMTP伺服器傳送WordPress電子郵件?
WordPress站長經常遭遇無法傳送電子郵件問題,解決此問題的最簡單方法是使用SMTP伺服器。
預設情況下,WordPress通過PHP mail傳送電子郵件。不幸的是,並非所有WordPress所託管的伺服器正確配置PHP mail,再說大部分國內的伺服器提供商已經禁用了伺服器郵局功能。
此外,即使使用PHP mail成功傳送了電子郵件,也可能會被郵件接收服伺服器錯誤地識別為垃圾郵件。
確保WordPress電子郵件可傳遞性的最佳方法是使用SMTP伺服器。這是在Internet上傳送電子郵件的標準協議。
SMTP伺服器使用正確的身份驗證來確保電子郵件是由授權發件人傳送的。這樣可以提高可傳遞性,並且電子郵件可以安全地進入使用者的收件箱。
要在WordPress網站上使用SMTP伺服器,需要藉助第三方外掛來實現。當然部分WordPress主題也附帶了SMTP郵局功能,比如閃電博提供的WordPress付費主題。
如果需要使用外掛實現,我們推薦使用WP Mail SMTP外掛,它是目前WordPress的最佳SMTP外掛,即使免費版本也能夠滿足站長的基本需求。
使用WP Mail SMTP外掛配置SMTP郵局
第一步是安裝並啟用WP Mail SMTP外掛。
啟用後,進入WordPress管理後臺中的 WP Mail SMTP » Settings 頁面進一步設定。
您需要先輸入“From Email(發件人電子郵件)”和“From Name(發件人姓名)”。WordPress電子郵件將以你設定的電子郵件地址和名稱傳送。
此外務必選中“Force From Name”覈取方塊,以確保來自WordPress站點的所有電子郵件都是通過SMTP伺服器以設定好的電子郵件地址發出。
提示:只需勾選“Force From Name”即可保證所有電子郵件都來自相同的名稱,即可忽略其他外掛(例如WPForms)的設定。
接下來,需要選擇一個SMTP郵件服務,如下圖所示。
注:下面的教程將會以列表中的SMTP伺服器為例子進行說明,如果你要使用163郵箱或者QQ郵箱提供的SMTP服務,建議閱讀163郵箱&QQ郵箱SMTP郵局設定教程。國內網站建議儘可能選擇國內的SMTP伺服器,而不是國外的SMTP伺服器。
下面將介紹多個海外不同的免費SMTP服務。您需要保持WP Mail SMTP設定選項卡開啟,然後按照所選SMTP服務的說明進行操作。
使用Sendinblue提供的SMTP伺服器傳送郵件
Sendinblue支援每日最多傳送300封免費電子郵件。
首先,需要在Sendinblue網站上建立一個帳戶。驗證你的電子郵件地址後,網站會要求您選擇一個Sendinblue付費計劃。點選“Continue with a Free plan”按鈕進入下一步。
接著,你需要輸入收到確認碼已完成註冊步驟。註冊成功後,進入Sendinblue管理儀表盤。
在繼續之前,你需要訪問域名管理建立一個子域,例如mail1.yourdomain.com
。(在這裡就不對子域名設定展開說明了)
建立子域後,將其新增到您的Sendinblue帳戶中。轉到“Settings”頁面。在此頁面上,滾動到“Your Senders and Domains”部分,然後單擊其下面的“Configure”按鈕。
接下來,點選“Domains”標籤,然後點選“Add a New Domain”按鈕。
輸入前面你配置好的域名子域,例如mail1.yoursite.com
。確保選中覈取方塊,以確認要使用域名對電子郵件進行數字簽名。然後,單擊“Save”按鈕。
儲存後,將會出現一個彈出列表,要求您進行驗證域步驟。預設驗證方法為上傳檔案,又或者使用新增DNS條目。可以根據自己的便利性選擇合適的方法。(關於域名驗證的步驟,小編就不再展開說明,畢竟所有域名驗證的步驟都大同小異)
提示:如果誤關閉了此彈出視窗,可以通過點選子域旁邊的“Verify This Domain”連結來重新驗證域。
完成檔案上傳或者新增DNS條目後,返回Sendinblue並繼續往下走。
提示: DNS更改最多可能需要24到48小時才生效。如果驗證失敗,請在幾個小時後重試。或者改用上傳檔案驗證。
完成此操作後,您還需要再輸入兩個DNS TXT記錄,以便Sendinblue可以對從您的域傳送的電子郵件進行身份驗證。這提高了可傳遞性。
在Sendinblue中,單擊您域旁邊的“Manage”下拉選單,然後選擇“Authenticate this domain”選項,進一步驗證域。
您將看到一個彈出視窗,其中包含需要新增的DNS記錄的詳細資訊。您只需要新增前3個DNS記錄,如果前面做了一次DNS條目驗證,則第三個無需再新增,第四個可以忽略。
每當你在域名管理新增了DNS TXT記錄,點選對應的“Record Added. Please Verify It”進行驗證。
完成上述步驟,返回WP Mail SMTP設定頁面,然後找到API Key輸入框,點選“Get v3 API Key”連結。
這將會在新標籤中開啟您的Sendinblue帳戶的SMTP&API頁面,複製API KEY即可。
再次返回WP Mail SMTP設定頁面並貼上API KEY,點選Save Settings即可。
完成上述操作後,只需要等待Sendinblue啟用您的帳戶即可傳送測試郵件,看設定是否成功。
使用Gmail提供的SMTP伺服器傳送郵件
注:國內不能直接使用谷歌的API服務,需要梯子輔助!
如果你的網站主要是面對國外訪客,也可以考慮使用免費的Gmail帳戶傳送SMTP電子郵件。如果您還沒有Gmail帳戶,需要建立一個帳戶,然後再按照下面的說明進行操作。
首先,確保安裝並啟用了WP Mail SMTP外掛。在 WP Mail SMTP » Settings 頁面上,選擇Gmail作為Mailer。
在下一個介面,您將會看到需要輸入Client ID,Client Secret及URL,不要關閉此頁面。
訪問Google Developers Console網站,同意條款和條件後,點選“Create Project”按鈕。
輸入專案名稱後,點選Create按鈕進入下一個步驟。
在專案儀表盤,點選“Enable APIs and Services”按鈕。
進入到谷歌的API庫,在搜尋欄中輸入“Gmail”進行搜尋。
在搜尋結果中找到Gmail API,點選進入下一步。
接下來,您將看到有關Gmail API的一些資訊,單擊Enable按鈕。
啟用該API可能需要花費幾秒鐘,接下來點選“Create Credentials”按鈕。
在下一個步驟,您需要完成以下選項設定:
- 您正在使用哪個API?-Gmail API
- 您將從哪裡呼叫API?-Web browser (Javascript)
- 您將訪問哪些資料?-User data
最後點選“What credentials do I need?”。
將會彈出視窗提示建立OAuth同意,點選“Set Up Consent Screen”連結即可。
OAuth同意介面將在新標籤中開啟。在這裡,您需要選擇“External”型別,然後單擊“Create ”按鈕。
接下來,需要填寫應用名稱及支援郵件地址。
向下滾動到“Authorized domains”部分,單擊“Add Domain”按鈕,然後輸入網站域名。
注:域名無需填寫
http
,https
或者www
。
接填寫開發者聯絡郵箱,點選“Save and Continue”按鈕。
在“Test users”步驟,單擊“Add Users”按鈕,輸入您的Gmail地址。
然後,再次按“儲存並繼續”。繼續並返回到其他選項卡以設定專案的憑據。您可以輸入任何名稱,也可以直接保留預設名稱。
在“Authorized JavaScript origins”中,輸入網站的域名。
在“Authorized redirect URIs”,您會找到需要在WP Mail SMTP的設定中輸入重定向URL(這部分資訊很重要,複製儲存下來)。
點選下方的“Refresh”按鈕,即會出現“Create OAuth client ID”按鈕,點選進入最後步驟。
至此,已完成Google Web應用程式建立,單擊“Done”按鈕。
跟著下來,將看到列出剛剛建立Web應用程式,單擊其旁邊的編輯圖示。
即可看到WP Mail SMTP外掛設定所需要的Client ID和Client Secret(這部分資訊很重要,複製儲存下來)。
將“這部分資訊很重要”內容複製並貼上到WP Mail SMTP設定頁面中。然後,繼續並單擊“Save Settings”按鈕。
頁面重新整理後,向下滾動,然後單擊“Allow plugin to send emails using your Google account”按鈕。
在開啟的彈出視窗,選擇您的電子郵件帳戶。您將看到一個警告介面,只需單擊“Advanced”連結,然後單擊左下角“Go to wpmailsmtp.com”連結(忽略安全提醒,因為這個APP是你自己建立的)。
Google將會彈出視窗,要求您授予許可權。繼續單擊“Allow ”按鈕。
Google會讓你再次勾選確認,單擊“Allow”按鈕即可。
最後,將會返回到WP Mail SMTP外掛介面。您將會看到一條訊息,確認您已成功將網站連結到Google API專案。
完事,自己給自己發個測試郵件,看SMTP郵局是否生效。
使用MailGun提供的SMTP伺服器傳送郵件
MailGun是另一個廣受歡迎的SMTP電子郵件服務提供商,支援3個月內免費傳送電子郵件5,000封/月。
首先,訪問MailGun網站點選“Start Sending”按鈕以註冊一個帳戶。
MailGun要求填入信用卡詳細資訊(這一點不太友好,不過老外經常喜歡這麼幹)。如果超出免費的範圍,則將按0.80美元/每1,000封電子郵件收費。
完成後,點選頁面底部的“Create Account”按鈕。
然後您將會進入帳戶儀表盤。
在繼續設定下面的步驟之前,務必登入你的註冊郵箱找到來自Mailgun的驗證電子郵件,點選電子郵件中的連結啟用您的Mailgun帳戶。
提示:您還將收到一封電子郵件,通知您API金鑰已新增到Mailgun帳戶中。
點選驗證連結後,將提示您輸入並驗證您的手機號碼。接下來,再次回到Mailgun儀表板。
同樣,Mailgun也要求建立一個網站域名的子域,例如mg.yourdomain.com
(此處不展開說明)。
建立子域後,返回到Mailgun儀表板,然後轉到 Domains » Subdomains 頁面。
接下來,輸入前面建立好的域名子域。
只需將“Domain region”設定為US即可,除非您在EU內。
點選下面的“Advanced Settings (DKIM)”連結進入DKIM設定。
選中“Create DKIM Authority”覈取方塊,“DKIM key length”選擇為2048。
然後,繼續並點選“Add Domain”按鈕。
您將進入域名驗證步驟-“Add DNS records for sending”。
您需要登入域名管理網站的域名解析管理,並將特定的DNS記錄新增到您的子域中。同樣,不對域名驗證部分展開說明。根據相關提示操作即可。
在域名解析管理按要求輸入TXT和MX記錄後,點選頁面底部的“Verify DNS Settings”按鈕。
接著您將看到一個詢問您要如何傳送電子郵件的介面。忽略它,轉到Settings » API key頁面。點選Private API key旁邊的檢視按鈕後將其複製。
接下來,將複製好的private API key貼上到WP Mail SMTP設定中。同時輸入前面設定的子域名和選擇了正確的區域,最後點選“Save Settings”按鈕。
最後還是測試下所設定的SMTP郵局是否有效,嘗試給自己發封郵件看看。
使用SendGrid提供的SMTP伺服器傳送郵件
SendGrid提供前30天內免費傳送最多40,000封電子郵件。之後,每天最多提供100封免費電子郵件。
首先,訪問SendGrid網站並單擊“Start For Free”按鈕來建立免費帳戶。
建立帳戶後,進入SendGrid儀表盤。
第一步,單擊“Create a Single Sender”按鈕建立發件人身份。
然後,輸入發件人姓名、發件人郵箱地址,接受回覆郵件郵箱地址,公司地址及其他地址資訊,暱稱等。
重要提示:From Email Address必須與WP Mail SMTP設定的“From address”的電子郵件地址相同。
然後,在“Senders ”表中可以看到您的詳細資訊。
您將收到驗證電子郵件郵件,以驗證此公司電子郵件地址。
成功驗證電子郵件地址後,點選側邊欄中的“Dashboard”連結返回到SendGrid儀表盤。
點選“ Web API and SMTP Relay”選項的“Start”按鈕進入下個步驟。
在下一個介面,選擇“SMTP Relay”選項。
接下來,輸入API金鑰名稱後點選“Create Key”按鈕。
然後將會為你生成一串API金鑰。
回到WordPress儀表盤的WP Mail SMTP » Settings。選擇SendGrid發信,輸入剛剛生成的SendGrid API金鑰,然後點選“Save Settings”按鈕。
接下來,進一步驗證整合工作是否正常。首先,轉到WP Mail SMTP設定中的“Email Test”選項卡。然後,輸入接收測試郵件的郵箱地址,然後單擊“Send Email”按鈕。
正常情況您看到一條“測試郵件已成功傳送”訊息,您也可以接收郵件的電子郵件收件箱檢視是否收到郵件。
測試郵件已成功傳送,即返回到SendGrid API頁面的選項卡。選中“I’ve updated my settings”框後,點選“Next: Verify Integration”按鈕。
在下一個頁面上,點選“Verify Integration”按鈕。您應該會看到下面這條訊息。
接下來,還需要建立並驗證子域,以幫助提高電子郵件的可傳遞性。
提示:如果您沒有建立和驗證子域,則來自您網站的電子郵件仍將傳送出去。但是,有可能某些電子郵件服務商可能會直接攔截掉。
為您的網站建立一個子域,例如sg.yourdomain.com
。此處略掉建立子域的說明步驟。
建立子域後,將其新增到SendGrid帳戶中。轉到SendGrid帳戶中的“Settings » Sender Authentication”頁面。在“Authenticate Your Domain”下,點選“Get Started”按鈕。
- (1)選擇DNS主機,即你的域名提供商或者域名解析管理服務商。
- (2)“Would you also like to brand the links for this domain?”選擇是。即電子郵件將顯示為來自您的域,而不是來自SendGrid的域。
然後,點選Next按鈕。
現在,在“Domain You Send From”框中輸入您的網站域名。然後單擊“Advanced Settings”連結,展開更多設定選項。
取消選中“Use automated security”框,選中“Use custom return path”框。然後,在“Return Path”鍵入子域的第一部分。例如,如果子域是sg.example.com
,則鍵入sg
。
完成此操作後,點選“Next”按鈕。
接著下來,將會看到一些需要新增到域中的DNS記錄。(此處略過域名管理的DNS記錄新增步驟。)
新增記錄後,點選頁面底部的“Verify”按鈕。看到一條成功訊息即說明成功配置。
最後,再次測試您的SMTP電子郵件,以確保正確傳送了電子郵件。
測試SMTP郵局是否正常
完成上述任意一個SMTP郵局的配置後,最後一步是測試電子郵件傳送,以確保一切正常。
首先,轉到WP Mail SMTP設定中的“Email Test”標籤。然後,輸入接收測試郵件的電子郵件地址(如果它與預設電子郵件地址不同)。
點選“Send Email”按鈕,即可傳送測試郵件。正常情況下,會看到提示電子郵件已成功傳送訊息。
接下來,去接收測試郵件的郵箱檢視,以確保已收到測試電子郵件。
其他免費SMTP郵局推薦
除了上述提到的SMTP服務商,你還可以選用其他一些免費的SMTP郵件服務商選項,但在這裡不再對這些選項逐個展開說明。
- Outlook:與其他方法相比,配置更加複雜,優點是限制不大(每分鐘最多10,000個),但成功率未必有保障。
- Amazon SES:如果技術了得可以嘗試此選項,因為設定非常複雜。第一年免費。
- SMTP.com:可靠的選項。缺點是僅30天內免費,之後必須自掏腰包。
對於上述三個選項,您可以通過在WP Mail SMTP設定頁面上選擇郵件程式,然後單擊文件連結來獲得說明。
此外,對於國內站長,又或者說面向國內使用者的網站,可以考慮使用QQ郵箱或者163郵箱的SMTP,或者可靠性更高一些。
評論留言
脣槍舌劍 (2)
佛系软件
2021.11.26 17:11
我是国内的阿里云,已添加谷歌邮箱的api,然后进入设置就一直转圈圈,用gmail smtp插件配置到最后一步授权的时候就提示wp程序错误,根本不行。
WBOLT_COM
2021.11.26 18:11
国内阿里云配置谷歌邮箱,想什么呢?
你能够使用的smtp就只有国内的smtp服务商,谷歌smtp的话,前提是你的服务器本身应该在可访问谷歌服务的数据中心。