C#调用SmtpClient发邮件报错5.7.0 Authentication Required如何解决?
报错信息:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.0 Authentication Required
核心问题排查
- 第一:SMTP服务器与发件邮箱不匹配
你代码中配置的SMTP服务器是Gmail的smtp.gmail.com,但身份验证用的账号是jewralyapp@mail.ru(属于Mail.ru邮箱服务),二者不属于同一服务商,身份验证必然失败。 - 第二:未使用合规的SMTP验证密码
目前主流邮箱服务商均不允许直接使用账号登录密码作为SMTP验证凭据,需要额外开启SMTP权限、开启账号两步验证后生成专属的应用专用密码,才能用于代码验证。 - 第三(非直接报错原因):
SmtpClient类已被微软官方标记为过时,存在兼容性和安全性缺陷,生产环境建议替换为MailKit等主流邮件操作库。
修复步骤
- 统一SMTP服务与发件邮箱
- 若使用Mail.ru邮箱发信:将SMTP地址改为
smtp.mail.ru,端口可选择465(SSL协议)或587(TLS协议) - 若使用Gmail邮箱发信:将
NetworkCredential中的账号替换为你自己的Gmail地址
- 若使用Mail.ru邮箱发信:将SMTP地址改为
- 配置邮箱SMTP权限
登录对应邮箱的网页管理端,先开启SMTP收发功能,再开启账号两步验证,生成应用专用密码,替换代码中"password"字段的内容。 - 测试发信
完成上述配置后即可正常触发邮件发送。
内容的提问来源于stack exchange,提问作者Abdulkhakim Magomedov
相关产品推荐
相关产品推荐

