2017-05-26 100 views
1

我设置邮件在我的代码发送如下邮件发送到C#失败时加密连接TLS

NetworkCredential nc = new NetworkCredential(ConfigurationManager.AppSettings["EmailId"].ToString(), ConfigurationManager.AppSettings["Password"].ToString()); 
    MailMessage mm = new MailMessage(); 
    mm.From = new MailAddress(SendEmailaddress); 
    mm.Body = "Test Mail"; 
    mm.IsBodyHtml = true; 
    mm.BodyEncoding = System.Text.Encoding.UTF8; 
    mm.To.Add(ToEmailAddress); 
    mm.Subject = "Test"; 
    SmtpClient sp = new SmtpClient(); 
    sp.UseDefaultCredentials = false; 
    sp.Credentials = nc; 
    sp.EnableSsl = true; 
    sp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    sp.Port = 587 
    sp.Host = ConfigurationManager.AppSettings["SMTP"].ToString(); 
    sp.Send(mm); 

一个错误是在邮件发送时抛出。如果我使用TLS将这些设置配置为加密连接,在同一台PC上配置outlook,邮件发送将起作用。 我检查了很多帖子,建议将EnableSsl = true设置为TLS工作,但它对我无效。它抛出错误

交易失败。服务器响应是:5.7.1 :收件人地址被拒绝:访问被拒绝 在System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode,字符串响应)在 System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection收件人,字符串deliveryNotify,在 System.Net.Mail.SmtpClient.Send(消息MAILMESSAGE SmtpFailedRecipientException &除外))

如找不到解决我已击中路障。有没有需要在服务器上完成的设置?

+0

正在使用的端口是587. – user976508

回答

1
protected void SendAlertEmail(string smtpserver, string smtpport, string smtpuser, string smtppass, int ssl, int auth, string subject, string from, string to, string body) 
     { 
      try 
      { 
       MailMessage mail = new MailMessage(); 
       mail.From = new MailAddress(SplitEmailStrging(from), HttpUtility.HtmlDecode(Request.Form["senderName"])); 
       string emails = to; 

       if (emails.Contains(",")) 
       { 
        string[] emailslist = Regex.Split(emails, @","); 
        foreach (string email in emailslist) 
        { 
         mail.To.Add(SplitEmailStrging(email)); 
        } 

       } 
       else 
       { 
        if (emails.Contains("<")) 
        { 

         mail.To.Add(SplitEmailStrging(emails)); 
         // Response.Write(SplitEmailStrging(emails)); 
        } 
        else 
        { 

         mail.To.Add(emails); 
         // Response.Write(emails); 
        } 

       } 

       mail.Subject = subject; 
       mail.IsBodyHtml = true; 
       mail.Body = HttpUtility.HtmlDecode(body); 
       SmtpClient client = new SmtpClient(smtpserver); 

       if (int.Parse(smtpport) == 465) 
       { 
        client.Port = 25; 
       } 
       else 
       { 
        client.Port = int.Parse(smtpport); 
       } 

       if (ssl == 1) 
       { 
        client.EnableSsl = true; 
       } 
       else 
       { 
        client.EnableSsl = false; 
       } 

       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(smtpuser, smtppass); 
       client.UseDefaultCredentials = false; 
       client.Credentials = credentials; 
       client.Send(mail); 
      } 
      catch (Exception ex) 
      { 
       Response.Write("Error: " + ex.InnerException.Message); 
       Response.End(); 
      } 


     } 
+0

我没有看到任何你在做什么不同..邮件发送代码是相同的,我正在使用.. – user976508