You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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密码
  • daum.net
    • SMTP服务器:smtp.daum.net
    • SMTP端口:465,需安全连接(SSL)
    • 账号:你的DaumMail账号
    • 密码:Daum Mail访问密码

代码问题分析

当前代码连接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;
    }
}

额外排查建议

  1. 确认Kakao/Daum邮箱密码正确性,若开启两步验证,需使用应用专用密码
  2. 检查服务器防火墙或本地安全软件是否拦截465端口的出站连接
  3. 查看ProtocolLogger生成的日志文件,SMTP交互细节可帮助定位具体错误原因

内容的提问来源于stack exchange,提问作者Prashant Girase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:40:42