asp.net 中的 gmail smtp 错误
Error with gmail smtp in asp.net
如标题所述,我在通过代码向 gmail 发送电子邮件时遇到问题。
奇怪的是,我在以前的项目中使用过这个确切的代码,当时它可以工作,但现在它在任何项目中都不起作用。
我在下面发布我的代码:
protected void ButtonSkicka_Click(object sender, EventArgs e)
{
try
{
MailMessage MailMessage = new MailMessage();
MailMessage.From = new MailAddress("MyEmail@gmail.com");
MailMessage.To.Add("MyEmail@gmail.com");
MailMessage.Subject = TextBoxÄmne.Text;
MailMessage.Body = "<b>Namn : </b>" + TextBoxNamn.Text + "<br />"
+ "<b> Email : </b>" + TextBoxEmail.Text + "<br />"
+ "<b> Meddelande : </b>" + TextBoxMedd.Text + "<br />";
MailMessage.IsBodyHtml = true;
SmtpClient SmtpClient = new SmtpClient("smtp.gmail.com", 587);
SmtpClient.EnableSsl = true;
SmtpClient.Credentials = new NetworkCredential("MyEmail@gmail.com", "Password");
SmtpClient.UseDefaultCredentials = false;
SmtpClient.Send(MailMessage);
TextBoxNamn.Text = "";
TextBoxEmail.Text = "";
TextBoxÄmne.Text = "";
TextBoxMedd.Text = "";
LabelTack.Text = "Tack för ditt meddelande!";
}
catch (Exception ex)
{
LabelTack.Text = ex.ToString();
}
我在我的 Gmail 帐户上启用了不太受信任的应用程序并禁用了 2 部分安全性。
这是我收到的错误:
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.
首先,SmtpClient.Credentials
应该在UseDefaultCredentials
设置为false后声明。
SmtpClient.UseDefaultCredentials = false;
SmtpClient.Credentials = new NetworkCredential("MyEmail@gmail.com", "Password");
在您的 Gmail 安全选项卡上,将 "Allow less secure applications" 设置为 true。
此外,请确保禁用 2 因素身份验证。如果启用,您需要为您的应用程序创建一个应用程序专用密码以允许登录。
如果失败,请尝试更改密码,因为有时 google 会更新他们的密码策略,如果密码被认为不符合策略,则登录将被阻止。 (来源 )
最后,您应该将 SMTPClient 声明包装在 using
语句中,以确保在使用后进行正确处理。
如标题所述,我在通过代码向 gmail 发送电子邮件时遇到问题。
奇怪的是,我在以前的项目中使用过这个确切的代码,当时它可以工作,但现在它在任何项目中都不起作用。
我在下面发布我的代码:
protected void ButtonSkicka_Click(object sender, EventArgs e)
{
try
{
MailMessage MailMessage = new MailMessage();
MailMessage.From = new MailAddress("MyEmail@gmail.com");
MailMessage.To.Add("MyEmail@gmail.com");
MailMessage.Subject = TextBoxÄmne.Text;
MailMessage.Body = "<b>Namn : </b>" + TextBoxNamn.Text + "<br />"
+ "<b> Email : </b>" + TextBoxEmail.Text + "<br />"
+ "<b> Meddelande : </b>" + TextBoxMedd.Text + "<br />";
MailMessage.IsBodyHtml = true;
SmtpClient SmtpClient = new SmtpClient("smtp.gmail.com", 587);
SmtpClient.EnableSsl = true;
SmtpClient.Credentials = new NetworkCredential("MyEmail@gmail.com", "Password");
SmtpClient.UseDefaultCredentials = false;
SmtpClient.Send(MailMessage);
TextBoxNamn.Text = "";
TextBoxEmail.Text = "";
TextBoxÄmne.Text = "";
TextBoxMedd.Text = "";
LabelTack.Text = "Tack för ditt meddelande!";
}
catch (Exception ex)
{
LabelTack.Text = ex.ToString();
}
我在我的 Gmail 帐户上启用了不太受信任的应用程序并禁用了 2 部分安全性。
这是我收到的错误:
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.
首先,SmtpClient.Credentials
应该在UseDefaultCredentials
设置为false后声明。
SmtpClient.UseDefaultCredentials = false;
SmtpClient.Credentials = new NetworkCredential("MyEmail@gmail.com", "Password");
在您的 Gmail 安全选项卡上,将 "Allow less secure applications" 设置为 true。
此外,请确保禁用 2 因素身份验证。如果启用,您需要为您的应用程序创建一个应用程序专用密码以允许登录。
如果失败,请尝试更改密码,因为有时 google 会更新他们的密码策略,如果密码被认为不符合策略,则登录将被阻止。 (来源 )
最后,您应该将 SMTPClient 声明包装在 using
语句中,以确保在使用后进行正确处理。