0

我在 Linux 网络托管包上使用 PHP 创建了一个网站。通常我会收到由 PHP Mail() 函数生成的联系表发送的电子邮件。但这一次,对我来说是一个奇怪的案例。
我的客户公司有一个邮件服务器。如果我通过 Gmail 上的个人电子邮件发送电子邮件,他们会在他们的邮件服务器上收到它。但是当我通过联系表格发送电子邮件时,电子邮件会转到网站托管包上的 webmail。
我已经删除了这台主机上的所有电子邮件帐户,也从中删除了 DNS MX 记录,但我仍然无法在公司邮件服务器帐户上接收通过联系表格发送的电子邮件。

我怎么解决这个问题?

4

3 回答 3

1

从您的问题看来,网络拍摄提供商也是您的电子邮件托管服务提供商。您解释问题的方式使我得出结论,您的 PHP 脚本使用 mail() 函数,该函数将在内部调用 MTA(如 sendmail)来发送电子邮件。

现在这里似乎发生的是 PHP 正在通过 mail() 函数发送邮件,该函数将邮件传递给正在检查本地配置的本地 MTA(如 sendmail)。在本地配置中,似乎将收件人域作为本地域并将邮件本地传递给用户。在这种情况下,电子邮件甚至不会离开虚拟主机的服务器。

由于这不是您所期望的,因此如果您对 MTA 的配置没有影响(我认为您没有),您有两种可能性。

  1. 我建议(如果可能的话)不要使用 mail() 函数。已经准备好使用 SMTP 类,它们将连接到您的合作伙伴的 SMTP 服务器以发送电子邮件。这样你就可以避免这个问题。您应该在PHP Classes Repository中找到一些东西。

  2. 如果可能,将电子邮件发送到其他域。这样,MTA 必须检查 DNS 并将电子邮件发送到另一个 SMTP 服务器进行传递。

于 2013-07-16T13:50:48.817 回答
0


如果您的电子邮件功能“mail($to,$subject,$message)”不起作用,那么您需要检查服务器配置。现在它是否启用。有关更多详细信息,
请参见此处: https ://wycks.wordpress.com/2013/10/09/when-phps-mail-function-doesnt-work/

于 2015-04-24T07:26:35.253 回答
0

首先要确定的是您发送电子邮件的方式(sendmail 或 SMTP)。然后,无论您的电子邮件是 a) 根本没有发送还是 b) 被目标邮件服务器拒绝。

我会检查所有可用的日志(源和目标邮件服务器和守护进程)。查看 mail() 本身是否出错。尝试直接使用 sendmail/smtp。

如果目标服务器根据垃圾邮件分数拒绝邮件,请尝试设置SPF 记录以使 Web 服务器能够合法发送邮件。

于 2013-07-16T13:35:56.230 回答