[WordPress]解決無法寄送郵件的窘況

我們在利用WordPress架設網站的時候,總會要填入相關信箱(不管是免費信箱或是付費信箱)

但是說真的,輸入了相關信箱時,這個信箱真的有作用嗎?

使用者電子郵件地址
使用者電子郵件地址

等等,這裡不是說信箱無用論,而是你是否真的可以使用信箱嗎?
就我個人使用到現在來講,答案是「No」的,不管是更改郵件地址還是其他動作,我們本來設定的郵件地址是都收不到任何信件的

設定其他的電子郵件地址
設定其他的電子郵件地址

為什麼會這樣?主要最大的原因就是承租主機端基本上都禁止使用防止濫發大量的垃圾郵件,雖然說有時候一篇信件可能就短短的,郵件大小也就那麼個幾KB,但如果在短時間內發送個幾萬封郵件時,那就是相當驚人的浪費頻寬(但對這些濫發郵件的人來說,垃圾郵件是最省錢的方式,只要有人真的購買服務的話就是賺錢),所以不管是網頁託管(WebHosting)或是虛擬專用服務器(Virtual private server,縮寫為VPS),其實都有做限制防止濫發

這裡將會提供兩種方式來寄送郵件,但前提是要先安裝SMTP相關的外掛並設定,才有辦法寄出郵件
而我這邊建議的是安裝Post SMTP外掛

安裝Post SMTP外掛

尋找Post SMTP Mailer/Email Log外掛並安裝
尋找Post SMTP Mailer/Email Log外掛並安裝
確認安裝成功並啟用
確認安裝成功並啟用

使用SendGrid寄送郵件(設定好100%可寄信)

SendGrid寄送郵件,需要先申請SendGrid的帳號,我這邊就先跳過如何申請了

Step 01:進入SendGrid儀表版介面,找到左下方「Setting」裡面的「API Keys」

尋找項目「Setting」裡面的「API Keys」項目
尋找項目「Setting」裡面的「API Keys」項目

Step 02:到右上角按下「Create API Key」按鈕

按下「Create API Key」按鈕
按下「Create API Key」按鈕

Step 03:建立API Key名稱

「API Key Name」輸入自己喜歡的名稱,其他不需要更動,按下「Create & View」按鈕
「API Key Name」輸入自己喜歡的名稱,其他不需要更動,按下「Create & View」按鈕

Step 04:複製產生的字串

將產生的一連串字串複製下來
將產生的一連串字串複製下來※此字串只會顯示一次,如果沒有記下來的話就只能重新製作,建議開個文字檔存入

Step 05:回到Post SMTP的設定頁面,點擊「顯示所有設定」

點擊「顯示所有設定」
點擊「顯示所有設定」

Step 06:類型選擇「SendGrid API」

類型選擇「SendGrid API」,API金鑰內容把剛剛的字串貼進去後按下「儲存設定」按鈕
類型選擇「SendGrid API」,API金鑰內容把剛剛的字串貼進去後按下「儲存設定」按鈕

Step 07:再度回到SendGrid網頁的儀表版

進入「Settings」項目的「Sender Authentication」選項
進入「Settings」項目的「Sender Authentication」選項

Step 08:選擇「Authenticate Your Domain」

按下「Authenticate Your Domain」按鈕
按下「Authenticate Your Domain」按鈕

Step 09:按下右上角的「Create」按鈕

按下右上角的「Create」按鈕
按下右上角的「Create」按鈕

Step 10:DNS host選擇您所使用的DNS server

DNS host選擇您所使用的DNS server(可能是你申請Domain的網站,但我個人是使用Cloudflare管理,因為它最快反映到網路上),如不想要寄到對方信箱時寫「這是透過SendGrid寄出」相關資訊的話,link branding這個選項要選擇Yes
DNS host選擇您所使用的DNS server(可能是你申請Domain的網站,但我個人是使用Cloudflare管理,因為它最快反映到網路上),如不想要寄到對方信箱時寫「這是透過SendGrid寄出」相關資訊的話,link branding這個選項要選擇Yes

Step 11:認證你的網域(Domain),這邊輸入你當初申請的網域(Domain)名稱

認證你的網域名稱,這邊輸入你當初申請的網域名稱後並按下「Next」按鈕
認證你的網域名稱,這邊輸入你當初申請的網域名稱後並按下「Next」按鈕

Step 12:接著要把這個頁面的字串,全部都複製起來到DNS server(接下來將以Cloudflare為例)

