无法通过 ASP.NET 中的 Gmail 帐户发送电子邮件
本文关键字:电子邮件 Gmail 中的 ASP NET | 更新日期: 2023-09-27 18:35:01
我在使用 gmail 帐户通过 ASP.NET 应用程序发送简单电子邮件时遇到了问题。我已经尽我所能寻求帮助,但由于某种原因,它只是不断给我一个错误并且不发送任何电子邮件。
这是我设置为在按下按钮期间触发的代码:
protected void SubmitButton_Click(object sender, EventArgs e)
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(new System.Net.Mail.MailAddress("an email address"));
mail.From = new System.Net.Mail.MailAddress("From Email Address");
mail.Subject = "PDMS New User Request";
mail.IsBodyHtml = true;
mail.Body = "A new user has requested access" + "'n'n"
+ "Name: " + inputFName.Text.ToString() + " " + inputLName.Text.ToString()
+ "'n"
+ "Organization: " + inputOrg.Text.ToString()
+ "'n"
+ "Email: " + inputEmail.Text.ToString()
+ "'n'n"
+ "Please contact them with their login information"
+ "-PDMS System Message";
mail.IsBodyHtml = true;
System.Net.Mail.SmtpClient systemEmail = new System.Net.Mail.SmtpClient();
systemEmail.UseDefaultCredentials = false;
systemEmail.Credentials=new System.Net.NetworkCredential("From email address", "From Email Addresses' password");
systemEmail.Port = 587 ;
systemEmail.Host="smtp.gmail.com";
systemEmail.EnableSsl=true;
systemEmail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
try
{
systemEmail.Send(mail);
Label1.Visible = true;
Label2.Visible = false;
}
catch (Exception ex)
{
Label2.Text = "Email could not be sent due to errors";
}
我错过了什么?我似乎无法让此代码实际发送任何内容 - Gmail 中是否有我需要先配置的设置?
删除 catch 中的标签并抛出异常。然后我们可以很容易地识别确切的异常,否则它会显示标签默认文本。
try
{
systemEmail.Send(mail);
Label1.Visible = true;
Label2.Visible = false;
}
catch (Exception ex)
{
throw ex;//throw the exception
}
溶液:
我认为您面临 5.5.1 需要身份验证
以下步骤将解决您的异常。
- 输入正确的登录密码。
- 移除两步验证。
- 您必须为您的谷歌帐户启用从其他时区/IP登录。为此,请按照单击此处并通过单击继续按钮允许访问。
- 转到以下安全设置 单击此处并启用安全性较低的应用程序 。这样您就可以从所有应用程序登录。
我无法知道您遇到的错误是什么,但是是的,在开始使用代码发送邮件之前,需要在Gmail帐户中进行设置。请从您的Google帐户打开以下页面,然后打开对安全性较低的应用程序的访问权限。
https://www.google.com/settings/security/lesssecureapps
请注意,如果您为Google帐户启用了两步验证,那么您将不会在上述页面上看到"了解更多"链接。从那里,您可以为您的Google帐户创建特定于应用程序的密码,然后该应用程序将能够通过您的Google帐户访问和发送邮件。
如果这不能解决您的问题,请编辑您的帖子并添加您收到的确切错误跟踪,以便我们进行调查。
试试这个...我以前用过它,所以它可能会起作用
'
公共无效发送电子邮件(( {
MailMessage msg;
string emailId = string.Empty;
msg = new MailMessage();
SmtpClient smtp = new SmtpClient();
//sender email address
msg.From = new MailAddress("youremail@gmail.com");
//Receiver email address
msg.To.Add("receiver@gmail.com");
//email message subject
msg.Subject = "some string";
//email message body
msg.Body = "Some string".Trim();
msg.IsBodyHtml = true;
smtp.Credentials = new NetworkCredential("yourEmail@gmail.com","yourpassword");
smtp.Port = 587;
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.Send(msg);
}`