我有一台 CentOS 服务器,它托管一个包含联系表单的公共网站。该联系表单调用一个发送邮件的 php 脚本。
如果我向某些域发送邮件,我会收到如下错误:
<[email protected]>: host spool.mail.gandi.net[2001:4b98:c:521::6] said: 550
5.1.8 <[email protected]>: Sender address rejected:
Domain not found (in reply to RCPT TO command)
该网站以 apache 用户身份在 Apache 上运行,因此 PHP 脚本代表该用户发送邮件。CentOS-63-64-minimal.localdomain
我猜它使用的事实是根本原因。(接收端,在本例中为 gandi.net,会进行检查并拒绝该消息)。其他域更宽松,但我仍然想修复这个配置问题。
假设使用“mypublicsite.com”访问公共网站,并且 DNS 区域包含以下记录
- A 和 CNAME 记录使其指向 CentOS 服务器
- 指向 DNS 注册商的正确 MX 记录(mypublicsite.com 正在使用注册商邮件包,并且运行良好)。
hosts file
CentOS 服务器上包含CentOS-63-64-minimal
。
我如何配置服务器和/或 apache 以便正确发送邮件。我假设我需要在某个地方配置the mail system (?)
使用mypublicsite.com
而不是使用CentOS-63-64-minimal.localdomain
。这可以在服务器上完成吗?还是由 DNS 配置处理?
我没有计划在这个 CentOS 服务器上进行任何类型的邮件托管。我只是希望能够通过我托管的网站上的联系表单将邮件从该服务器发送到任何域。
答案1
您将无法在这里做您想做的事情。考虑到您的情况,正确的方法是使用您的用户凭据通过 Gandi 的邮件服务提交邮件。您也不能伪造来自其他人的邮件。如果您这样做,您就是垃圾邮件发送者。(您现在被归类为垃圾邮件发送者,这是理所当然的。)
如果您想做任何严肃的事情,您必须安装并正确配置具有 MTA、SPF、DKIM 等的邮件系统。