PHP mail()消息处理失败

PHP mail()消息处理失败,php,email,Php,Email,我一直在尝试通过将JSON发布到response.PHP来让PHP的mail()函数工作,response.PHP处理实际的发送。在多次尝试之后,我仍然无法将消息发送给接收者。我现在遇到的问题是消息需要符合RFC 5322: wouter0.7@live.nl host mx2.hotmail.com [65.54.188.72] SMTP error from remote mail server after end of data: 550 5.7.0 (BAY004-MC1F14) Mes

我一直在尝试通过将JSON发布到response.PHP来让PHP的mail()函数工作,response.PHP处理实际的发送。在多次尝试之后,我仍然无法将消息发送给接收者。我现在遇到的问题是消息需要符合RFC 5322:

wouter0.7@live.nl
host mx2.hotmail.com [65.54.188.72]
SMTP error from remote mail server after end of data:
550 5.7.0 (BAY004-MC1F14) Message could not be delivered. Please ensure the message is RFC 5322 compliant.
脚本的消息输出为:

asdada\r\n\nName: Www\r\nEmail: wouter0.7@live.nl
(请记住,在尝试了一千次之后,我只按了几个按钮,所以消息没有意义。) 我使用了上的示例来创建标题,因此它们如下所示:

$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
当我查看从邮件递送系统收到的邮件时,邮件的标题似乎是有序的。然而,邮件在传递过程中似乎被弄乱了,导致邮件传递失败

有人知道为什么会发生这种情况吗?如果我需要上传更多代码/示例,请告诉我

编辑:忘记提到我已经尝试向mail()函数添加第五个参数:

mail($to,$subject,$message,$headers,"-f your@email.here");
//Send Mail

    $to = "wouter0.7@live.nl"; // Your email here
    $path = $_SERVER['HTTP_HOST'];
    $subject = 'Message from ' . $path; // Subject message here 
    $email = $return["email"];
    //Set headers
    $headers = 'From: ' . $email .''. '\r\n'.
    'Reply-To: '.$email.'' . '\r\n' .
    'X-Mailer: PHP/' . phpversion();
    $message = $return['msg'] . '\r\n\n'  .'Name: '.$return['name']. '\r\n'
    .'Email: '.$return['email'];
    mail($to, $subject, $message, $headers,"-f wouter0.7@live.nl");
按照建议 编辑2:我用于mail()函数的代码:

mail($to,$subject,$message,$headers,"-f your@email.here");
//Send Mail

    $to = "wouter0.7@live.nl"; // Your email here
    $path = $_SERVER['HTTP_HOST'];
    $subject = 'Message from ' . $path; // Subject message here 
    $email = $return["email"];
    //Set headers
    $headers = 'From: ' . $email .''. '\r\n'.
    'Reply-To: '.$email.'' . '\r\n' .
    'X-Mailer: PHP/' . phpversion();
    $message = $return['msg'] . '\r\n\n'  .'Name: '.$return['name']. '\r\n'
    .'Email: '.$return['email'];
    mail($to, $subject, $message, $headers,"-f wouter0.7@live.nl");

$return数组用于编码为JSON,它只包含字符串值

注意所有的
'\r\n'
'的单引号?和
'\r\n\n'

未正确解释/分析这些内容,必须用双引号括起来
“\r\n”
“\r\n\n”

有关
mail()
,请参阅手册:

  • -都在里面
手册中没有任何地方建议对
\r\n
使用单引号,而只对
邮件使用单引号caffeinated@example.com“,”我的主题“,$message)
和其他一些示例,但不适用于
\r\n

  • 请再读一遍手册。所有
    \r\n
    的周围都有双引号,而不是单引号
正如Martin在评论中所建议的,PHPMailer和Swiftmailer一样是一个很好的程序

参考资料:

  • PHPMailer
  • 速递员

您需要发布完整或更多代码。没有足够的代码。告诉我们“您”在使用什么。
mail
一点也不好,我建议您不要用PHPMailer来解决这个问题:谢谢!我会试试的。谢谢你指出这一点,不幸的是这并不能解决我的问题,所以一定是出了什么问题。我现在也没有收到邮件传递失败的电子邮件,所以我会选择PHPmailer(如Martin所建议的)或Swiftmailer。@WouterPol不客气。嗯…,这太奇怪了。我将使用PHP.net的实际裸示例尝试另一个测试,并且不以任何方式修改它。我很肯定这会奏效的。当然,PHPMailer/Swiftmailer是很好的程序。为了确保服务器的php.ini正常运行,我对此表示欢迎。这个简单的例子很有魅力,所以这是我的错误(当然)。如果我发现错误是什么,我会确保更新我的帖子。干杯