2016-05-12 9 views
0

Я давно пытаюсь отправить почту из учетной записи Gmail в учетную запись gmail, используя приведенный ниже код.Отправка электронной почты с использованием gmail smtp-сервера

using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text)) 
{ 
    mm.Subject = txtSubject.Text; 
    mm.Body = txtBody.Text; 
    if (fuAttachment.HasFile) 
    { 
     string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName); 
     mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName)); 
    } 
    mm.IsBodyHtml = false; 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.EnableSsl = true; 
    NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text); 
    smtp.UseDefaultCredentials = true; 
    smtp.Credentials = NetworkCred; 
    smtp.Port = 587; 
    smtp.Send(mm); 
    ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true); 
} 

После выполнения достигает «smtp.Send (мм)» браузер говорит ожидания и через 2 минуты я получаю исключение, говоря «Сбой отправки электронной почты»

следующее сообщение об ошибке

Не удалось выполнить попытку подключения, так как подключенная сторона не ответила должным образом через некоторое время или не удалось установить соединение, потому что подключенный хост не смог ответить . . .: 587" (некоторые IP)

Я искал много для этого, но не нашли решение Пожалуйста, помогите мне решить эту проблему

Спасибо

ответ

0

Прежде... все, я думаю, вы должны использовать

UseDefaultCredentials = false;

И

smtp.DeliveryMethod = SmtpDeliveryMethod.Network

Вы также должны allow less secure apps to access your account

+0

Я разрешил менее безопасным приложениям доступ к учетной записи. когда я добавляю «DeliverMethod = SmtpDeliveryMethod.Network», он дает мне сообщение о том, что DeliverMethod не был объявлен. – user2211486

+0

Я отредактировал свой ответ - DeliveryMethod - это свойство SmtpClient. – Vegz

+0

Я добавил smtp.DeliveryMethod = SmtpDeliveryMethod.Network, но по-прежнему та же ошибка. – user2211486

0

Try This One.

public static string SendMail(string stHtmlBody, string stSubject, string stToEmailAddresses) 
{ 
    string stReturnText = string.Empty; 
    try 
    { 
     if (!string.IsNullOrEmpty(stToEmailAddresses)) 
     { 
      //Set SmtpClient to send Email 
      string stFromUserName = "fromusername"; 
      string stFromPassword ="frompassword"; 
      int inPort = Convert.ToInt32(587); 
      string stHost = "smtp.gmail.com"; 
      bool btIsSSL =true; 



      MailAddress to = new MailAddress(stToEmailAddresses); 
      MailAddress from = new MailAddress("\"" + "Title" + "\" " + stFromUserName); 

      MailMessage objEmail = new MailMessage(from, to); 
      objEmail.Subject = stSubject; 
      objEmail.Body = stHtmlBody.ToString(); 
      objEmail.IsBodyHtml = true; 
      objEmail.Priority = MailPriority.High; 


      SmtpClient client = new SmtpClient(); 
      System.Net.NetworkCredential auth = new System.Net.NetworkCredential(stFromUserName, stFromPassword); 
      client.Host = stHost; 
      client.Port = inPort; 
      client.UseDefaultCredentials = false; 
      client.Credentials = auth; 
      client.EnableSsl = btIsSSL; 
      client.Send(objEmail); 

      return stReturnText; 
     } 
    } 
    catch (Exception ex) 
    { 

    } 

    return stReturnText; 
} 
+0

Я пробовал приведенный выше код Маниша Вадера, но он дает ту же ошибку и исключение. – user2211486

+0

ok дайте мне знать, вы настраиваете настройку google. Разрешить менее безопасные приложения: ВКЛ к настройкам gmail в Google. –

+0

Да. Я включил «Разрешить менее безопасные приложения». Также я попытался использовать yahoo и yahoo SMTP, но такую ​​же ошибку. – user2211486

0

У меня была аналогичная попытка, но с использованием Java. Мне не удалось это сделать после большого поиска. Затем я использовал Yahoo! SMTP, который работал очень легко. Может быть, вы можете попробовать это.

+0

Я тоже пробовал с SMTP Yahoo. Но та же ошибка и исключение. – user2211486

+0

Ну, код [по этой ссылке] (http://www.codeproject.com/Tips/520998/Send-Email-from-Yahoo-GMail-Hotmail-Csharp) работал для меня с помощью Yahoo! SMTP. Потребовалась почта через несколько минут. Я думаю, это будет работать и для GMail. –

+0

Я использовал тот же самый код для использования Yahoo smtp, но с той же ошибкой и исключением :( – user2211486

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