2015-12-31 5 views
0

Я использую tran, чтобы сделать использование веб-страницы Gmail как smtp-сервер для отправки писем с помощью Asp.net. Вот ссылка на настройки, которые Google установил для такого случая. https://support.google.com/a/answer/176600?hl=enИсключение отправки по электронной почте с использованием Asp.net

Каждый раз, когда я пытаюсь отправить по электронной почте я получаю "Exception попавшего в RetryIfBusy()" сообщение ..

Любые идеи ... Вот мой код ниже:

[System.Web.Services.WebMethod] 
    public static void SendMessage(string toEmail) 
    { 
     MailMessage msg = new MailMessage("[email protected]", toEmail); 
     msg.Subject = "Email Subject"; 
     msg.Body = "Here goes email body"; 
     msg.IsBodyHtml = false; 

     SmtpClient smtp = new SmtpClient("smtp.gmail.com"); 
     System.Net.NetworkCredential netCred = new System.Net.NetworkCredential(); 
     netCred.UserName = "[email protected]"; 
     netCred.Password = "myPassword"; 
     smtp.Credentials = netCred; 
     smtp.Port = 465; 
     smtp.EnableSsl = true; 
     try 
     { 
      smtp.Send(msg); 
      Console.WriteLine("Email Successfully sent!!"); 
     } 
     catch (SmtpFailedRecipientsException ex) 
     { 
      for (int i = 0; i < ex.InnerExceptions.Length; i++) 
      { 
       SmtpStatusCode status = ex.InnerExceptions[i].StatusCode; 
       if (status == SmtpStatusCode.MailboxBusy || 
        status == SmtpStatusCode.MailboxUnavailable) 
       { 
        Console.WriteLine("Delivery failed - retrying in 5 seconds."); 
        System.Threading.Thread.Sleep(5000); 
        smtp.Send(msg); 
       } 
       else 
       { 
        Console.WriteLine("Failed to deliver message to " + 
         ex.InnerExceptions[i].FailedRecipient); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Exception caught in RetryIfBusy(): " + 
        ex.ToString()); 
     } 
    } 
+0

Какое исключение вы получаете? –

+0

последний ... –

+0

Что значит последний? Что такое 'ex'? Нам не нужен текст, который вы там разместили: «Исключено в RetryIfBusy():'. Какое фактическое исключение? Что такое сообщение и стек? –

ответ

0

Вы используете неправильный порт на SMTP-сервере Google. Должно быть:

smtp.Port = 587; 
+0

Это помогло ... Теперь я получаю исключение безопасности .. –

+0

'code'System.Net.Mail.SmtpException: для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. –

+0

У вас включена двухфакторная аутентификация в учетной записи gmail, которую вы используете? Если вы это сделаете, вам придется отключить его, прежде чем вы сможете использовать адрес электронной почты. – Yass