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

如何将Microsoft Graph Message转换为Aspose MailMessage?

将Microsoft Graph Message转换为Aspose MailMessage的实现方案

Aspose.Email目前没有提供直接转换Microsoft Graph Message对象的官方SDK或工具,不过可以通过手动映射属性的方式完成转换,覆盖主题、发件人、附件等核心字段,解决你自行编写时遇到的问题:

  • 初始化Aspose MailMessage实例

    var asposeMsg = new MailMessage();
    
  • 映射基础邮件属性

    • 主题:asposeMsg.Subject = graphMessage.Subject;
    • 发件人:将Graph的发件人信息转换为Aspose的MailAddress对象
      asposeMsg.From = new MailAddress(
          graphMessage.From.EmailAddress.Address, 
          graphMessage.From.EmailAddress.Name
      );
      
    • 收件人/抄送人/密送人:遍历Graph的收件人集合,逐个添加到Aspose对应集合中
      // 处理收件人
      foreach (var recipient in graphMessage.ToRecipients)
      {
          asposeMsg.To.Add(new MailAddress(
              recipient.EmailAddress.Address, 
              recipient.EmailAddress.Name
          ));
      }
      // 抄送、密送人同理,对应asposeMsg.Cc、asposeMsg.Bcc
      
  • 处理邮件正文
    根据Graph返回的正文类型(HTML/文本),设置Aspose邮件的对应属性:

    if (graphMessage.Body.ContentType.Equals("html", StringComparison.OrdinalIgnoreCase))
    {
        asposeMsg.HtmlBody = graphMessage.Body.Content;
    }
    else
    {
        asposeMsg.Body = graphMessage.Body.Content;
    }
    
  • 处理附件
    需要先通过Microsoft Graph API下载附件的字节内容,再转换为Aspose的Attachment对象,同时区分普通附件和内嵌附件:

    foreach (var graphAtt in graphMessage.Attachments)
    {
        // 下载附件内容
        var attContent = await graphClient.Messages[graphMessage.Id]
            .Attachments[graphAtt.Id]
            .Content.Request()
            .GetAsync();
        
        var asposeAtt = new Attachment(graphAtt.Name, attContent);
        
        // 处理内嵌附件
        if (graphAtt.IsInline.HasValue && graphAtt.IsInline.Value)
        {
            asposeAtt.ContentId = graphAtt.ContentId;
        }
        
        asposeMsg.Attachments.Add(asposeAtt);
    }
    

如果需要覆盖更多边缘属性(如邮件发送时间、回复ID等),可以直接对应Aspose MailMessage的属性进行赋值,这种方式能确保所有需要的字段都被正确转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:35:26