Я использую этот код для отправки электронной почты SMTP через SMTP-сервер Yahoo, я пишу для личного проекта.
using System.Net.Mail;
using System.Net;
SmtpClient theClient = new SmtpClient("smtp.mail.yahoo.com", 465);
theClient.UseDefaultCredentials = false;
theClient.Credentials = new NetworkCredential("username", "password");
theClient.EnableSsl = true;
MailMessage theMessage = new MailMessage("username@yahoo.com",
"to.someone@gmail.com");
theMessage.Subject = "Dave test from C# subject";
theMessage.Body = "Dave test from C# body";
theClient.Send(theMessage);
Это довольно стандартный код для отправки электронной почты SMTP, но ... сервер, похоже, выдает ошибку. Это принудительно разрывает соединение. Этого не происходит, если я использую другие SMTP-серверы, такие как Gmail, Windows Live или другие SMPp-серверы ISP.
Это исключение и трассировка стека:
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at ConsoleApplication1.Program.Main(String[] args) in E:\dev\ARCSoftware.FTPProcessor\ConsoleApplication1\Program.cs:line 28
Я знаю, что проблема не в окружающей среде, поскольку я могу отправить на тот же сервер с этими точными настройками, используя Outlook Express. Мне интересно, если мне нужно отправить сертификат или что-то?
Если вы или кто-либо из ваших знакомых имеет какие-либо идеи по этому поводу, я был бы очень признателен за помощь.