使用MailKit无法发送邮件:kakao.com与daum.net账号异常
解决Kakao.com和Daum.net邮件发送失败问题
问题现象
可正常使用Gmail/Office365/Outlook/Yahoo/AOL/Naver账号发送邮件,但无法通过kakao.com和daum.net账号发送邮件。
目标邮箱SMTP配置信息
- Kakao.com
- SMTP服务器:
smtp.kakao.com - SMTP端口:465,需SSL
- 账号:你的KakaoMail账号
- 密码:你的KakaoMail密码
- SMTP服务器:
- daum.net
- SMTP服务器:
smtp.daum.net - SMTP端口:465,需安全连接(SSL)
- 账号:你的DaumMail账号
- 密码:Daum Mail访问密码
- SMTP服务器:
代码问题分析
当前代码连接SMTP服务器时使用了SecureSocketOptions.StartTls,但465端口是SSL直连端口,StartTls适用于先建立明文连接再升级加密的场景(通常对应587端口),将其用于465端口会导致连接失败。
修正后的代码
public async Task Send() { try { using (var client = new SmtpClient(new ProtocolLogger(@"D:\PrashantG\Logs.log"))) { var email = new MimeMessage(); email.From.Add(MailboxAddress.Parse(userName)); email.To.Add(MailboxAddress.Parse("receiver@gmail.com")); email.Subject = "Test Email Subject"; email.Body = new TextPart(TextFormat.Html) { Text = "<h1>Example HTML Message Body</h1>" }; // Kakao邮箱连接写法 // await client.ConnectAsync("smtp.kakao.com", 465, SecureSocketOptions.SslOnConnect); // Daum邮箱连接写法 await client.ConnectAsync("smtp.daum.net", 465, SecureSocketOptions.SslOnConnect); client.AuthenticationMechanisms.Remove("XOAUTH2"); await client.AuthenticateAsync(userName, password); await client.SendAsync(email); // 保持异步调用一致性 client.Disconnect(true); } } catch (Exception ex) { // 可在此处添加日志记录,便于排查问题 throw; } }
额外排查建议
- 确认Kakao/Daum邮箱密码正确性,若开启两步验证,需使用应用专用密码
- 检查服务器防火墙或本地安全软件是否拦截465端口的出站连接
- 查看
ProtocolLogger生成的日志文件,SMTP交互细节可帮助定位具体错误原因
内容的提问来源于stack exchange,提问作者Prashant Girase
相关产品推荐
相关产品推荐

