2016-06-24 9 views
5

Asp.net web uygulamasından posta göndermeye çalıştım.SMTP postası nasıl oluşturulur?

getdetailss işlevini kullanarak veritabanındaki parolayı aldığım için, uygulama parolamı kullanıcı posta kimliğine göndermek istiyorum.
btn4getPwd, posta işlevini çağıran düğmedir.
txtusername.Text, posta adresi gönderen metin kutusudur. Tüm değerler doğru şekilde alıyor, hata oluşmuyor ama çalışmıyor ..!

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

Farklı bir bağlantı noktası denediniz mi? 587 gibi ..? –

+0

Gmail SSL bağlantı noktası 587'dir. Ayrıca, Gmail'de özel yapım e-posta istemcilerini engelleyen güvenlik önlemi vardır; Güvenlik önlemini kapatmalısın. – Tommy

+0

Şimdiye kadarki en kötü "hata işleme". –

cevap

1

smtp.Port = 25; varsayılan bağlantı noktası ama SSL kullanım noktası üzerinden gönderiyor olduğunca 587 veya 465 (standart olmayan, ama bazen eski nedenlerle kullanılır). NetworkCredential'un doğru olduğunu varsayın.

+0

Size yardımcı olduğuna sevindim! – Sami