C# 如何创建SMTP邮件?

C# 如何创建SMTP邮件?,c#,asp.net,email,C#,Asp.net,Email,我试图从我的asp.net web应用程序发送邮件 我想将我的应用程序密码发送到用户邮件id,为此,我使用getdetailss函数从datatabase获取密码。 btn4getPwd是调用邮件功能的按钮。 txtusername.Text是包含发送邮件地址的文本框。所有值都正确接收,没有错误发生,但它不工作 protected void btn4getPwd_Click(object sender, EventArgs e) { if (txtusername.Text.Trim()

我试图从我的asp.net web应用程序发送邮件

我想将我的应用程序密码发送到用户邮件id,为此,我使用
getdetailss
函数从datatabase获取密码。
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 = "mymail@gmail.com", 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>"); }

}  
protectedvoid btn4getPwd\u单击(对象发送方,事件参数e)
{
if(txtusername.Text.Trim()!=“”)
{
em.username=txtusername.Text.Trim();
DataTable=em.getdetailss(10);
字符串passwd=(忘记.Rows[0][“密码”].ToString());
尝试
{
string Subject=“您的NLS密码”;
字符串体=passwd;
string-ToEmail=txtusername.Text.Trim();
字符串SMTPUser=”mymail@gmail.com,SMTPPassword=“pswd”;
MailMessage mail=新的MailMessage();
mail.From=新邮件地址(SMTPUser,“AspnetO”);
mail.To.Add(ToEmail);
mail.Body=Body;
mail.IsBodyHtml=true;
mail.Priority=MailPriority.Normal;
SmtpClient smtp=新SmtpClient();
smtp.Host=“smtp.gmail.com”;
smtp.Port=25;
smtp.Credentials=新系统.Net.NetworkCredential(SMTPUser,SMTPPassword);
smtp.EnableSsl=true;
smtp.发送(邮件);
回复。写(“警报(‘邮件发送…!!’)”);
}
捕获(SMTPEx异常)
{
lbl4get.Text=“SmtpException”;
}
捕获(例外情况除外)
{
lbl4get.Text=“异常”;
}
}
else{Response.Write(“警报('Invalid USERNAME…!!')”);}
}  

smtp.Port=25
是默认端口,但对于通过
SSL
发送时,请使用端口
587
465
(非标准,但有时出于传统原因使用)。假设
NetworkCredential
正确

你试过另一个端口吗?像587….?Gmail SSL端口是587。此外,Gmail有安全措施阻止定制的电子邮件客户端;你必须关闭安全措施。有史以来最糟糕的“错误处理”。是的,我尝试了587端口!!仍然是相同的响应,如果安全性是问题,那么错误将发生在smtp上。发送(邮件)命令执行正确吗???@UweKeim我只是初学者寻求帮助!很高兴它帮助了你!