2017-03-09 65 views
0

發送電子郵件當我運行這段代碼,我得到一個錯誤:無法獲得C#來從Hotmail

System.Net.Mail.SmtpException:發送郵件失敗。 ---> System.Net.WebException:無法連接到遠程服務器 ---> System.Net.Sockets.SocketException:連接嘗試失敗,因爲連接方在 時間段後沒有正確響應,或建立的連接失敗,因爲連接主機 未能響應65.55.163.152:587

代碼:

static void Main(string[] args) 
{ 
    string smtpAddress = "smtp.live.com"; 
    int portNumber = 587; 
    bool enableSSL = true; 
    string emailFrom = "[email protected]"; 
    string password = "xxxxxxxxxxx"; 
    string emailTo = "[email protected]"; 
    string subject = "Daily Email Check"; 
    string body = "Email reached business exchange server from an external hotmail email account"; 

    using (MailMessage mail = new MailMessage()) 
    { 
     mail.From = new MailAddress(emailFrom); 
     mail.To.Add(emailTo); 
     mail.Subject = subject; 
     mail.Body = body; 
     mail.IsBodyHtml = false; 

     try 
     { 
      using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber)) 
      { 
       smtp.Credentials = new NetworkCredential(emailFrom, password); 
       smtp.EnableSsl = enableSSL; 
       smtp.Send(mail); 
      } 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("Error\n\n {0}", e); 
      Console.ReadKey(); 
     } 
    } 
} 
+0

你確定你和smtp.live.com之間沒有防火牆嗎? – BugFinder

回答

0

試試這個;

using System.Net.Mail; 

... 

MailMessage mail = new MailMessage("[email protected]", "[email protected]"); 
SmtpClient client = new SmtpClient(); 
client.Port = 25; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = false; 
client.Host = "smtp.live.com"; 
mail.Subject = "Daily Email Check"; 
mail.Body = "Email reached business exchange server from an external hotmail email account"; 
client.Send(mail); 
+0

我找到了解決方案。看來Hotmail不支持STMP。 MailAddress to = new MailAddress(emailaddressReceptor); MailAddress from = new MailAddress(emailaddress); MailMessage message = new MailMessage(from,to); message.Subject = messageSubjectTxt; message.Body =「讓我看看電子郵件」; SmtpClient client = new SmtpClient(emailserver); client.Credentials = new System.Net.NetworkCredential(「[email protected]」,「xxxxxxx」); client.Send(message); –