【问题标题】:Can't figure out why SMTP email does not work to the same domain it's sending from无法弄清楚为什么 SMTP 电子邮件不适用于它发送的同一个域
【发布时间】:2013-04-28 20:59:28
【问题描述】:

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

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

<?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);
?>

【问题讨论】:

    标签: php email smtp


    【解决方案1】:

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

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

    另外,我建议您始终使用邮件解决方案,而不是使用普通的 php mail() 函数。我用PHP Mailer很久了,不仅效果很好,而且总能缓解通过php发送邮件的枯燥过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2010-12-02
      相关资源
      最近更新 更多