2

GMailSMTPサーバーを使用してメールを送信しています。そして、メール送信スクリプトとしてのPHPMailer。

このエラーを受け取りました(すべてのSMTPエラーをログに記録します。つまり、PHPMailer :: Sendが失敗するたびに):-

SMTP Error: Data not accepted.<p>SMTP server error: 4.7.0 Temporary System Problem.  Try again later (WS)

しかし、メールは実際に送信されます。(これは、送信されたメールのタイムスタンプとログのタイムスタンプを照合することでわかります。)

どうしてそれは可能ですか?そのエラーはどういう意味ですか?

更新:私は私の質問で明確ではなかったと思います。言い換えると:-

PHPMailerがGMailSMTPにメールを送信できた後、メールが失われても心配ありません。しかし、PHPMailerがエラーを返したのではないかと心配していますが、メールは送信されました。出来ますか?

4

1 に答える 1

2

とにかくSMTPは配信を保証しないと思います。これは、ストア アンド フォワード メカニズムです。そのため、一部のメールが失われる可能性があります (たとえば、メッセージのリレー中にリレーがクラッシュした場合)。

重要な機能を電子メールに依存している場合は、ある種のフィードバック メカニズムを (おそらく応答を介して) 強制したい場合があります。その後、一定時間内に応答が受信されない場合は、再試行します。

更新:それは最も確実に可能です。必要なのは、代わりにエラー コードを送信するメール サーバーだけです。さまざまな理由でエラー コードが送信される場合がありますが、その理由は多すぎて一覧にできません。上記の方法を提案したのは、特に原子性/酸性度がない場合は、信頼だけでサーバーの応答を受け取るべきではないためです。

于 2009-06-18T08:56:22.723 に答える