2010-12-30 21 views
6

Próbuję wysłać wiadomość e-mail przez GMail z ASP.Net, korzystając z poniższego kodu i konfiguracji. Niestety wygląda na to, że nie działa i nie wyświetla komunikatu o błędzie. Nie ma nic w dziennikach serwera ani w folderach pocztowych IIS, nawet sprawdziłem kosz adresu, aby sprawdzić, czy poczta tam się kończy. Każda pomoc będzie naprawdę doceniona.Wysyłanie wiadomości e-mail z witryny Asp.Net za pośrednictwem gmaila

C# Sekcja

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); 

To jest sekcja 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

mam to umieszczona na Virtual Private Server, może to mieć coś wspólnego ze sposobem, mam skonfigurowanej poczty SMTP w IIS7, ale po prostu zabrakło kreatora. – Burt

Odpowiedz

9

Trzeba client.EnableSsl=true;

Sprawdź kod z tej strony: Email via Gmail

Oto przykładowy sposób wysyłania wiadomości e-mail w formacie HTML ze strony ASP.NET przy użyciu konta Google. (Ta konfiguracja może być łatwo wykorzystana do wysyłania wiadomości za pośrednictwem dowolnego serwera SMTP wymagającego uwierzytelniania). Uwaga: w fragmencie kodu założono, że masz element etykiety na stronie o nazwie lblMsg, który pokaże komunikat o powodzeniu/niepowodzeniu użytkownikowi, który wysyła wiadomość e-mail. (Ale można to łatwo zmienić).

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 Nie można znaleźć pliku .aspx – Kiquenet

Powiązane problemy