Итак, проблема в том, что это значение по умолчанию. NET Core SmtpClient не поддерживает StartSSL (неявный SSL), который является единственным вариантом, принятым WorkMail. Видите ли, WorkMail разрешает только соединения, которые начинаются с SSL, а SmtpClient сначала запускается с незашифрованного, а затем переключается на зашифрованный, если не может подключиться. SmtpClient и, как обычно бывает с Microsoft, они не признают это проблемой. Вы можете попробовать туннелирование, а лучше просто использовать одну из доступных библиотек. К сожалению, большинство из них платные, есть AIM, но он не работает с. NET Core, и я не хотел тратить время на перенос не моей собственной библиотеки на. NET Standard, поэтому в итоге я использовал Mailkit.
Есть некоторые проблемы с библиотекой, хотя, во-первых, перед отправкой вам нужно вызвать Connect, который принимает хост и порт в качестве параметра, это означает, что вы не можете просто ввести предварительно созданный smtpclient как singleton и создать его экземпляр в месте использования. Это круто, и отсутствие интерфейса также делает его незаменимым, что может испортить ваши интеграционные тесты. Более того, вы должны сделать некрасивую строку перед вызовом send вот так:
emailClient.AuthenticationMechanisms.Remove("XOAUTH2");
Но, по крайней мере, это работает.