ASP.NET Core MVC联系我们页面提交时发送邮件报错怎么解决?
问题解决步骤
你当前的邮件发送实现存在多处配置错误,按以下顺序修改即可解决问题:
1. 修正SMTP凭据配置逻辑
现有代码的UseDefaultCredentials参数设置错误、顺序颠倒,导致自定义凭据不生效:
// 错误写法 smtp.UseDefaultCredentials = true; smtp.Credentials = networkCred;
修改为:
// 必须先禁用默认凭据,再赋值自定义的SMTP登录信息 smtp.UseDefaultCredentials = false; smtp.Credentials = networkCred;
2. 补全所有必填的邮箱配置项
你当前代码中多处核心配置为空,需要补充有效值:
mailMessage.From:填写发件人完整的Gmail邮箱地址networkCred.UserName:和上述发件人邮箱地址保持一致networkCred.Password:填写Gmail的应用专用密码,不可使用账号的常规登录密码mailMessage.To.Add:填写实际需要接收邮件的收件人邮箱地址
3. 开通Gmail SMTP调用权限
Gmail默认禁止第三方客户端直接用账号密码调用SMTP服务,需要提前做以下配置:
- 登录对应的谷歌账号,开启账号两步验证功能
- 进入账号安全设置页,创建「应用专用密码」,把生成的16位无空格密码填入上面的
networkCred.Password配置项
4. 可选优化(推荐)
微软官方已将SmtpClient标记为过时类型,跨平台兼容性、稳定性都存在缺陷,推荐替换为更现代的MailKit库实现邮件发送功能。
内容的提问来源于stack exchange,提问作者Alak Sarker
相关产品推荐
相关产品推荐

