Smtp

配置 sendmail 以在數字海洋上使用帶有 SMTP 的 Gmail

  • February 4, 2018

我按照這些說明進行操作,並且從命令行執行它。我從命令行執行測試,如下所示:

echo "Just testing my sendmail gmail relay" \
| mail -s "Sendmail gmail Relay" my-email@example.com

有延遲,但它最終會發送電子郵件……

當我從 php 呼叫 mail() 時,它超時或因“504 Gateway Time-out”錯誤而死亡。

在文章中它說“如果您在執行上述命令後遇到替代延遲,最可能的原因是您沒有使用 FQDN 配置您的主機。檢查您的日誌以獲取警告:”

我在日誌中找不到任何內容。我已經重新啟動了伺服器,但想不出其他可以嘗試的方法……我相信主機配置正確:

127.0.1.1 server-name
127.0.0.1 localhost

我不知道在這一點上還能嘗試什麼……

任何提示想法或建議?

既不完全合格,server-name也不localhost完全合格;一個完全限定的主機名看起來像server-name.example.orgor localhost.localdomainsendmail將通過命令顯示它正在使用的域名

sendmail -d0.1 < /dev/null

在您的系統上查找郵件日誌(這取決於syslog守護程序配置)並準確查看哪個sendmail(或多個)程序在抱怨什麼也可能會有所幫助,因為我不知道您的 PHP 程式碼是否正在sendmail經歷您的命令行範例是 ( sendmail-> MSA-> MTA) 或者它是否直接送出到MTAvia SMTP

Sendmail 很大程度上依賴於正確配置的 DNS;您可能會嘗試通過

   FEATURE(`nocanonify', `canonify_hosts')
   define(`confDIRECT_SUBMISSION_MODIFIERS', `C')

submit.mc配置中,儘管這可能會破壞事情(並且沒有日誌,我不知道這是否是問題的根源)。您可能還需要設置 masquerade,以便地址在被轉移到 gmail 之前正確標準化。

另一種選擇是通過類似的方式發送郵件ssmtp

引用自:https://serverfault.com/questions/895603