PHP mail()消息处理失败
我一直在尝试通过将JSON发布到response.PHP来让PHP的mail()函数工作,response.PHP处理实际的发送。在多次尝试之后,我仍然无法将消息发送给接收者。我现在遇到的问题是消息需要符合RFC 5322: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
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
- PHPMailer
- 速递员
mail
一点也不好,我建议您不要用PHPMailer来解决这个问题:谢谢!我会试试的。谢谢你指出这一点,不幸的是这并不能解决我的问题,所以一定是出了什么问题。我现在也没有收到邮件传递失败的电子邮件,所以我会选择PHPmailer(如Martin所建议的)或Swiftmailer。@WouterPol不客气。嗯…,这太奇怪了。我将使用PHP.net的实际裸示例尝试另一个测试,并且不以任何方式修改它。我很肯定这会奏效的。当然,PHPMailer/Swiftmailer是很好的程序。为了确保服务器的php.ini正常运行,我对此表示欢迎。这个简单的例子很有魅力,所以这是我的错误(当然)。如果我发现错误是什么,我会确保更新我的帖子。干杯