如何使用 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);
}
}
这些是我目前检查过的内容:
- 在 GMail 上打开安全性较低的应用程序
- 已检查 Gmail 用户名和密码是否正确
- 调试并检查所有文本字段是否都有值并加载到变量中
- 检查 Gmail 帮助建议的其他端口号
- 在 Gmail 上启用 POP/IMAP 功能
还有什么我可能遗漏的吗?
在调用 SmtpClient.Send() 之前,添加:
smtp.UseDefaultCredentials = false;
根据 MSDN SmtpClient page,UseDefaultCredentials 默认设置为 false,但似乎某处存在错误将其设置为 true。在发送消息之前明确将其设置为 false,并且应该全部设置。
我已尝试使用 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);
}
}
这些是我目前检查过的内容:
- 在 GMail 上打开安全性较低的应用程序
- 已检查 Gmail 用户名和密码是否正确
- 调试并检查所有文本字段是否都有值并加载到变量中
- 检查 Gmail 帮助建议的其他端口号
- 在 Gmail 上启用 POP/IMAP 功能
还有什么我可能遗漏的吗?
在调用 SmtpClient.Send() 之前,添加:
smtp.UseDefaultCredentials = false;
根据 MSDN SmtpClient page,UseDefaultCredentials 默认设置为 false,但似乎某处存在错误将其设置为 true。在发送消息之前明确将其设置为 false,并且应该全部设置。