2013-09-18 3 views
4

Я пытаюсь отправить автоматическое письмо с помощью поддержки Outlook.com smtp. Однако я получаю следующее исключение:Отправить письмо с помощью Outlook.com SMTP

System.Net.Mail.SmtpException: Failure sending mail. 
---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. 
---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host" Exception while sending email. 

Мой код:

public bool SendEmail(MailMessage msg) 
    { 
     try 
     { 
      SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com") 
      { 
       UseDefaultCredentials = false, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       Credentials = new NetworkCredential("userAddress", "userPassword"), 
       Port = 587, 
       EnableSsl = true, 
      }; 
      smtpClient.Send(msg); 
      msg.Dispose(); 
      smtpClient.Dispose(); 
      return true; 
     } 
     catch (Exception exp) 
     { 
      Console.WriteLine(exp.ToString()); 
      return false; 
     } 
    } 
+2

Вы пытались использовать: 'smtp.live.com'? – HK1

+1

Сервер входящей почты: pop3.live.com Сервер исходящей почты (SMTP): smtp.live.com – HiperiX

+0

Да, я также пробовал с smtp.live.com. Но исключение все еще бросает – Andy

ответ

0

Я знаю, что это очень старый вопрос, и я не мог бы даже быть в состоянии помочь, но у меня была аналогичная проблема когда я пытался отправить электронное письмо с помощью C#.

В результате я использовал это, что позволило мне отправить электронную почту:

string _sender = ""; 
     string _password = ""; 

     SmtpClient client = new SmtpClient("smtp-mail.outlook.com"); 

     client.Port = 587; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.UseDefaultCredentials = false; 
     System.Net.NetworkCredential credentials = 
      new System.Net.NetworkCredential(_sender, _password); 
     client.EnableSsl = true; 
     client.Credentials = credentials; 

     MailMessage message = new MailMessage(_sender, "recipient of email"); 
     message.Subject = ""; 
     message.Body = ""; 
     client.Send(message); 

Это, вероятно, будет бесполезен для вас больше, но в случае, если кто натыкается на этот вопрос, по крайней мере есть ответ который имеет действующий код, действующий как исправление!

Смежные вопросы