Email-Server

Exim4 根郵件轉發失敗

  • December 4, 2016

在有人問之前,是的,我已經閱讀了其他 50 個關於此的主題,但沒有一個有效。(而且我的聲譽很低,以至於我似乎無法評論現有執行緒,因此不得不再次重新啟動這篇文章。)

我已經使用 exim4 成功地將 mdadm 轉發設置到 servermonitoring@example.org(由 Google 託管),但是發送給 root 的任何電子郵件都拒絕正確路由。所有最終都被直接發送到 root@example.org,但由於它目前不存在,所以它爆炸了。我已經執行 newalises,重新啟動 exim4 等,但沒有任何樂趣。我知道這必須很簡單,但我只是不太了解問題所在。

在配置文件出現之前的幾個快速註釋:

  1. rDNS 未設置,因為這是家裡的隨機伺服器。(域的 MX 記錄指向 gmail,因為 gmail 正在處理實際的域電子郵件託管。)
  2. 這個執行緒似乎接近正確,但我的伺服器的主機名不是 asdf.example.org 格式,所以我不太確定如何翻譯它。(各種嘗試都沒有奏效。)

系統主機名:

root@zetaServer:~# hostname
zetaServer

/etc/aliases 的內容:

postmaster:    root
root: servermonitoring@example.org, /root/mailbox

/root/.forward 的內容:

servermonitoring@example.org

/etc/exim4/update-exim4.conf.conf 的內容:

dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

發送測試郵件後 /var/log/exim4/mainlog 的內容:

root@zetaServer:~# echo test | mail -s "test message" root
root@zetaServer:~# tail /var/log/exim4/mainlog -n 3
2016-11-24 20:55:29 1cA7bl-0006Xf-K0 <= root@example.org U=root P=local S=482
2016-11-24 20:55:30 1cA7bl-0006Xf-K0 => root@example.org R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [74.125.28.109] X=TLS1.2:RSA_AES_128_CBC_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=gmail_login C="250 2.0.0 OK 1480046130 c15sm63433639pfd.36 - gsmtp"
2016-11-24 20:55:30 1cA7bl-0006Xf-K0 Completed

郵箱錯誤:

Delivery to the following recipient failed permanently:

root@example.org

我知道我必須靠近… 只需要一點幫助。

啊哈!我想到了!

我需要將我的伺服器本身(zetaServer)的主機名設置為系統郵件名稱,而不是 example.org!:)

由於您在家庭網路上,因此您不太可能獲得有效的 rDNS,並且您的主機名可能無效。雖然,你應該有類似的東西myhost.example.org

嘗試為 gmail 配置密碼條目/etc/exim/passwd.client。檢查 auth 配置,確認客戶端驗證碼沒有被註釋掉。(我相信它是預設啟用的。)為您的 gmail 帳戶使用有效的憑據。

檢查您的日誌文件中/var/log/exim4是否有任何指示消息失敗原因的消息。失敗的郵件應該被退回到本地帳戶。日誌文件應顯示退回消息的本地傳遞。

Exim 不會以 root 身份傳遞,因此如果您希望本地傳遞以 root 使用real-root作為本地地址。最好將 root 別名為本地使用者,並將該使用者別名為遠端傳遞。然後可以更輕鬆地完成退回和本地傳遞。real-對於使用 smarthost 設置時的本地傳遞,請為將繞過遠端別名的所需使用者添加前綴。

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