したがって、私のサイトから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);
Class.phpmailer.phpファイルが破損している可能性があります。以下から最新バージョンをダウンロードします。 https://github.com/PHPMailer/PHPMailer
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
同じ問題が発生しました。次の行にコメントすると、管理も修正します:
$mail->isSMTP();
すでに答えが見つかっていることに気づきましたが、他の人にとっては問題が解決するかもしれません。
これは、コメントでRozzAが述べたように、外部SMTPサーバーの使用を防ぎます。
これを含めてみてください
$mail->SMTPDebug = 1;
SMTPAuthをfalseに設定してみてください。
これは、SMTPサーバーからの制限です。電子メールメッセージの送信は、成長を続けるインターネットビジネスの重要な部分です。場合によっては、毎日、さらには1時間ごとに大量の電子メールを送信する必要があります。これに伴い、電子メールスパムの問題はますます増大し、ユーザーが常に受信するジャンクメッセージの数は無数に増えています。
最も一般的な制限は次のとおりです。
1時間あたり150通の電子メール。 24時間あたり1500件の電子メール。メッセージごとに50人の受信者。各受信者は個別に送信される電子メールメッセージとしてカウントされます(たとえば、1つのメッセージに50人の受信者がいる場合、これは送信済みメッセージ50人としてカウントされます)。
1つの解決策は、メーリングリストを使用することです。その場合、制限は24時間で1500件の電子メールです。 1時間あたりに送信されるメールの量に制限はありません。つまり、問題なく最大1500人の受信者を含むメーリングリストにメールを送信できます。
毎時/毎日の制限に達した場合、さらにメールを送信しようとすると次のエラーが表示されます:550-停止、送信が速すぎます!
時間/日が経過すると、再度メールを送信できるようになります。
制限を超えないようにするために知っておくべきこと:
上記の電子メールの制限は、単一のメールボックスではなく、ホスティングアカウント全体に有効です。つまり、メールボックスの1つが許可された制限を超えると、他の電子メールアカウントからメッセージを送信できなくなります。上記のエラーメッセージが表示された場合は、メールボックスからメッセージを送信する試みをすべて停止することを強くお勧めします。試行を続けると、メッセージはメールキューに残ります。メールキューは、サーバータイマーがリセットされ、電子メールを再度送信できるようになる前にクリアする必要があります。
あなたの行に注意してください、すなわち...
$mail->Username = "MAIL_TO_SEND_FROM"; $mail->Password = "PASSWORD"; $mail->From = "MAIL_TO_SEND_FROM";
ここで1行目と3行目では、同じ電子メールアドレスを使用する必要があります(異なる電子メールアドレスを使用することはできません)。これは確実に機能します。
少し確率が低い問題があります。この条件は、ISPによる保護が原因である可能性があります。
または受信者/送信者のメールアドレスに問題がある可能性があります
SMTP認証に関する追加情報を次に示します。
PLAIN(Base64エンコードを使用します。)ログイン(Base64エンコードを使用します)e.t.c-こちらで見ることができます http://en.wikipedia.org/wiki/SMTP_Authentication
私にとっての解決策は、PHPMailerクラスのSMTPAuthをtrueに設定することでした