如何為發件人地址配置真實域名
我嘗試使用 php 函式發送一封電子郵件,
mail()
但它以某種方式失敗,抱怨需要一個真實的域名。在郵件日誌中觀察到以下內容:sendmail 4984 r25984: from=apache, size=273, class=0, nrcpts=1, msgid=<201.r25@localhost.localdomain>, relay=apache@localhost
sendmail 4985 r25985: ruleset=check_mail, arg1=, relay= mydomain.com
$$ 127.0.0.1 $$,reject=553 5.5.4 … 發件人地址需要真實域名
sendmail 4984 r25984: to=external@server.com, ctladdr=apache (48/48), delay=00:00:01, xdelay=00: 00:00,郵件=中繼,pri=30273,中繼=$$ 127.0.0.1 $$ $$ 127.0.0.1 $$, dsn=5.6.0, stat=數據格式錯誤
sendmail 4984 r25984: r25984: DSN: 數據格式錯誤當 logrotate 出現問題時,cron 能夠向 external@server.com 發送電子郵件。我不確定為什麼 php 不能這樣做。我嘗試使用以下內容更改 `sendmail.mc 中的預設配置:
MASQUERADE_AS(`mydomain.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(localhost)dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl MASQUERADE_DOMAIN(mycom)dnl
但是,它似乎沒有任何效果。php郵件功能中地址的標頭已經設置。我還確保
httpd_can_sendmail
啟用了 SELinux。我還需要做什麼才能讓郵件送達?
我想我剛剛解決了它。我在*/etc/hosts*中有以下內容:
127.0.0.1 www.mydomain.com test.mydomain.com 127.0.0.1 cdn.mycdn.com 127.0.0.1 localhost.localdomain localhost myserver.com
我需要的是把 myserver.com 放在前面,
localhost.localdomain
這樣sendmail會認為它正在使用一個真實的域來發送電子郵件。
您必須在腳本中配置電子郵件的標頭以具有
From: sender@domain.com
.