Linux

sendmail 不發送到雲端(本地郵件有效)

  • February 12, 2012

我正在使用一個sendmail用於發送東西的 perl 模組(Mail::Sendmail)。它沒有工作,但沒有給我任何錯誤。

所以現在我懷疑sendmail。我試過了:

telnet 127.0.0.1 25
mail from:root@localhost.com
rcpt to:max@f33r.com
data
subject: subject line
sgiopjsdoigjsd
sdgsdg

sdgfsdg
.
quit

我收到“郵件接受投遞”消息,這是應該發生的。我等了幾分鐘,收件箱裡什麼也沒有。所以我看了一下/var/log/maillog.3,它與我剛剛所做的沒有任何關係。

我嘗試通過這樣做在本地將郵件發送給另一個使用者mail user@localhost.localdomain,這很有效。但是日誌中仍然沒有任何內容(這讓我相信真正的日誌在其他地方)。

加起來:

  • 無法將郵件發送到雲端,但可以在本地工作
  • sendmail 日誌文件的位置未知

老實說,這聽起來像是 sendmail.cf 的問題,好像它沒有為非本地電子郵件配置,或者配置錯誤。

該文件/var/log/maillog.3幾乎可以肯定是一個“舊”日誌文件,因此不會寫入任何新內容。您沒有提到您使用的是什麼 Linux 發行版、BSD 或 Unix,但目前的日誌文件,即目前附加到的一個 sendmail,可能名為“/var/log/maillog 如果/var/log/maillog不存在”,您可以嘗試停止並啟動 sendmail,並查看是否一個 /var/log/maillog 或其他文件被創建。

調試:如您所見,舊telnet localhost 25技巧非常有用,但您可以使用舊 BSDMail程序的“-v”選項之類的東西。嘗試http://heirloom.sourceforge.net/mailx.html獲取原始碼。使用它,您可以看到 SMTP 對話的樣子,這會有所幫助。

如果你真的很絕望,你可以在調試模式下執行 sendmail:

sendmail -bt -C /whatever/sendmail.cf

您可以輸入電子郵件地址並查看 sendmail 對它們的作用。

引用自:https://unix.stackexchange.com/questions/18639