【问题标题】:How to send email using ASP.NET, C# and GMail如何使用 ASP.NET、C# 和 GMail 发送电子邮件
【发布时间】:2015-04-15 17:32:04
【问题描述】:

我尝试使用 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 从 C# 应用程序发送电子邮件,虽然我不记得为什么,但我需要设置“smtp.UseDefaultCredentials = false;”在发送消息之前。
  • 你说它不发送。但是你有例外吗?为什么smtp.Send(message); 在自己的代码块中?
  • @LianeStevenson 好吧,显然你应该阅读using 声明。
  • @LianeStevenson 将发送命令放在它自己的块中,就像你所拥有的一样,与没有它在块中没有任何不同。新块更改了范围,但由于该块内没有声明任何内容,您应该删除它周围的大括号。由于 smtp.Send() 可以抛出异常,因此将其包装在 try/catch 块中并不是一个坏主意:)
  • @QuestionMarks "smtp.UseDefaultCredentials = false;"工作!如果您将其作为答案弹出,我会将其标记为帮助解决此问题的其他人;)

标签: c# asp.net email gmail


【解决方案1】:

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

smtp.UseDefaultCredentials = false;

根据MSDN SmtpClient page,UseDefaultCredentials 默认设置为false,但似乎有一个错误将其设置为true。在发送消息之前将其显式设置为 false,并且应该全部设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2022-06-17
    • 1970-01-01
    • 2015-06-10
    • 2011-06-01
    • 2023-03-13
    相关资源
    最近更新 更多