无法使用Gmail SMTP发送电子邮件

本文关键字:电子邮件 SMTP Gmail | 更新日期: 2023-09-27 18:00:57

我有一个带有联系表单的网站-我希望反馈发送到我的gmail帐户。为此,我创建了另一个用于发送这些消息的伪gmail帐户。代码看起来像这个

                MailMessage msg = new MailMessage();
                msg.To.Add("to_mail@gmail.com");
                msg.From = new MailAddress("from_mail@gmail.com");                
                msg.Subject = "Feedback";
                msg.Body = txtName.Text + " " + txtEmail.Text + " " + txtMessage.Text;
                msg.IsBodyHtml = true;
                SmtpClient client = new SmtpClient();
                client.Host = "smtp.gmail.com"; 
                client.Port = 587;
                client.UseDefaultCredentials = false;
                client.Credentials = new System.Net.NetworkCredential("from_mail@gmail.com", "password");
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.EnableSsl = true;                    
                client.Send(msg);

当我从VS项目的localhost运行此代码时,此代码运行良好,但一旦我编译并上传到web,它就会停止工作,并出现此错误。

System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.

有人知道是什么原因造成的以及如何修复吗?我已经在我的gmail帐户中启用了对不太安全的应用程序的访问。也尝试了465端口,但也不起作用。

非常感谢Jozef

无法使用Gmail SMTP发送电子邮件

终于找到了答案。必须点击这个链接与我的"从"Gmail帐户登录。

https://accounts.google.com/b/0/DisplayUnlockCaptcha

可能原因:

在gmail中,如果当前登录区域和上次登录区域为不同的是,gmail在登录前会问我们一些安全问题。所以最好尝试通过您正在使用的系统中的浏览器登录一次那个C#应用程序。