从C#控制台应用向Mail.com发送邮件时遇SMTP认证错误
问题排查方案
1. 修正属性设置顺序
SmtpClient的UseDefaultCredentials默认值为true,如果先配置Credentials再将UseDefaultCredentials设为false,会清空已设置的登录凭据。调整代码顺序:
SmtpClient smtpClient = new SmtpClient(smtpHost, smtpPort) { UseDefaultCredentials = false, // 必须优先设置此项 Credentials = new NetworkCredential(EmailUser, EmailPassword), EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network };
2. 核对Mail.com官方SMTP参数
确保使用Mail.com指定的标准参数:
- SMTP主机:
smtp.mail.com - 端口选择:
- SSL加密端口:465
- STARTTLS加密端口:587
两种端口均需保持EnableSsl = true,不要混淆端口与加密方式的对应关系。
3. 验证登录凭据格式
EmailUser必须填写完整的邮箱地址(例如your_account@mail.com),不能仅输入用户名前缀。同时确认密码大小写、特殊字符完全匹配,无输入错误。
4. 强制启用高版本TLS
部分服务器要求使用TLS 1.2及以上版本,.NET Framework默认可能未开启。在代码开头添加以下语句强制启用:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
内容的提问来源于stack exchange,提问作者ErickTreetops
相关产品推荐
相关产品推荐

