我需要安装 Postfix 或 Exim 才能从我的 Web 服务器的 php 代码发送电子邮件。我有几个问题,希望能找到答案:
如果我的机器的主机名是 myhost.mydomain.com,但我将发件人的电子邮件设置为[电子邮件保护]?我应该怎么做?我应该将主机名设置为 mydomain.com 吗?这会与 Google 应用发生冲突吗?
如果设置中我并未真正配置传入电子邮件,并且传入电子邮件由 Google 应用处理,那么退回的邮件会怎样?这会导致递送问题吗?
注意:我的 Google 应用已设置为接受以下邮件[电子邮件保护],但我的发件人机器的主机名是 myhost.mydomain.com。我将从我的服务器发送电子邮件[电子邮件保护]。如果发送的电子邮件被退回,它会发送到 Google 还是我的服务器?
- 我是否一定要为正在发送的邮件配置 SPF 和 DKIM 才能确保邮件送达?
我需要一些关于这一切如何运作以及如何正确设置的信息,我非常感谢您的帮助。提前谢谢您。
答案1
如果您从 host.example.com 发送邮件,则完全没问题。电子邮件地址不必包含主机名/域的任何部分。至少对于 RFC 有效的电子邮件而言。邮件通常会发送到从 DNS 中已知的核心对应 MX 主机。因此,例如,如果您想将邮件发送到[电子邮件保护]然后您的 smtp 守护程序会查看 DNS 中的 MX 记录并将其发送到找到的 IP 地址。如果没有提供 MX 记录,则作为后备,将查找 A 记录,然后尝试将邮件发送到此主机。
退回邮件会发送到指定的“发件人:”地址。在您的例子中,这将是[电子邮件保护]。你误以为它是拒绝了。
被拒邮件是指收件人不接受您发送的邮件。这可能有多种原因 - 技术困难、垃圾邮件过滤器等。如果您的邮件被暂时拒绝,您的 smtp 邮件程序 (sendmail) 将重试。如果在一段时间后邮件未送达或目的地发送了永久拒绝,那么您的邮件程序将通知发件人的电子邮件地址。如果您的 Google Apps 负责此电子邮件地址,您应该没问题。类似[电子邮件保护]因为发件人电子邮件地址应该可以完成这项工作。
您的案例中唯一棘手的事情可能是收件人端的垃圾邮件过滤。因此您必须注意一些设置:
当您有现有的 SPF 记录时。此 DNS 记录类似于“反向 MX 记录”,通过它您可以告诉全世界谁被允许从您的域发送和中继邮件。如果您有 SPF 记录,则您的 SPF 记录应使 host.example.com 符合 SPF 允许发送邮件的规定。否则,您发送的电子邮件可能会获得更高的垃圾邮件分数。
您还应该为发送主机设置反向记录和 A 记录。A 记录应与主机 IP 地址匹配。您的 IP 地址也应该是静态的。
另一件事是您的 HELO 名称。在最佳情况下,这应该是您的 FQDN 主机名。
附言:请注意应该使用example.[com|org|net|edu] 是您不想提及真实域名的示例。
答案2
听起来你已经对这个问题做了相当多的研究,也许你正处于“寻找正确答案……”的阶段。
底线:如果您的 SMTP 服务器不符合“典型”参数(这可能因测试人员及其解释方式而有所不同),那么它就有可能无法送达(无论是否有通知以及某些解释)或在接收系统中被归类为垃圾邮件。