2016-08-04 4 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 Sir, моя строка подключения и пароль имени пользователя верны, потому что я использую то же самое в своем другом приложении, он отлично работает, но в настоящее время он дает проблемы. – Abhishek

+0

Сэр, где я установил DeliveryMethod – Abhishek

+0

smtp.DeliveryMethod = SmtpDeliveryMethod.Network; добавить до smtp.Send (mail); – Nalaka

0

@Abhishek Да. Код, который вы написали, отправит сообщение на сервер, просто отметьте свой почтовый ящик (***@gmail.com), но клиент smtp google препятствует вам войти в его домен. Вы должны сделать свой gmail менее безопасным, что вам необходимо разрешить попытку входа в систему. enter image description here

Проверьте свой почтовый ящик, вы должны иметь такой ответ из домена gmail, и вам нужно сделать свою учетную запись менее безопасной. enter image description here

Я думаю, что его о проверочное слово и ботов, предотвращающие такую ​​регистрацию в люди, которые знают, могут пролить свет на эти things.Make ваш счет менее suspicious.Hope это помогает

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