Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';不要通过ASP.NET中的Gmail帐户发送电子邮件_C#_Asp.net_Email_Smtp_Smtp Auth - Fatal编程技术网

C# Can';不要通过ASP.NET中的Gmail帐户发送电子邮件

C# Can';不要通过ASP.NET中的Gmail帐户发送电子邮件,c#,asp.net,email,smtp,smtp-auth,C#,Asp.net,Email,Smtp,Smtp Auth,通过我的ASP.NET应用程序和我的gmail帐户发送一封简单的电子邮件时,我遇到了一些问题。我已经尽我所能寻求帮助,但出于某种原因,它只是不断给我一个错误,没有发送任何电子邮件 以下是我设置的在按下按钮时触发的代码: protected void SubmitButton_Click(object sender, EventArgs e) { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();

通过我的ASP.NET应用程序和我的gmail帐户发送一封简单的电子邮件时,我遇到了一些问题。我已经尽我所能寻求帮助,但出于某种原因,它只是不断给我一个错误,没有发送任何电子邮件

以下是我设置的在按下按钮时触发的代码:

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

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

请注意,如果您已经为您的google帐户打开了两步验证,那么您将不会在上述页面上看到“了解更多”链接。从那里,你可以为你的谷歌帐户创建特定于应用程序的密码,然后该应用程序将能够通过你的谷歌帐户访问和发送邮件


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

删除Catch中的标签并引发异常。然后我们可以轻松识别准确的异常,否则将显示标签默认文本

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

我认为您需要5.5.1身份验证

以下步骤将解决您的异常

  • 输入正确的登录密码
  • 删除两步验证
  • 您必须为您的google帐户启用从其他时区/ip登录。要做到这一点,请按照并通过单击“继续”按钮允许访问
  • 转到以下位置的安全设置并启用不太安全的应用程序。这样您就可以从所有应用程序登录

    • 试试这个。。。我以前用过,所以可能有用

      `
      public void sendmail() {

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

      您遇到了什么错误?请阅读错误消息。异常应该会告诉您问题所在。请删除异常中的标签更多参考检查我的解决方案我遇到的异常是“System.IO.IOException:无法从传输连接读取数据:net\u IO\u connectionclosed”。我不确定问题出在哪里。我没有双重身份验证,我启用了不太安全的应用,并且我的用户名和密码正确无误。