2016-08-04 62 views
2

我收到了错误“服务器不支持安全连接”与我的代码如下。服务器不支持在C#中的安全连接

  SmtpClient smtp = new SmtpClient(); 
      MailMessage mail = new MailMessage(); 
      mail.From = new MailAddress("*****@gmail.com"); 
      mail.To.Add(recieverId); 
      mail.Subject = "Invoice Copy and Delivery Confirmation for booksap.com Order " + orderno + ". Please Share Feedback."; 
      System.Net.Mail.Attachment attachment; 
      attachment = new System.Net.Mail.Attachment(Server.MapPath("OrderMail\\Invoice.pdf")); 
      mail.Attachments.Add(attachment); 
      MailBody = "We are pleased to inform that the following items in your order " + orderno + " have been placed. This completes your order. Thank you for shopping! "; 
      StreamReader reader = new StreamReader(Server.MapPath("~/MailHTMLPage.htm")); 
      string readFile = reader.ReadToEnd(); 
      string myString = ""; 
      myString = readFile; 
      myString = myString.Replace("$$Name$$", ContactPersonName); 
      myString = myString.Replace("$$MailBody$$", MailBody); 
      mail.Body = myString.ToString(); 
      mail.IsBodyHtml = true; 
      mail.Priority = MailPriority.High; 
      smtp.Host = "smtp.gmail.com"; 
      smtp.EnableSsl = true; 
      smtp.UseDefaultCredentials = true; 
      smtp.Port = 587; 
      smtp.Credentials = new System.Net.NetworkCredential("*******@gmail.com", "*******"); 
      smtp.Send(mail); 
      mail.Dispose(); 
      mail = null; 

我该如何解决这个问题? 如果我设置

EnabledSsl = false 

它会返回错误:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应是:5.7.1客户端未通过身份验证。

+0

我认为Gmail的SMTP是不工作的少安全连接。刚刚尝试过sendgrid或搜索其他电子邮件服务 –

+0

好吧,先生,我会尽力回复给你。 – Abhishek

回答

0

该错误消息通常引起以下操作之一:

  • 不正确的连接设置,诸如用于 的固定或非固定连接

  • 不正确的凭证指定了错误的端口。我会验证用户名和密码
    组合,以确保凭据是正确的。

,如果它是确定的,我认为你必须设置DeliveryMethod = SmtpDeliveryMethod.Network

只是试试这个..

using System.Net; 
using System.Net.Mail; 

var fromAddress = new MailAddress("[email protected]", "From Name"); 
var toAddress = new MailAddress("[email protected]", "To Name"); 
const string fromPassword = "fromPassword"; 
const string subject = "Subject"; 
const string body = "Body"; 

var smtp = new SmtpClient 
      { 
       Host = "smtp.gmail.com", 
       Port = 587, 
       EnableSsl = true, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       UseDefaultCredentials = false, 
       Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
      }; 
using (var message = new MailMessage(fromAddress, toAddress) 
        { 
         Subject = subject, 
         Body = body 
        }) 
{ 
    smtp.Send(message); 
} 

也不够安全的应用 Go to the "Less secure apps" section in My Account.

更改帐户访问试用选项2:

+0

感谢您的回复@Nalaka先生,我的连接字符串和用户名密码是正确的,因为我在我的另一个应用程序中使用相同的东西,它工作正常,但目前它给出了问题。 – Abhishek

+0

先生,我在哪里设置DeliveryMethod – Abhishek

+0

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;添加之前smtp.Send(邮件); – Nalaka

0

@Abhishek是的。你写的代码会将消息发送到服务器,只是检查你的邮箱(***@gmail.com),但谷歌的SMTP客户端阻止你进入他们的域名。 你必须让你的Gmail不那么安全,你需要允许登录尝试。 enter image description here

检查您的邮箱,您应该从Gmail域获得此类回复,并且您需要使您的帐户安全性降低。 enter image description here

我认为它有关的验证码和漫游防止这种记录,谁知道人可以扔在这一些轻things.Make帐户少suspicious.Hope这有助于

相关问题