phpmailer - 以下 SMTP 错误: 不接受数据

2022-08-30 10:51:13

我试图弄清楚这个问题6个小时。但没有什么意义。这是场景;有一个格式良好的模板。HTML

$mail_body = '
    <b>Message Num :</b> 769<br />
    <b>Message Date :</b> 2013-04-08 09:03:21<br />
    <b>Name :</b> John Doe<br />
    <b>Phone :</b> 123456789<br />
    <b>E-mail :</b> abcdf@somedomain.com<br />
    <b>Message :</b> Here is the message info<br />
';

这是收件人邮件的数组;

$recipients = array("abc@something.com","xyz@somtehing.com");

一切看起来都很好,电子邮件准备发送。这是phpmailer配置;

$mail = new PHPMailer(); 
$mail->IsSMTP();
$mail->From = "noreply@something.com"; 
$mail->FromName = "TEST";
$mail->WordWrap = 50;

foreach($recipients as $mail_add) {
    $mail->AddAddress($mail_add);
}
$mail->IsHTML(true);
$mail->Subject = "TEST Subject";
$mail->Body = $mail_body;
if(!$mail->Send()) {
    echo $mail->ErrorInfo;
} else { 
        echo "Mail sent...";
}

当我测试它时,一切都是一样的。但有时也会发送电子邮件。有时它没有发送。给我以下错误:The following SMTP Error: Data not accepted.

我希望我解释了


答案 1

你的服务器不允许不同的发件人和用户名,你应该配置:比如$mail->From$mail->Username


答案 2

将phpmailer设置为在调试中工作,以查看通用消息“SMTP错误:不接受数据”背后的“真实”错误,在我们的例子中,消息中的文本正在触发smtp服务器垃圾邮件过滤器。

  $email->SMTPDebug = true;

推荐