SMTP错误:以下收件人失败:XXXX

时间:2013-08-17 11:26:02

标签: php smtp phpmailer

所以我在尝试使用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);

9 个答案:

答案 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}";
   }

PHPMailer - Skip sending emails to invalid adresses