如何在C#中编程发送邮件?Gmail SMTP认证异常求助
解决Gmail SMTP发送邮件认证失败问题
出现「SMTP服务器需要安全连接或客户端未通过认证,服务器响应5.7.0」错误,核心原因是Gmail限制了普通密码直接用于SMTP登录,按以下步骤解决:
- 给Google账号开启两步验证:登录账号后进入「安全」设置,找到两步验证选项并启用。
- 生成应用专用密码:在安全设置的「应用专用密码」板块,创建一个用于邮件客户端的密码(选择「邮件」应用,设备可随意选择),这个密码就是代码中需要填写的
password值。 - 确认代码配置:
- 保证
UseDefaultCredentials = false在设置Credentials之前执行(你的代码顺序正确,请勿调整) EnableSsl = true必须开启,Gmail SMTP强制要求SSL连接
- 保证
修改后的代码示例:
try { MailMessage mail = new MailMessage(); mail.From = new MailAddress("account1@gmail.com"); mail.To.Add("account2@gmail.com"); mail.Subject = "Hello World"; mail.Body = "<h1>Hello</h1>"; mail.IsBodyHtml = true; // mail.Attachments.Add(new Attachment(@"C:\file.zip")); SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.UseDefaultCredentials = false; // 替换此处password为生成的应用专用密码 smtp.Credentials = new NetworkCredential("account1@gmail.com", "生成的应用专用密码"); smtp.EnableSsl = true; smtp.Send(mail); } catch (Exception ex) { MessageBox.Show(ex.Message); }
内容的提问来源于stack exchange,提问作者nashco
相关产品推荐
相关产品推荐

