6

当用户在联系我们页面中单击提交时,我试图发送一封电子邮件,但由于某种原因它不起作用,我做错了什么?(此代码片段中省略了 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);
    }
4

2 回答 2

3

Gmails 使用 port 465,而不是456SSL SMTP。从这里

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

使用身份验证:是

TLS/STARTTLS 端口:587

SSL 端口:465

于 2012-12-24T17:47:29.763 回答
1

“其他”可能的原因:

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

  • 如果 Yes:检查主机的trustASP.Net 设置。如果是medium trust(可能在共享主机中),那么请注意,在medium trust 中,您不能将端口 25 以外任何端口用于 SMTP 。

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

REF(MSDN 博客):当 ASP.Net 未以完全信任方式运行时的 SMTP 问题

于 2012-12-24T19:59:33.090 回答