2010-12-30 9 views
6

Я пытаюсь отправить электронное письмо через GMail из ASP.Net, используя приведенный ниже код и конфигурацию. К сожалению, он, похоже, не работает, и он также не выдает сообщение об ошибке. В журналах сервера или почтовых папках почтовых сообщений IIS ничего нет, я даже проверил мусор из адреса, чтобы узнать, попало ли там письмо. Любая помощь могла бы быть полезна.Отправка электронной почты Asp.Net через gmail

C# Раздел

public void SendFeedback() 
    { 
     string emailFrom = this.Email.Text; 

     MailMessage message = new MailMessage(); 
     // here is an important part: 
     message.From = new MailAddress(emailFrom, "Mailer"); 
     // it's superfluous part here since from address is defined in .config file 
     // in my example. But since you don't use .config file, you will need it. 
     message.Subject = "www.gumpshen.com - Website Query"; 
     message.IsBodyHtml = true; 
     message.Body = string.Format(" Name = {0}, Phone = {1}", Name.Text, Phone.Text); 
     message.Body += Environment.NewLine; 
     message.Body += Environment.NewLine; 
     message.Body += ProjectDetails.Text; ; 

     var client = new SmtpClient(); 

     try 
     { 
      client.Send(message); 

Это раздел Config:

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]" deliveryMethod="Network" > 
     <network host="smtp.gmail.com" port="587" 
     userName="[email protected]" password="myPassword"/> 
    </smtp> 
    </mailSettings> 
</system.net> 
+0

Я его принимал на виртуальных частных серверов, это может быть что-то делать с тем, как я настроен SMTP почты в IIS7, но я просто запускали мастер. – Burt

ответ

9

Вам нужно client.EnableSsl=true;

Проверьте код с этого сайта: Email via Gmail

Вот пример того, как отправлять HTML-адрес электронной почты со страницы ASP.NET с помощью вашей учетной записи Google. (Эта настройка может быть легко использована для отправки сообщений через любой другой SMTP-сервер, требующий аутентификации). Примечание: фрагмент кода предполагает, что на странице с указанным lblMsg есть компонент Label, который будет показывать сообщение об успешности/сбое пользователю, отправляющему электронную почту. (Но это можно легко изменить).

SmtpClient client = new SmtpClient(); 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.EnableSsl = true; 
    client.Host = "smtp.gmail.com"; 
    client.Port = 587; 

    // setup Smtp authentication 
    System.Net.NetworkCredential credentials = 
     new System.Net.NetworkCredential("[email protected]", "yourpassword"); 
    client.UseDefaultCredentials = false; 
    client.Credentials = credentials;     

    MailMessage msg = new MailMessage(); 
    msg.From = new MailAddress("[email protected]"); 
    msg.To.Add(new MailAddress("[email protected]")); 

    msg.Subject = "This is a test Email subject"; 
    msg.IsBodyHtml = true; 
    msg.Body = string.Format("<html><head></head><body><b>Test HTML Email</b></body>"); 

    try 
    { 
     client.Send(msg); 
     lblMsg.Text = "Your message has been successfully sent."; 
    } 
    catch (Exception ex) 
    { 
     lblMsg.ForeColor = Color.Red; 
     lblMsg.Text = "Error occured while sending your message." + ex.Message; 
    } 
+0

https://web.archive.org/web/20130531014149/http://www.aspdotnetfaq.com/Faq/How-to-send-HTML-Email-from-ASP-NET-using-your-Gmail-account .aspx не найден – Kiquenet

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