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, then30 minutes, and stop after a reasonable window such as2 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.