2016-06-24 7 views
5

Próbowałem wysłać pocztę z mojej aplikacji internetowej asp.net.Jak utworzyć pocztę SMTP?

Chcę wysłać moje hasło aplikacji do identyfikatora użytkownika poczty, dla którego wziąłem hasło z bazy danych przy użyciu funkcji getdetailss.
btn4getPwd to przycisk wywoływania funkcji wysyłania wiadomości.
txtusername.Text to pole tekstowe zawierające adres wysłania. Wszystkie wartości są poprawnie odbierane, błąd nie występuje, ale nie działa ...!

protected void btn4getPwd_Click(object sender, EventArgs e) 
{ 
    if (txtusername.Text.Trim() != "") 
    { 
     em.username = txtusername.Text.Trim(); 
     DataTable forget = em.getdetailss(10); 
     string passwd = (forget.Rows[0]["PassCode"].ToString()); 


     try 
     { 
      string Subject = "Your NLS Password"; 
      string Body = passwd; 
      string ToEmail = txtusername.Text.Trim(); 
      string SMTPUser = "[email protected]", SMTPPassword = "pswd"; 

      MailMessage mail = new MailMessage(); 
      mail.From = new MailAddress(SMTPUser, "AspnetO"); 
      mail.To.Add(ToEmail); 
      mail.Body = Body; 
      mail.IsBodyHtml = true; 
      mail.Priority = MailPriority.Normal; 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 25; 
      smtp.Credentials = new System.Net.NetworkCredential(SMTPUser, SMTPPassword); 
      smtp.EnableSsl = true; 
      smtp.Send(mail); 
      Response.Write("<script language=javascript>alert('Mail send...!! ')</script>"); 
     } 

     catch (SmtpException ex) 
     { 
      lbl4get.Text = "SmtpException "; 
     } 
     catch (Exception ex) 
     { 
      lbl4get.Text = "Exception"; 
     } 
    } 
    else { Response.Write("<script language=javascript>alert('Invalid USERNAME...!! ')</script>"); } 

} 
+0

Czy próbowałeś innego portu? lubisz 587 ..? –

+0

Port SSL Gmaila to 587. Ponadto Gmail ma mechanizm bezpieczeństwa blokujący niestandardowe klienty poczty e-mail; musisz wyłączyć zabezpieczenie. – Tommy

+0

Najgorsza "obsługa błędów" w historii. –

Odpowiedz

1

smtp.Port = 25; jest domyślny port ale jak wysyłasz ponad SSL użyć portu 587 lub 465 (nietypowa, ale czasami używane ze względów starszych). Załóżmy, że NetworkCredential są poprawne.

+0

Cieszę się, że ci pomogło! – Sami

Powiązane problemy