所以我在尝试使用PHPmailer从我的网站发送邮件时收到此错误。
SMTP错误:以下收件人失败:XXXX
我尝试设置$ mail-> SMTPAuth = true;是假但没有结果。我试图更改邮件帐户的密码并在sendmailfile.php中更新,但仍然相同。
它在两天前按预期工作,现在我不知道为什么会这样。由于没有任何错误代码,我不知道从哪里开始,因为它确实有效..
任何可能知道的人?
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->ContentType = 'text/html';
$mail->IsSMTP();
$mail->Host = "HOST.COM";
$mail->SMTPAuth = true;
$mail->Username = "MAIL_TO_SEND_FROM";
$mail->Password = "PASSWORD";
$mail->From = "MAIL_TO_SEND_FROM";
$mail->FromName = "NAME";
$mail->AddAddress($safeMail);
$mail->AddReplyTo("no-reply@example.COM", "No-reply");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$sub = "SUBJECT";
mail->Subject = ($sub);
答案 0 :(得分:23)
我遇到了同样的问题。当我评论下一行时管理也修复它:
$mail->isSMTP();
注意到你已经找到了答案,但是这可能会解决其他人的问题。
这样做会阻止您将外部SMTP服务器用作评论中所述的RozzA。
答案 1 :(得分:17)
也许你的class.phpmailer.php文件已损坏。从以下版本下载最新版本: https://github.com/PHPMailer/PHPMailer
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
答案 2 :(得分:2)
$mail->SMTPDebug = 1;
答案 3 :(得分:2)
尝试将SMTPAuth设置为false。
答案 4 :(得分:1)
这是SMTP服务器的限制。 发送电子邮件是不断发展的互联网业务的重要组成部分。有时,每天都需要发送大量的电子邮件,甚至每小时一次。随之而来的还有电子邮件垃圾邮件日益严重的问题,以及用户不断收到的无数垃圾邮件。
最常见的限制是:
每小时发送150封电子邮件; 每24小时发送1500封电子邮件; 每封邮件50个收件人,其中每个收件人被计为单独发送的电子邮件(例如,如果您在一封邮件中有50个收件人,这将计为50个已发送邮件);一种解决方案是使用邮件列表,然后限制为1500封电子邮件,持续24小时。每小时发送的电子邮件数量没有限制,即您可以发送电子邮件到最多1500个收件人的邮件列表而没有问题。
如果达到每小时/每日限制,则在尝试发送更多电子邮件时会出现此错误: 550 - 停止,你发送得太快了!
一旦小时/天过去,您就可以再次发送电子邮件。
你应该知道的事情,以避免超出你的限制:
上述电子邮件限制对整个主机帐户有效,而对单个邮箱无效。这意味着,如果您的某个邮箱超出允许的限制,您将无法从任何其他电子邮件帐户发送邮件。 如果您在收到上述错误消息的任何时候,强烈建议您停止所有尝试从邮箱发送邮件。如果继续尝试,您的邮件将留在邮件队列中,必须先清除,然后服务器计时器才能重置并允许您再次发送电子邮件。
答案 5 :(得分:0)
问题可能性稍微有些问题。可能这种情况是由您的ISP提供的保护造成的。您说它在两天前运行良好。可能是问题。请联系您的ISP。
或者它可能是收件人/发件人电子邮件地址的问题
答案 6 :(得分:0)
以下是有关SMTP Auth
的一些其他信息PLAIN(使用Base64编码。) 登录(使用Base64编码。) e.t.c - 你可以在这里观看http://en.wikipedia.org/wiki/SMTP_Authentication
对我来说,解决办法是为PHPMailer类设置SMTPAuth为true
答案 7 :(得分:0)
请在您的行中注明,即...
$mail->Username = "MAIL_TO_SEND_FROM";
$mail->Password = "PASSWORD";
$mail->From = "MAIL_TO_SEND_FROM";
在第1行和第3行中,您必须使用相同的电子邮件地址(不能使用其他电子邮件地址),这可以正常工作,希望您使用其他电子邮件地址,(电子邮件地址必须与用户名/密码相同匹配)。
答案 8 :(得分:0)
跳过向无效地址发送电子邮件;使用 try ... catch
$mail=new PHPMailer(true);
try {
$mail->CharSet = 'utf-8';
$mail->isSMTP();
$mail->isHTML(true);
$mail->Host = 'smtp.yourhost.com';
$mail->Port = 25;
$mail->SMTPAuth = false;
$mail->Username = 'xxxx';
$mail->Password = 'xxxx';
$mail->SMTPSecure = 'tls';
$mail->SMTPDebug = 0;
$mail->MailerDebug = false;
$mail->setFrom($absender, $name);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body = $message_other_player;
}
$mail->send();
// echo 'Message has been sent';
} catch (Exception $e) {
// echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}