web-dev-qa-db-ja.com

SMTPエラー:次の受信者が失敗しました:XXXX

したがって、私のサイトからPHPmailerを使用してメールを送信しようとすると、このエラーを受け取りました。

SMTPエラー:次の受信者が失敗しました:XXXX

$ mail-> SMTPAuth = trueを設定しようとしました。 falseになりますが、結果はありません。そして、私はメールアカウントのパスワードを変更し、sendmailfile.phpでそれを更新しようとしましたが、それでも同じです。

2日前に意図したとおりに機能しましたが、なぜこれが起こっているのかわかりません。エラーコードがないので、どこから始めればいいのかわかりません。

知っている人はいますか?

    $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("[email protected]", "No-reply");
    $mail->WordWrap = 50;
    $mail->IsHTML(true);
    $sub = "SUBJECT";
    mail->Subject = ($sub);
12
Markus

Class.phpmailer.phpファイルが破損している可能性があります。以下から最新バージョンをダウンロードします。 https://github.com/PHPMailer/PHPMailer

$mail->SMTPDebug  = 1; // enables SMTP debug information (for testing)
                               // 1 = errors and messages
                               // 2 = messages only
17
chirag ode

同じ問題が発生しました。次の行にコメントすると、管理も修正します:

 $mail->isSMTP(); 

すでに答えが見つかっていることに気づきましたが、他の人にとっては問題が解決するかもしれません。

これは、コメントでRozzAが述べたように、外部SMTPサーバーの使用を防ぎます。

22
Jordy

これを含めてみてください

$mail->SMTPDebug  = 1;
2
Vihanga Gamage

SMTPAuthをfalseに設定してみてください。

2
Manish Chauhan

これは、SMTPサーバーからの制限です。電子メールメッセージの送信は、成長を続けるインターネットビジネスの重要な部分です。場合によっては、毎日、さらには1時間ごとに大量の電子メールを送信する必要があります。これに伴い、電子メールスパムの問題はますます増大し、ユーザーが常に受信するジャンクメッセージの数は無数に増えています。

最も一般的な制限は次のとおりです。

1時間あたり150通の電子メール。 24時間あたり1500件の電子メール。メッセージごとに50人の受信者。各受信者は個別に送信される電子メールメッセージとしてカウントされます(たとえば、1つのメッセージに50人の受信者がいる場合、これは送信済みメッセージ50人としてカウントされます)。

1つの解決策は、メーリングリストを使用することです。その場合、制限は24時間で1500件の電子メールです。 1時間あたりに送信されるメールの量に制限はありません。つまり、問題なく最大1500人の受信者を含むメーリングリストにメールを送信できます。

毎時/毎日の制限に達した場合、さらにメールを送信しようとすると次のエラーが表示されます:550-停止、送信が速すぎます!

時間/日が経過すると、再度メールを送信できるようになります。

制限を超えないようにするために知っておくべきこと:

上記の電子メールの制限は、単一のメールボックスではなく、ホスティングアカウント全体に有効です。つまり、メールボックスの1つが許可された制限を超えると、他の電子メールアカウントからメッセージを送信できなくなります。上記のエラーメッセージが表示された場合は、メールボックスからメッセージを送信する試みをすべて停止することを強くお勧めします。試行を続けると、メッセージはメールキューに残ります。メールキューは、サーバータイマーがリセットされ、電子メールを再度送信できるようになる前にクリアする必要があります。

1
Zeke

あなたの行に注意してください、すなわち...

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

ここで1行目と3行目では、同じ電子メールアドレスを使用する必要があります(異なる電子メールアドレスを使用することはできません)。これは確実に機能します。

0
Saif Warsi

少し確率が低い問題があります。この条件は、ISPによる保護が原因である可能性があります。

または受信者/送信者のメールアドレスに問題がある可能性があります

0
Vihanga Gamage

SMTP認証に関する追加情報を次に示します。

PLAIN(Base64エンコードを使用します。)ログイン(Base64エンコードを使用します)e.t.c-こちらで見ることができます http://en.wikipedia.org/wiki/SMTP_Authentication

私にとっての解決策は、PHPMailerクラスのSMTPAuthをtrueに設定することでした

0
Belikov Dmitrii