2016-09-13 17 views
0

我用下面的代码从我的Windows应用程序发送电子邮件:电子邮件不会发送到hotmail.com和live.com

public bool SendEmail(string to, string subject, string body, bool isHtml, List<string> bcc, List<string> cc, string fullname) 
    { 
     var from = "[email protected]"; 
     var name = "MyName"; 
     var toAddress = new MailAddress(to, fullname); 
     var fromAddress = new MailAddress(from, name); 

     var message = new MailMessage(fromAddress, toAddress) 
     { 
      Subject = subject, 
      Body = body, 
      IsBodyHtml = isHtml 
     }; 

     if (bcc != null && bcc.Any()) 
      foreach (var bccItem in bcc) 
       message.Bcc.Add(bccItem); 

     if (cc != null && cc.Any()) 
      foreach (var ccItem in cc) 
       message.CC.Add(ccItem); 

     var key = "password"; 
     var domain = "webmail.mydomain.com"; 

     var smtp = new SmtpClient 
     { 
      Host = domain, 
      Port = 587, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential(from, key) 
     }; 

     try 
     { 
      smtp.Send(message); 
      return true; 
     } 
     catch (Exception exception) 
     { 
      Console.Write(exception); 
      return false; 
     } 
    } 

它工作正常,但不能与hotmail.com现场。 comoutlook.com。当我尝试发送电子邮件给[email protected]时,该过程运行良好,但[email protected]未收到发送的电子邮件,即使在垃圾文件夹中也是如此。有什么问题?我的错误是什么?

+0

其他域名(Gmail,Yahoo等)的电子邮件收件人是否可以正确接收电子邮件? –

+0

是的,它适用于Gmail和yahoo –

+0

大致发送了多少封电子邮件?也许你的SMTP服务器暂时被列入黑名单。 – TyCobb

回答

0

你检查了你的hotmail.com吗?我有这个问题之前hotmail认为我是一个机器人(显然,因为你是从你自己的应用程序发送标记它)

所以我会做的是通过outlook.com登录到你的hotmail帐户。很可能它会告诉你“验证”它是你的。要摆脱这个问题,您只需通过手机激活该帐户,并且如果您从应用程序发送电子邮件,它不会要求您下次再验证一次。否则,每隔一段时间你必须登录到outlook.com并“验证”它是你的。这可能会令人讨厌的做一遍又一遍。

+0

我不会从我的hotmail帐户发送电子邮件。我从我的webmail发送到hotmail。 –

+0

啊对不起,我以为你通过hotmail/outlook发送邮件 – SunnlightBro

相关问题