451 4.3.111 Temporary server error.

Echemi-admin 20 信誉分
2026-01-05T07:11:49.8133333+00:00

我们的服务器发送邮件失败,报错显示 org.eclipse.angus.mail.smtp.SMTPSendFailedException: 451 4.3.111 Temporary server error. Please try again later MRH1 [Hostname=KL1PR03MB8009.apcprd03.prod.outlook.com]

 这个怎么处理

Outlook | Web | Outlook.com | Email
0 个注释 无注释
{count} 票

问题作者接受的答案
  1. Francisco Montilla 27,110 信誉分 独立顾问
    2026-01-05T08:00:16.77+00:00

    Hello,

    That error is a transient response from Exchange Online. The 451 4.3.111 Temporary server error means the Microsoft server could not accept the message right now and is asking the client to try again later.

    The correct way to handle it in your app is to treat any SMTP 4xx status as retryable and implement an automatic retry with exponential backoff instead of failing the send.

    In Angus Mail you can catch SMTPSendFailedException and check the return code or the text. If the first digit of the status is 4, or the message contains 451 4.3.111, put the message back into your queue and resubmit after a delay that grows each time.

    For example back off roughly like 1 minute, 2 minutes, 4 minutes, 8 minutes, 16 minutes, then 30 minutes, and stop after a reasonable window such as 2 hours.

    Make sure you do not hammer the server with rapid retries because that can trigger more throttling. Pseudocode would look like this. Try to send. If SMTPSendFailedException and status starts with 4 then sleep for backoffDelay and retry. Increase backoffDelay each time until max window reached, then surface a final error.

    If it keeps happening for more than a couple of hours, reply here with a snippet of your exception including the full status line and I will help you check the next step.

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。