I have continued investigating this issue and now believe it's a bug in Windows Server 2019. I have in fact found a work-around and also how to reproduce this issue with 100% certainty.
Mail will not be sent correctly if the SMTP service start-up type is set to "Automatic" (i.e. start immediately on boot). However, if the SMTP service is set to manual start and then started manually from either services.msc or from IIS6 manager, e-mail will leave the queue and get delivered to the recipients.
If "Automatic" start-up is used for the service, any attempts to send e-mail will always result in the e-mail getting stuck in the queue and the event 4006 (see initial post for details) getting written to the event log.This is 100% reproducible in my testing.
A work-around is to set the start-up type to "Automatic (Delayed Start)". This will, if I am correctly informed, result in the SMTP service getting started 2 minutes after the last "Automatic" service has been started. This is not an optimal solution, but it'll do for the time being.
For completeness, here's a step-by-step to reproduce the issue:
- Install SMTP server feature
- Go to IIS6 manager, right-click SMTP virtual server and click "Properties"
- Go to the "Access" tab
- Click "Connection...", select "Only the list below" and add 127.0.0.1. Click "OK".
- Click "Relay...", select "Only the list below" and add 127.0.0.1. Uncheck the checkbox at the bottom of the window. Click "OK".
- Click "OK" again to exit the SMTP virtual server properties.
- Open services.msc and set the "Simple Mail Transfer Protocol (SMTP)" service startup type to "Automatic"
- Reboot the computer and attempt to send e-mail
Note: Steps 2 to 6 are probably not needed to reproduce the issue, but it's the basic setup I've been using.