症狀
原先網頁上如果有表格,像是聯絡表單,原先訪客可以填表單之後選擇送出,我們就可以收到訪客寄送的訊息。
將主機改到 Cloudways 後此功能失效,訊息顯示無法送出,或是已送出卻一直沒收到。
Email 通知的失效原因
Cloudways 的 SMTP 服務需要另外收費,所以預設並沒有打開,也沒有相關設定。他的服務收費是按照使用量來衡量,價格也蠻合理的,需要手動去訂閱,並修改相關設定才能生效。
解決方式和步驟
到 Cloudways 網站啟用 Elastic Email 服務
這段參考文章:How to Activate the Elastic Email Add-on,底下一步步說明。
到Cloudways網站並登入後,選擇上方的九個小格子,選擇裡面的 Add-ons
裡面有 Elastic Email,照片中這個是已啟用,如果未啟用會上面其它幾個一樣,右邊顯示一隻筆,點這枝筆進去編輯
可以看到收費,選擇自己要的方案後確認就可以開啟,成功訂閱後就會跟前一張的圖片一樣
Server 啟用 Elastic Email
回到 Cloudways 首頁,進去 server,自己的主機頁面,裡面的 Server Management,底下的 SMTP。下拉式選單選擇 Elastic Email 然後啟用。
但是旁邊的寄送測試信 Send Test Email 測試寄信這時先不要測試,是會失敗的,因為 Domain 在 Elastic Email 中還沒有驗證,驗證前還要先去 DNS 那邊作設定。
驗證 Domain:1.domain供應商(例如 GoDaddy)新增DNS記錄
要驗證 domain 參考文章:How to Verify your Domain,底下一步步解釋。
因為我 Domain 是使用 GoDaddy 的,所以圖是用 GoDaddy 作範例。
到 domain 供應商之後,進入到目標網址裡面的 DNS設定網頁,找到 DNS 記錄,這裡要新增好幾筆資訊,請參考How to Verify your Domain。
節錄如下:新增這五筆進去,每一筆的第一行是類型,第二行是名稱,第三行是資料內容
Records TXT
Host/Name: @
Value: v=spf1 a mx include:_spf.elasticemail.com include:emailsrvr.com ~all
Records TXT
Host/Name: api._domainkey
Value: k=rsa;t=s;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbmGbQMzYeMvxwtNQoXN0waGYaciuKx8mtMh5czguT4EZlJXuCt6V+l56mmt3t68FEX5JJ0q4ijG71BGoFRkl87uJi7LrQt1ZZmZCvrEII0YO4mp8sDLXC8g1aUAoi8TJgxq2MJqCaMyj5kAm3Fdy2tzftPCV/lbdiJqmBnWKjtwIDAQAB
Records TXT
Host/Name: _dmarc
Value: v=DMARC1;p=none;pct=100;aspf=r;adkim=r;
Record CNAME
Host/Name: tracking
Value:api.elasticemail.com
Type: MX
Hostname: @ or left blank
Destination: mx1.emailsrvr.com
Priority: 10
驗證 Domain:2.回 Cloudways Elastic Email 驗證 domain
回到 Cloudways 首頁,上方的九個小方格,選擇 Add-on,裡面的 Elastic Email 旁邊因為已經啟用,會多出一些選項,選擇盾牌裡面有勾勾的這一個,這裡可以輸入 domain 名稱(也就是前一個步驟 GoDaddy 修改DNS記錄的那一個 domain),然後按下左邊的 VERIFY DOMAIN,如果跑完全部都是綠色表示成功,按下旁邊的 VIEW VERIFIED DOMAINS 會看到自己的 domain 有沒有成功在裡面,且是綠色勾勾,如果哪一個部分是紅色的,要去檢查前一個步驟是不是少加了那一個DNS記錄。
到這裡 domain 就驗證完了。
修改 Application 中的 FROM EMAIL
進到 Cloudways -Server -Application 裡面,選擇屬於剛剛那個 domain 的 application,裡面的 Application Settings。
有一欄是 Default email sender,這邊要改成用自己 domain 的名稱,例如 domain 是 siplife.tw,這裡可以填上 support@siplife.tw,他會用這個名稱寄送。
這段內容可參考:Set FROM Address from the Cloudways Console。
回到 Server Management 的 SMTP 測試 email 能否正常
回到 Server 裡面的 Server Management 中的 SMTP,點下右邊的 SEND TEST EMAIL 發送測試信,sender 填入剛剛 application 中的名稱,例如剛剛的 support@siplife.tw, Receiver 填入要收到測試信的信箱,然後就可以送出了
如果成功送出沒有跳錯誤,信箱內卻沒有收到?
先檢查看看垃圾郵件!
測試網站上所有的 Contact Form 聯絡表單
如果都正常就都設定完成了。沒有的話直接詢問 Cloudways 客服,他們回復都非常即時且快速。