无法通过 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 中是否有我需要先配置的设置?

无法通过 ASP.NET 中的 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);
    }`