使用Gmail SMTP OAUTH从asp.net发送电子邮件

时间:2017-02-04 10:37:00

标签: c# asp.net email network-programming

我只想实现一个示例邮件发送应用程序。 我为此做了很多研究。从各个方面来看,我都得到了同样的解决方案。但那不适合我。我无法找到我的错误。我使用下面的代码

protected void SendEmail(object sender, EventArgs e)
{
    string to = txtTo.Text;
    string from = txtEmail.Text;
    string subject = txtSubject.Text;
    string body = txtBody.Text;
    using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text))
    {
        mm.Subject = txtSubject.Text;
        mm.Body = txtBody.Text;
        if (fuAttachment.HasFile)
        {
            string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
            mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
        }
        mm.IsBodyHtml = false;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.EnableSsl = true;
        NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text);
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Port = 587;
        smtp.Send(mm);
        ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true);
    }
}

获得如下的例外

enter image description here

请建议我如何解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:3)

假设您使用正确的Gmail凭据作为发送电子邮件的帐户。您需要打开不太安全的应用程序"使用以下链接进行设置:https://www.google.com/settings/u/1/security/lesssecureapps