Different SMTP servers may occur different errors even with 587 port if testing with ./discourse-doctor
TLS and STARTTLS are mutually exclusive
This error has never mentioned in meta so far, you should set explicitly DISCOURSE_SMTP_FORCE_TLS: false otherwise it contradicts DISCOURSE_SMTP_ENABLE_START_TLS, as it is true by default. This may not always the case, but it’s worth a try.
SSL_connect returned=1 errno=0 peeraddr=xxx.xxx.xxx.xxx:587 state=error: wrong version number
Again, set DISCOURSE_SMTP_FORCE_TLS: false resolves the issue
Net::SMTPAuthenticationError this can be caused by wrong username password of your credentials you set or can be resolved by setting DISCOURSE_SMTP_AUTHENTICATION: login