要把這個頁面的字串,全部都複製起來到DNS server
要把這個頁面的字串,全部都複製起來到DNS server

Step 13:在這個Cloudflare頁面按下「新增記錄」按鈕

按下「新增記錄」按鈕
按下「新增記錄」按鈕

Step 14:將Step 12的全部字串分別填入

SendGrid的Name欄位填入這裡的名稱欄位,SendGrid的Value欄位填入這裡的目標欄位
SendGrid的Name欄位填入這裡的名稱欄位,SendGrid的Value欄位填入這裡的目標欄位
最後Proxy狀態都要調整成僅DNS(不調成「僅DNS」的話之後會沒辦法認證成功,最後記得要按「儲存」按鈕

Step 15:Cloudflare設定完之後,回到Step 12的頁面,並拉到最下面

將「I’ve added these records」打勾後,再按下旁邊「Verify」按鈕
將「I’ve added these records」打勾後,再按下旁邊「Verify」按鈕

Step 16:顯示已成功認證

基本上Cloudflare那邊設定好,Step 15按下「Verify」後基本上就會到這個頁面了(如果不是用Cloudflare DNS的話就不一定這麼快到這個頁面)
基本上Cloudflare那邊設定好,Step 15按下「Verify」後基本上就會到這個頁面了(如果不是用Cloudflare DNS的話就不一定這麼快到這個頁面)

Step 17:回到Post SMTP頁面(Step 06的頁面)後,選擇「連線測試」

回到Post SMTP頁面,選擇「連線測試」
回到Post SMTP頁面,選擇「連線測試」

Step 18:按下「開始測試」按鈕

基本上不用輸入東西,進到這畫面是自動填入資料的,按下「開始測試」按鈕
基本上不用輸入東西,進到這畫面是自動填入資料的,按下「開始測試」按鈕

Step 19:確認SendGrid API這一項目動作正常與否

我們只要確認SendGrid API這一項目是否正常動作,從畫面來看動作正常
我們只要確認SendGrid API這一項目是否正常動作,從畫面來看動作正常

Step 20:測試郵件發送正常與否

再回到Post SMTP設定畫面,選擇「傳送測試電子郵件」
再回到Post SMTP設定畫面,選擇「傳送測試電子郵件」

Step 21:輸入希望接受測試信件的信箱

輸入收件者郵件地址
輸入收件者郵件地址

Step 22:顯示已成功寄出

畫面顯示已成功寄出
畫面顯示已成功寄出

Step 23:成功確認收到郵件!

成功確認收到郵件!
成功確認收到郵件!

以上為SendGrid的設定,接著是使用自有的郵件伺服器的設定

透過自己的郵件伺服器寄送郵件

和SendGrid比較起來,用自己的郵件伺服器寄送郵件設定其實簡單許多,設定上和SendGrid比較起來比較簡單,但前提是要先架一台郵件伺服器;關於郵件伺服器的架設,將在後續的文章中提到,這裡先從設定用自己的郵件伺服器寄信

※要注意一點就是記得在郵件伺服器設定此網站IP(VPS提供的IP)的白名單,否則有可能會被郵件伺服器阻擋造成無法寄信

Step 01:進入Post SMTP設定介面

進入Post SMTP設定介面,選擇「顯示所有設定」
進入Post SMTP設定介面,選擇「顯示所有設定」

Step 02:將類型欄位選擇「SMTP」,其他的部分則是輸入郵件伺服器相關的設定

輸入SMTP相關資料
輸入SMTP相關資料

Step 03:再次「連線測試」

輸入外寄郵件伺服器主機名稱
輸入外寄郵件伺服器主機名稱

Step 04:確認自己的Mail Server可以使用服務

確認到自己的Mail Server可以使用服務
確認到自己的Mail Server可以使用服務

Step 05:再度做傳送測試電子郵件

確認已發出郵件
確認已發出郵件

Step 06:成功確認收到郵件!

確認成功收到信件
確認成功收到信件

以上為[WordPress]解決無法寄送郵件的窘況,希望能夠幫到你!

如果這篇文章有幫助到您,請幫我點擊拍手按鈕 5 下鼓勵我
只要花 30 秒登入 FB 或 Google,不用花任何錢就能支持我
您的支持將會是我創作的最大動力!
Cyrians
Cyrians

一名邁入不惑之年的大叔。
曾經幻想過自己是遊戲中主角,不過隨著年齡以及經歷,已經脫離幻想的年代。(但還是希望能夠有時間繼續耍廢)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *