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

使用OAuth2与MailKit NuGet包连接Outlook IMAP服务器时遇异常

解决MailKit连接Outlook 365 IMAP的异常问题

核心问题排查与修复步骤

  • 端口与SSL选项不匹配:Outlook 365的IMAP端口对应关系是:

    • 993端口:需使用SecureSocketOptions.SslOnConnect(直接SSL/TLS连接)
    • 143端口:需使用SecureSocketOptions.StartTls(先明文再升级加密)
      你的代码中用993+StartTls属于配置错误,这会导致服务器握手失败直接断开。
  • 缺少OAuth2认证步骤:你创建了SaslMechanismOAuth2对象,但未调用认证方法。连接服务器后必须执行认证,完整代码应该是:

    var oauth2 = new SaslMechanismOAuth2(mailid, accessToken);
    // 993端口对应SslOnConnect
    await client.ConnectAsync("outlook.office365.com", 993, SecureSocketOptions.SslOnConnect);
    // 关键:执行OAuth2认证
    await client.AuthenticateAsync(oauth2);
    
  • 检查Azure应用权限配置:

    • 确保在Azure应用注册中添加了Delegated类型的IMAP.AccessAsUser.All权限
    • 确认已对该权限授予管理员同意(租户级应用)或用户已完成授权流程
    • 验证获取的access token中包含https://outlook.office365.com/IMAP.AccessAsUser.All的scope
  • 强制指定TLS版本:如果仍出现SSL/TLS连接错误,可强制MailKit使用TLS 1.2(Outlook要求的最低版本):

    client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
    await client.ConnectAsync("outlook.office365.com", 993, SecureSocketOptions.SslOnConnect);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:30:10