MailKit连接25端口发信报错5.7.1 Client was not authenticated求助
MailKit 25端口发信5.7.1 Client was not authenticated 错误排查项
- 禁用MailKit默认自动认证逻辑:MailKit默认会自动尝试使用当前系统身份发起认证,即使你没有显式配置账号密码也会触发该逻辑,而Exchange的匿名中继连接器通常会拒绝携带认证请求的连接。你需要在Connect方法执行前添加以下配置:
' 清除所有认证机制,禁用自动认证 SmtpHost.AuthenticationMechanisms.Clear() ' 显式置空 credentials 避免自动读取默认身份 SmtpHost.Credentials = Nothing
- 验证接收连接器IP白名单配置:检查Exchange对应接收连接器的「远程网络设置」,确认当前运行代码的服务器IP已经被加入允许的远程IP列表,未在列表内的IP即使开启匿名权限也会被拦截。
- 验证发件人地址合法性:多数Exchange匿名中继连接器会限制允许使用的发件人地址范围,需确认代码中
Me.from对应的发件人地址满足以下要求:- 属于连接器允许的发件人域名范围
- 若配置了发件人校验,该地址需为Exchange内存在的有效邮箱地址
- 检查接收连接器扩展权限:仅勾选匿名权限组不足以支持匿名中继,需确认已给匿名用户添加
ms-Exch-SMTP-Accept-Any-Recipient扩展权限,缺少该权限时仅允许发往Exchange内部收件人,发往外网会返回5.7.1错误。 - 检查代码变量正确性:你提供的代码中定义的邮件对象名为
msg,但调用Send方法时传入的是Message变量,需确认是否为实际代码的笔误,若传入了其他未正确配置发件人的邮件对象也会触发权限报错。
内容的提问来源于stack exchange,提问作者BunnY
相关产品推荐
相关产品推荐

