2016-06-24 26 views
5

我试图从我的asp.net web应用程序发送邮件。如何创建SMTP邮件?

我想将我的应用程序密码发送到用户邮件ID,为此我使用getdetailss函数从数据库中获取密码。
btn4getPwd是调用邮件功能的按钮。
txtusername.Text是包含发送邮件地址的文本框。所有值都正确接收,没有错误发生,但它不工作..!

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

你试过不同的端口吗?像587 ..? –

+0

Gmail SSL端口为587.另外,Gmail具有阻止定制电子邮件客户端的安全措施;您必须关闭安全措施。 – Tommy

+0

有史以来最糟糕的“错误处理”。 –

回答

1

smtp.Port = 25;是默认端口而是因为你是在发送使用SSL端口587465(非标准的,但有时也用于遗留原因)。假设NetworkCredential是正确的。

+0

很高兴帮助你! – Sami