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

How to send email using ASP.NET, C# and 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 功能

还有什么我可能遗漏的吗?

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

smtp.UseDefaultCredentials = false;

根据 MSDN SmtpClient page,UseDefaultCredentials 默认设置为 false,但似乎某处存在错误将其设置为 true。在发送消息之前明确将其设置为 false,并且应该全部设置。