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

使用C# Mailkit创建邮件,Outlook ActiveSync下无发送按钮问题求助

问题解决:Outlook ActiveSync下Mailkit创建的草稿无发送按钮

核心原因

Outlook ActiveSync对可发送草稿的识别逻辑和IMAP/Exchange连接器不同:

  • 它更依赖默认草稿文件夹而非自定义文件夹
  • 需要邮件携带特定标记头(如X-Unsent)或Exchange专属属性,仅设置MessageFlags.Draft不足以让ActiveSync识别为待发送草稿

解决方案

1. 将草稿存入默认Drafts文件夹

ActiveSync通常仅把默认草稿文件夹内的邮件标记为可发送状态,修改代码使用系统默认草稿文件夹:

using (var client = new ImapClient())
{
    String email = "";
    String password = "";
    String server = "";
    
    client.Connect(server, 993, true);
    client.Authenticate(email, password);
    
    // 获取默认草稿文件夹,而非自定义文件夹
    var draftsFolder = client.GetFolder(SpecialFolder.Drafts);
    
    var reply = new MimeMessage();
    reply.From.Add(new MailboxAddress("Test", email));
    reply.To.Add(new MailboxAddress("Test", ""));
    reply.Subject = "Testemail";
    // 添加X-Unsent头,让ActiveSync识别为待发送草稿
    reply.Headers.Add("X-Unsent", "1");
    
    var bodyBuilder = new BodyBuilder();
    bodyBuilder.HtmlBody = "";
    reply.Body = bodyBuilder.ToMessageBody();

    draftsFolder.Append(reply, MessageFlags.Draft);
    
    client.Disconnect(true);
}

2. 针对Exchange服务器使用ExchangeClient

如果目标是Exchange服务器,直接使用Mailkit的ExchangeClient能更好适配ActiveSync的属性要求:

using (var client = new ExchangeClient(server, email, password))
{
    var reply = new MimeMessage();
    reply.From.Add(new MailboxAddress("Test", email));
    reply.To.Add(new MailboxAddress("Test", ""));
    reply.Subject = "Testemail";
    reply.Headers.Add("X-Unsent", "1");
    
    var bodyBuilder = new BodyBuilder();
    bodyBuilder.HtmlBody = "";
    reply.Body = bodyBuilder.ToMessageBody();

    // 保存到Exchange默认草稿文件夹
    client.AppendMessage(SpecialFolder.Drafts, reply, MessageFlags.Draft);
}

3. 若必须使用自定义文件夹(可选)

如果一定要用自定义文件夹,需确保该文件夹被ActiveSync标记为"草稿类"文件夹,但此操作通常需要通过Exchange管理端配置,或使用Exchange Web Services(EAS)协议设置文件夹属性,IMAP协议无法直接完成这一配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:46:17