如何使用ASP.NET,C#和GMail发送电子邮件

时间:2015-04-15 17:32:05

标签: c# asp.net email gmail

我尝试使用GMail SMTP发送电子邮件,并在其他各种问题上按照指南进行操作,但我仍然无法收到通过我的GMail帐户发送的电子邮件。

这是我正在使用的代码:

protected void emailSend_Click(object sender, EventArgs e)
        {
            var fromAddress = new MailAddress(inputEmail.Text, inputName.Text);
            var toAddress = new MailAddress("spikey666@live.co.uk", "Liane Stevenson");
            const string fromPassword = "*********";
            const string subject = "Web Dev Wolf Message";
            var body = inputMessage.Text;

            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                Credentials = new NetworkCredential("webdevelopwolf@gmail.com", fromPassword),
                Timeout = 20000
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = body
            })
            {
                smtp.Send(message);
            }
        }

这些是我到目前为止检查的内容:

  1. 在GMail上开启安全性较低的应用
  2. 检查了Gmail用户名和密码是否正确
  3. 已调试并检查所有文本字段是否具有值并已加载到变量中
  4. 检查Gmail帮助建议的其他端口号
  5. 在Gmail上启用POP / IMAP功能
  6. 还有什么我可以错过的吗?

1 个答案:

答案 0 :(得分:1)

在调用SmtpClient.Send()之前,添加:

smtp.UseDefaultCredentials = false;

根据MSDN SmtpClient page,默认情况下UseDefaultCredentials设置为false,但某处似乎存在将其设置为true的错误。

,在发送消息之前将其明确设置为false