无法通过ASP.NET中的Gmail帐户发送电子邮件

时间:2016-02-17 03:53:15

标签: c# asp.net email smtp smtp-auth

我在使用我的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中的设置?

3 个答案:

答案 0 :(得分:2)

在Catch中删除Label并抛出Exception。然后我们可以轻松识别确切的异常,否则它会显示标签的默认文本。

try
{
    systemEmail.Send(mail);
    Label1.Visible = true;
    Label2.Visible = false;
}
catch (Exception ex)
{
    throw ex;//throw the exception
}

解决方案:

我认为您正面临 5.5.1需要身份验证

以下步骤将解决您的例外情况。

  • 输入正确的登录密码。
  • 删除两步验证。
  • 您必须为您的Google帐户启用其他时区/ IP登录。要执行此操作,请按照Click Here进行操作,然后点击“继续”按钮进行访问。
  • 转到以下Click here的安全设置,启用安全性较低的应用。这样您就可以从所有应用程序登录。

答案 1 :(得分:0)

我无法知道您收到的错误是什么,但是您可以在使用代码开始发送邮件之前在您的Gmail帐户中进行设置。请从您的Google帐户打开以下页面,然后打开访问不太安全的应用程序。

https://www.google.com/settings/security/lesssecureapps

请注意,如果您为Google帐户启用了2步验证,那么您将无法在上述页面上看到详细信息。从那里,您可以为您的Google帐户创建应用专用密码,然后该应用就可以通过您的Google帐户访问和发送邮件。

如果这不能解决您的问题,请编辑您的帖子并添加您收到的确切错误跟踪,以便我们进行调查。

答案 2 :(得分:0)

尝试一下......我之前使用过它可能会起作用

`
 public void SendEmail()         {

        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);
    }`