SmtpClient не работает со значениями, указанными в конструкторе - PullRequest
0 голосов
/ 01 апреля 2020

Я обнаружил эту странную проблему с классом SmtpClient. Я не уверен, это правильное поведение или нет. Поэтому проблема заключается в том, что я передаю имя своего хоста и порт в конструктор класса «SmtpClient». это не работает. это дает мне эту ошибку. «Сервер совершил нарушение протокола. Ответ сервера: UGFzc3dvcmQ6».

Я также пытался найти эту ошибку в Google, но у меня ничего не получалось. код для этого приведен ниже:

SmtpClient client = new SmtpClient("<Host name>","port number");
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential("<User name>", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("<From Email>");
mailMessage.To.Add("<To Email");
mailMessage.Body = "test";
mailMessage.Subject = "test";
client.Send(mailMessage);

Но если я укажу "host" и "port" в свойстве, тогда он будет работать нормально. код для этого здесь

>

SmtpClient client = new SmtpClient();//_settings.EmailSetting.Host);
 client.Host = "<hostName>";
 client.Port=<Port Number>;
 client.EnableSsl = true;
 client.DeliveryMethod = SmtpDeliveryMethod.Network;
 client.Credentials = new NetworkCredential("<User name>", "password");
 MailMessage mailMessage = new MailMessage();
 mailMessage.From = new MailAddress("<From Email>");
 mailMessage.To.Add("<To Email");
 mailMessage.Body = "test";
 mailMessage.Subject = "test";
 client.Send(mailMessage);

есть еще кто-нибудь, кто сталкивался с такой же проблемой. :)

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

В сетевых учетных данных укажите только «имя пользователя» без домена. например: вместо «ДОМЕН \ имя пользователя» укажите только «имя пользователя».

0 голосов
/ 01 апреля 2020

Включите регистрацию для System.Net.Mail и проверьте, что произошло:

https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing#configure -tracing-network

Также UGFzc3dvcmQ6 кодируется Base64 "Пароль: ", что означает, что сервер запрашивал пароль.

...