Yas*_*rük 35 php email smtp phpmailer
我试图找出这个问题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 />
';
Run Code Online (Sandbox Code Playgroud)
这是一系列收件人的邮件;
$recipients = array("abc@something.com","xyz@somtehing.com");
Run Code Online (Sandbox Code Playgroud)
一切都很好,电子邮件准备发送.这是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...";
}
Run Code Online (Sandbox Code Playgroud)
我测试时一切都是一样的.但有时发送电子邮件.有时它没有发送.给我以下错误:The following SMTP Error: Data not accepted.
我希望我解释一下
J H*_* Ha 44
你的服务器不允许你应该配置不同的发件人和用户名:$mail->From
比如$mail->Username
小智 14
对于与PHP Sailer一起使用Amazon SES的AWS用户,当您的"发件人"邮件发件人不是经过验证的发件人时,也会出现此错误.
要添加经过验证的发件人:
登录您的Amazon AWS控制台:https://console.aws.amazon.com
从可用的AWS应用程序列表中选择"Amazon SES"
在"已验证的发件人"下选择"电子邮件地址" - >"验证新的电子邮件地址"
导航到该新发件人的电子邮件,单击确认电子邮件的链接.
而且你们都准备好了.
将phpmailer设置为在调试中工作,以查看通用消息“ SMTP错误:数据不被接受”背后的“实际”错误。
$email->SMTPDebug = true;
Run Code Online (Sandbox Code Playgroud)
有趣的是,我有同样的问题,对我来说问题是我的连接超时了.为了能够看到我的连接的更多细节,我添加了$ mail-> SMTPDebug = 4; 到我的phpmailer(查找如何捕获调试,因为默认输出函数是echo).
这是结果:
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is ""
SMTP -> get_lines(): $data is ""
SMTP -> get_lines(): timed-out (10 seconds)
SMTP -> FROM SERVER:
SMTP -> ERROR: DATA not accepted from server:
Run Code Online (Sandbox Code Playgroud)
默认超时设置为10秒.如果您的应用可以支持更多,请将此行添加到您的phpmailer:
$mail->Timeout = 20;
Run Code Online (Sandbox Code Playgroud)
通过$ mail-> Body设置时,超过一定大小的消息会弄乱内容。
您可以对其进行测试,如果它适用于较小的消息,但不适用于较大的消息(超过4-6 kB),那么这就是问题所在。
这似乎是$ mail-> Body的问题,因此您可以通过通过$ mail-> MsgHTML($ message)手动设置HTML正文来解决此问题。然后,您可以尝试通过$ mail-> AltBody仅添加非HTML正文。
希望我能提供帮助,随时提供更多详细信息。