Centos

CentOs 6.8 - Exim 4.72 無法向 root 使用者發送電子郵件。Exim 錯誤:** root@: 郵件域“”在語法上無效

  • July 15, 2016

如果遺漏了什麼,我會將所有資訊添加到該主題中,請詢問,不要投票關閉該主題。

我在使用 RedHat Exim 4.72 的 CentOs 6.8 我也在使用 CSF 防火牆,他也設置了一個 CronJob 來進行自動更新。當 CSF 更新可用時,將向根地址發送一封包含更新 Cron 資訊的電子郵件,但這會始終生成傳遞狀態通知。

如果其他應用程序執行 Cron 並且存在問題或需要向 root 使用者發送警報,這會生成傳遞狀態通知,則不僅 CSF 也會這樣做。

似乎系統無法向 root 使用者發送電子郵件。電子郵件報告了這一點:

此消息是由郵件傳遞軟體自動創建的。

您發送的郵件無法傳遞給一個或多個收件人。這是一個永久性錯誤。以下地址失敗:

根@

Exim 日誌說:** root@: mail domain "" 在語法上無效

在 etc/aliases 中

根:myemailaddress@domain.ext

已保存並已完成新別名,但這不起作用問題仍然存在。我也嘗試過根文件夾中的 .forward 文件,沒有問題仍然存在。

我不明白為什麼會這樣。

SSH 命令:echo test | mail -v -s "test message" root 同時生成傳遞狀態通知

[root@domain etc]# echo test | mail -v -s "test message" root
Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
LOG: MAIN
 <= root@domain.ext U=root P=local S=458
[root@domain etc]# Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
delivering 1bO9gE-0006iU-2t
LOG: MAIN
 ** root@: mail domain "" is syntactically invalid
Loading lookup modules from /usr/lib64/exim/4.72-8.el6/lookups
Loaded 0 lookup modules
LOG: MAIN

可能是什麼問題,我該如何解決?

它實際上是嘗試在root@沒有明顯無效的域的情況下發送電子郵件(因此出現錯誤domain "" is syntactically invalid)。exim4 應該採取幾個步驟來從您的無效電子郵件地址轉換為有效電子郵件地址。

首先,exim4 檢查是否應該允許您送出不合格的電子郵件。從文件中,

預設情況下,僅本地生成的消息接受不合格的地址。限定也適用於標題行中的地址,例如本地生成的消息的 From: 和 To:,除非使用 -bnq 命令行選項。

由於您在mail本地使用(您正在執行mailexim4 的伺服器上執行,對嗎?),這應該沒問題。(否則,您需要參考以recipient_unqualified_hosts確保您的主機被授權向不合格的收件人發送郵件。)

其次,由於root是電子郵件的收件人,exim4 將檢查qualify_recipient應該添加哪個域。如果在此處設置了域,則 exim4 會將其添加到電子郵件地址中。除此以外…

接下來,exim4 嘗試qualify_domain重寫發件人和收件人地址。如果在此處設置了域,則 exim4 會將其添加到電子郵件地址中。除此以外…

最後,exim4 用於primary_domain重寫不合格的電子郵件。

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