17

因此,当我尝试从我的网站使用 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);
4

9 回答 9

22

我遇到了同样的问题。当我评论下一行时,管理也修复了它:

 $mail->isSMTP(); 

注意到您已经找到了答案,但是也许这会解决其他人的问题。

正如 RozzA 在评论中所说,这确实阻止了使用您的外部 SMTP 服务器。

于 2014-04-17T07:59:37.173 回答
18

也许您的 class.phpmailer.php 文件已损坏。下载最新版本: https ://github.com/PHPMailer/PHPMailer

$mail->SMTPDebug  = 1; // enables SMTP debug information (for testing)
                               // 1 = errors and messages
                               // 2 = messages only
于 2013-08-17T11:32:46.327 回答
2

尝试包括这个

$mail->SMTPDebug  = 1;
于 2013-08-17T11:37:54.730 回答
2

只需尝试将 SMTPAuth 设置为 false。

于 2013-08-17T11:38:03.013 回答
2

这是来自您的 SMTP 服务器的限制。发送电子邮件是不断增长的 Internet 业务的重要组成部分。有时,需要每天甚至每小时发送大量电子邮件。随之而来的是不断增加的垃圾邮件问题,以及用户不断收到的无数垃圾邮件。

最常见的限制是:

每小时 150 封电子邮件;每 24 小时 1500 封电子邮件;每封邮件有 50 个收件人,其中每个收件人算作单独发送的电子邮件(例如,如果您在一封邮件中有 50 个收件人,这将计为 50 封已发送邮件);

一种解决方案是使用邮件列表,则限制为 24 小时内 1500 封电子邮件。每小时发送的电子邮件数量没有限制,即您可以毫无问题地将电子邮件发送到最多 1500 个收件人的邮件列表。

如果您达到每小时/每天的限制,您将在尝试发送更多电子邮件时收到此错误:550 - 停止,您发送得太快了!

小时/天过去后,您将能够再次发送电子邮件。

为了避免超出限制,您应该知道的事情:

上述电子邮件限制对整个主机帐户有效,而不是对单个邮箱有效。这意味着,如果您的一个邮箱超出了允许的限制,您将无法从您的任何其他电子邮件帐户发送邮件。如果您在任何时候收到上述错误消息,强烈建议您停止从您的邮箱发送消息的所有尝试。如果您继续尝试,您的邮件将留在邮件队列中,必须先清除该队列,然后服务器计时器才能重置并允许您再次发送电子邮件。

于 2016-12-01T14:50:35.343 回答
0

有一个不太可能的问题。可能这种情况是由您的 ISP 设置的保护引起的。而且您在两天前说它运行良好。可能是问题所在。请尝试联系您的 ISP。

或者可能是收件人/发件人电子邮件地址的问题

于 2013-08-17T11:47:29.363 回答
0

这是有关 SMTP 身份验证的一些附加信息

PLAIN(使用 Base64 编码。) LOGIN(使用 Base64 编码。)等 - 你可以在这里观看http://en.wikipedia.org/wiki/SMTP_Authentication

对我来说,解决方案是将 PHPMailer 类的 SMTPAuth 设置为 true

于 2014-03-12T12:03:28.220 回答
0

请注意你的台词,即...

$mail->Username = "MAIL_TO_SEND_FROM"; $mail->Password = "PASSWORD"; $mail->From = "MAIL_TO_SEND_FROM";

在第 1 行和第 3 行,您必须使用相同的电子邮件地址(您不能使用不同的电子邮件地址),这肯定会起作用,我希望您使用不同的电子邮件地址,(电子邮件地址必须与用户名/密码匹配)。

于 2019-01-04T10:23:19.057 回答
0

for Skip sending emails to invalid adresses; use 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

于 2021-05-06T18:03:17.570 回答