Была такая же проблема.Решил это в следующих шагах: 1) выяснить, что сервер предлагает для SMTP-аутентификации, подключившись к SMTP-серверу с помощью Telnet или замазки или любого другого терминала:
telnet xxx.yyy.zzz.aaa 587
(xxx.yyy.zzz.aaa = IP-адрес SMTP-сервера, 587 = номер порта)
<Сервер отвечает «220 протокол + версия + время» </p>
ehlo testing
<Сервер отображает список возможностей, например </p>
250-AUTH NTLM CRAM-MD5 LOGIN
SMTP-клиент сначала пытается выбрать наиболее безопасный протокол.В моем случае:
1. System.Net.Mail.SmtpNegotiateAuthenticationModule
2. System.Net.Mail.SmtpNtlmAuthenticationModule
3. System.Net.Mail.SmtpDigestAuthenticationModule
4. System.Net.Mail.SmtpLoginAuthenticationModule
Похоже, что SMTP-клиент пытается NTLM, а сервер пытается запустить LOGIN.
С взломом (см. https://blogs.msdn.microsoft.com/knom/2008/04/16/hacking-system-net-mail-smtpclient/), все протоколыможет быть отключен, за исключением того, который принимает сервер (в данном случае ВХОД):
FieldInfo transport = smtpClient.GetType().GetField("transport", BindingFlags.NonPublic | BindingFlags.Instance);
FieldInfo authModules = transport.GetValue(smtpClient).GetType().GetField("authenticationModules",BindingFlags.NonPublic | BindingFlags.Instance);
Array modulesArray = authModules.GetValue(transport.GetValue(smtpClient)) as Array;
foreach (var module in modulesArray)
{
Console.WriteLine(module.ToString());
}
// System.Net.Mail.SmtpNegotiateAuthenticationModule
// System.Net.Mail.SmtpNtlmAuthenticationModule
// System.Net.Mail.SmtpDigestAuthenticationModule
// System.Net.Mail.SmtpLoginAuthenticationModule
// overwrite the protocols that you don't want
modulesArray.SetValue(modulesArray.GetValue(3), 0);
modulesArray.SetValue(modulesArray.GetValue(3), 1);
modulesArray.SetValue(modulesArray.GetValue(3), 2);