0

我有一个 PHP 客户输入表单,它将 SMTP 邮件发送到托管该表单的公司。由于某种原因,电子邮件没有到达收件人的电子邮件。如果我用不在域中的任何其他电子邮件地址进行替换,则效果很好。我还可以在 To: 行列出多个地址,其他人将收到电子邮件,但不会收到所需的 info@ 电子邮件地址。我无法更改发送域,因为当它们不匹配时,我的虚拟主机不会发送邮件。我认为这可能与发送电子邮件地址和接收相同有关,因此我将 From: 地址更改为“onlineform@”而不是“info@”,但这并没有什么区别。

我对这里发生的事情感到困惑。我可以直接从任何其他帐户向“info@”电子邮件地址发送电子邮件,并且效果很好。我已经要求他们检查他们的客户端服务器垃圾邮件文件夹,它们都很干净。关于发生了什么或如何进一步诊断问题的任何想法?我已将代码简化为下面的相关部分,并且片段代码执行相同的操作。

<?php
$email_to = "info@domain.tld";
$email_subject = "Subject line here";
$email_message = "Email body here.";

$headers = 'From: onlineform@domain.tld'."\r\n".
'Reply-To: noreply@domain.tld'."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
4

1 回答 1

0

它可能与服务器的邮件策略有关。您可能会告诉服务器该消息是从whatever@domain.tld 发送的,但您没有证明这一点。

您是否尝试过使用 SMTP 身份验证发送?不确定这实际上是真正的问题,但值得测试。

另外,我建议您始终使用邮件解决方案,而不是使用普通的 php mail() 函数。我已经使用PHP Mailer很长时间了,它不仅运行良好,而且总能缓解通过 php 发送电子邮件的枯燥过程。

于 2013-09-11T18:36:52.703 回答