ASP.NET发送电子邮件

时间:2012-12-24 17:43:29

标签: asp.net email

我正在尝试发送电子邮件,当用户在联系我们页面中点击提交但由于某种原因它不起作用时,我做错了什么? (PS电子邮件和密码已从此代码段中省略,但包含在实际解决方案中。

由于

web.config中的代码:

<system.net>
<mailSettings>
  <smtp from="order@test.com">
    <network host="smtp.gmail.com"
             userName="" //my email
             password="" //password deleted for privacy reasons
             defaultCredentials="false"
             port="456"
             enableSsl="true" />
  </smtp>
</mailSettings>

asp.net联系表格中的代码:

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        MailMessage mail = new MailMessage();
        mail.To.Add(new MailAddress("test@gmail.com"));
        mail.Subject = "Test";
        mail.Body = "Message was sent from" + txtName.text + txtComment.text;
        SmtpClient smtp = new SmtpClient();
        smtp.SendAsync(mail, null);
    }

2 个答案:

答案 0 :(得分:3)

Gmails使用端口465,而不是456用于SSL SMTP。来自here

  

外发邮件(SMTP)服务器 - 需要TLS1或SSL:smtp.gmail.com

     

使用身份验证:是

     

TLS / STARTTLS的端口:587

     

SSL端口:465

答案 1 :(得分:1)

“其他”可能的原因:

  • 在本地开发时,您的代码是否“正常”,但是当您将文件“发布”/ ftp / copy等文件发送到Web主机时,代码会停止工作?

  • 如果 Yes:请检查主机的ASP.Net trust设置。如果它是medium trust(可能在共享主机中),请注意中信任无法使用任何端口其他而不是端口25 用于SMTP

它在本地(dev)工作,因为在本地dev / VS环境中,ASP.Net在full trust中运行。

REF(MSDN博客):SMTP Problems when ASP.Net is not running in full-trust