我如何更改 Exim4 发送邮件的默认用户?我讨厌 www-data 这个东西。当我尝试向某些人发送邮件时,我收到此错误(位于 /var/log/exim4/mainlog 中):
2011-04-24 01:10:54 1QDraw-0001mS-QS <= [email protected] U=www-data P=local S=385
2011-04-24 01:10:55 1QDraw-0001mS-QS ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<[email protected]>: host receiverdomain.com [66.147.242.169]: 550-Verification failed for <[email protected]>\n550-The mail server could not deliver mail to [email protected]. The account or domain may not exist, they may be blacklisted, or missing the proper dns entries.\n550 Sender verify failed
2011-04-24 01:10:55 1QDrax-0001mW-Gk <= <> R=1QDraw-0001mS-QS U=Debian-exim P=local S=1536
2011-04-24 01:10:55 1QDraw-0001mS-QS Completed
2011-04-24 01:10:55 1QDrax-0001mW-Gk => www-data <[email protected]> R=local_user T=mail_spool
2011-04-24 01:10:55 1QDrax-0001mW-Gk Completed
这真是太烦人了。我可以向 Gmail 和 Yahoo 用户发送邮件,但无法向其他邮件提供商发送邮件,因为我遇到了这个错误。我该如何修复这个问题?
答案1
您似乎正在通过/usr/sbin/sendmail
界面从您的网络服务器用户帐户(www-data)发送电子邮件,但您的系统不接受该地址的电子邮件([电子邮件保护])因此该地址在接收服务器上无法通过“发件人验证”。
您有两个选择。第一 - 启用 www-data 帐户以接收来自外部系统的消息。第二 - 使用-f
选项将信封发件人地址从 www-data 更改为其他地址/usr/sbin/sendmail
。
答案2
有时 Web 应用程序有一个配置选项,用于与 SMTP 而不是 sendmail 或 php mail() 通信,如果您的应用程序有该选项,请尝试使用它。如果不可能,则使用 -f 选项设置信封发件人地址。
答案3
您可以修改文件passwd
。文件:/etc/passwd
线:
www-数据:x:33:1002:www-数据:在/ var / www:/ bin / sh
为了:
www-数据:x:33:1002:YOUNAME:/ var / www:/ bin / sh
这个解决方案帮我解决了这个问题!