Linux

為什麼 sendmail 會更改 FROM 域以及如何配置正確的域?

  • October 21, 2015

我安裝了 Jenkins 並將其配置為從“jenkins@jenkins.example.com”發送電子郵件,但是在發送電子郵件時地址總是會更改,並且我收到的郵件是從“jenkins@default.vps.example”發送的.com”。

我已經安裝了 Sendmail 並且 Jenkins 被配置為使用 127.0.0.1 作為郵件伺服器。

知道為什麼在發送電子郵件時 Sendmail 會替換 FROM 域嗎?

伺服器的主機名設置正確(當我執行時,hostname我確實得到“jenkins.example.com”)。

如果我從命令行發送電子郵件,同樣的方式echo "This is the body" | mail -s "Subject" u@d.com

default.vps.example.com這個域從哪裡來?這個預設域在哪裡可配置?

LE:在我的 sendmail.mc 中有define(confDOMAIN_NAME’,jenkins.domain.com')dnl我生成了 sendmail.cf 文件m4 sendmail.mc > sendmail.cf並重新啟動了 sendmail。還是不行。

樂2:

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify           input: jenkins @ jenkins . example . com
Canonify2          input: jenkins < @ jenkins . example . com >
dns_getcanonname(jenkins.example.com, trymx=1)
dns_getcanonname: trying jenkins.example.com. (AAAA)
   YES
dns_getcanonname: trying default.vps.example.com. (AAAA)
   NO: errno=0, h_errno=4
dns_getcanonname: trying default.vps.example.com. (A)
   YES
dns_getcanonname: default.vps.example.com
Canonify2        returns: jenkins < @ default . vps . example . com . >
canonify         returns: jenkins < @ default . vps . example . com . >
>

您的 sendmail 很可能將名稱替換CNAME為“真實名稱”的 DNS 記錄(DNS 別名)。

作為 root 執行echo '3 jenkins@jenkins.example.com' | sendmail -d8.20 -bt

它應該在電子郵件地址預處理期間向您顯示 DNS 查詢(通過規則集3)。

http://cr.yp.to/im/cname.html

郵件 RFC 821 中的DJ Bernstein

CNAME 記錄

禁止在 SMTP 請求中的域名中使用“暱稱或別名”。RFC 1123 明確禁止在 MAIL 和 RCPT 請求中使用 DNS 別名(具有 CNAME 記錄的域)。

sendmail 接受具有 CNAME 記錄的域。在 RCPT 中使用之前,它會用 CNAME 值替換域,除非它充當啞客戶端。類似的評論適用於 qmail 和其他郵件程序。

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