Smtp
配置 sendmail 以在數字海洋上使用帶有 SMTP 的 Gmail
我按照這些說明進行操作,並且從命令行執行它。我從命令行執行測試,如下所示:
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.org
orlocalhost.localdomain
。sendmail
將通過命令顯示它正在使用的域名sendmail -d0.1 < /dev/null
在您的系統上查找郵件日誌(這取決於
syslog
守護程序配置)並準確查看哪個sendmail
(或多個)程序在抱怨什麼也可能會有所幫助,因為我不知道您的 PHP 程式碼是否正在sendmail
經歷您的命令行範例是 (sendmail
->MSA
->MTA
) 或者它是否直接送出到MTA
viaSMTP
。Sendmail 很大程度上依賴於正確配置的 DNS;您可能會嘗試通過
FEATURE(`nocanonify', `canonify_hosts') define(`confDIRECT_SUBMISSION_MODIFIERS', `C')
在
submit.mc
配置中,儘管這可能會破壞事情(並且沒有日誌,我不知道這是否是問題的根源)。您可能還需要設置 masquerade,以便地址在被轉移到 gmail 之前正確標準化。另一種選擇是通過類似的方式發送郵件
ssmtp
。