Sendmailを介してメールを送信しようとしていますが、キューに入れられないようにしています。メールを送ってほしいだけなのですが、これまでのところ大きな問題でした。
sendmail.cfとsubmit.cfの両方に、次の設定があります。
O QueueLA=99
メールログには、問題のメールが送信され、キューに入れられたことが記録されています。真剣に、それはただひどく混乱していませんか?
Feb 10 17:04:34 nnn sendmail[27910]: r1AG4Q0V027910: [email protected],
[email protected] (33/33), delay=00:00:08, xdelay=00:00:04,
mailer=relay, pri=30391, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0,
stat=Sent (r1AG4U09027911 Message accepted for delivery)
Feb 10 17:04:36 nnn sm-mta[27913]: r1AG4U09027911: to=<[email protected]>,
delay=00:00:06, xdelay=00:00:02, mailer=esmtp, pri=120589,
relay=mail1.someone.com. [207.106.200.39], dsn=2.0.0, stat=Sent
(Queued! 1360512372 qp 15149 <[email protected]>)
調査の結果、括弧内のメッセージ(Queued!1360512372 qp 15149 <[email protected]>)が受信サーバーからのメッセージであることがわかりました。
つまり:
これが私の答えを得る方法のいくつかの説明です: freebsd 8メールログステータス、これらはどういう意味ですか? 私にとって信頼できると思われる答えからのいくつかの引用:
「送信済みのステータスエントリは、リモートサーバーがメッセージを受け入れたことを意味します。」
「ステータスエントリの括弧内のコメントは、電子メールを送信するときにリモートサーバーから返される応答です。メッセージが拒否、延期、または保留された理由を確認するのに役立ちます。」
なぜこれを変更したいのですか?これはまさにsendmailが機能することになっている方法です。 Sendmailは、元の送信者にメールを受け入れたことを確認する前に、ハードドライブのキューに保存します。次に、それを受け取り、次の受信者が受信を確認するまで物理コピーを保持します。これは、ハードシステムがクラッシュした場合、またはsendmail自体がクラッシュした場合に、sendmailがメールが失われないようにする方法です。 Sendmailもさまざまな理由でメールを遅延させます。遅延メールを制御できない他のMTA(ネットワークの問題、システムの負荷、グレイリスト)。メールを安全にどこかに保存する必要があります。
電子メールは、IMのようなジャストインタイム配信メカニズムではありません。通常の状況では2秒待ちます。
Stat = Sent:relay = mail1.someone.comで他のメールサーバーを見ると、送信されていることがわかります。 [207.106.200.39]、dsn = 2.0.0、stat = Sent
SMTPは、電子メールが宛先に到達することを保証しません。これは、トラフィックの運命に関するエンドツーエンドの同期フィードバックがない、ベストエフォート型の配信メカニズムです。メールを配信するサーバーは、最終的な配信のためにメールを受け入れるかどうかを直接通知する必要がありますが、同期的に配信する必要はなく(後で保存して通知する必要はありません)、直接配信する必要もありません。 (パスには複数のホップがあります)。実際には、ほぼすべてのSMTPデーモンがメールをキューに入れます。
スパマーによる乱用のために広くサポートされていない配信および開封確認は、この制限を克服するように設計されました。さらに、後のサーバーは、オプションで、将来、メッセージを渡した最初のサーバーがメッセージを受け入れた後にメッセージを拒否した場合に通知を送信する場合がありますが、必須ではありません。
アプリケーションでは、ネクストホップの受け入れを成功事例として扱う必要があります。これは、SMTPが一貫して提供する最も信頼できるフィードバックです。