Exchange Online では、配信先のサーバーが停止するなど 400 番台から始まる一時的なエラーが発生した場合は、遅延キューに 24 時間保持される動作があります。
なお、遅延キューに保持され、最初は 15 分間隔で再送されますが、その後は動的に最大で 60 分間間隔で再送が繰り返されます。
再配送は 24 時間に渡り繰り返されますが、24 時間エラーが解消せず、メッセージが配送出来ない場合は、送信者へ 500 番台から始まる恒久的なエラーの配信不能通知 (NDR) を返します。
受信側サーバーの電源が落ちている状態で何も応答が返すことができない場合は、レスポンスが返らない状況に対して送信側サーバーにて400番台のエラーを送信者に返しています。
その際のエラー内容として以下の500番台と400番台のエラーが記載されたNDRが返されることを確認しています。
エラー内容
'550 5.4.316 Message expired, connection refused(Socket error code 10061)'
'450 4.4.316 Connection refused [Message=Socket error code 10061]
メールの配信に失敗した場合、通常、一時的なエラー (接続先サーバーの応答がないなど) の場合は 400 番台のエラーが返され、恒久的なエラー (接続先サーバーからの拒否やアドレスが存在しないなど) の場合は 500 番台のエラーが返される動作です。
遅延メッセージはキューに 1 日残ります。 再試行は、宛先の電子メール サーバーから受信したエラーに基づいています。最初のいくつかの遅延は 15 分以下です。以降の再試行の間隔は、最大 60 分に増加します。間隔期間の拡張は動的であり、複数の変数 (キューサイズ、内部メッセージの優先順位など) を考慮します。
なお、今までは遅延キューの保持期間を変更することができませんでしたが、PowerShellのコマンドレットにて、12 ~ 24 時間で任意の時間に変更できるようになりました。
以下のサイトをもとにExchangeOnlineに接続してから実行してください。
<構文>
Set-TransportConfig -MessageExpiration "dd.hh:mm:ss"
<実行例>
Set-TransportConfig -MessageExpiration "0.12:00:00"
値を指定するには、dd.hh:mm:ss の形式で期間として入力します。ここで、dd = 日、hh = 時間、mm = 分、ss = 秒です。
既定値は 1.00:00:00 (24 時間) です。
有効な値は、12 時間 (0.12:00:00) から 24 時間 (1.00:00:00) までです。
NDRについては以下の記事でご紹介しておりますので参考としてくださいね。