【问题标题】:EWS forward email as attachment - Cannot open in other email clientsEWS 将电子邮件作为附件转发 - 无法在其他电子邮件客户端中打开
【发布时间】:2018-07-13 09:48:10
【问题描述】:

在我的程序中,我正在使用 EWS .NET API 读取 Exchange 邮箱,并将电子邮件作为附件转发到外部电子邮件地址。我使用的代码如下

  private void ForwardMessage(ExchangeService exchangeService, EmailMessage item)
  {
    ResponseMessage responseMessage = item.CreateForward();
    item.Load(new PropertySet(BasePropertySet.FirstClassProperties, new 
                     PropertySet(){ItemSchema.MimeContent,                                                                            
                    ItemSchema.Subject}));
    var mail = new EmailMessage(exchangeService);
    var attachment = mail.Attachments.AddFileAttachment(String.Format("
                        {0}.eml", item.Subject),  
    item.MimeContent.Content);
    String forwardEmailAddresses = 
                      MailProcessorSettings.Default.ForwardEmailAddress;
    char[] delimiters = { ',', ';' };
    foreach (var emailAddress in forwardEmailAddresses.Split(delimiters, 
              StringSplitOptions.RemoveEmptyEntries))
    {
        mail.ToRecipients.Add(emailAddress);
    }
    mail.Subject = item.Subject;
    mail.Send();
  }

我可以在 Outlook 中打开作为附件转发的电子邮件。但是,如果我将它发送到 Gmail 或使用不同电子邮件客户端的其他用户,它会显示为空白附件。

如何确保作为附件转发的电子邮件保留原始内容?

【问题讨论】:

    标签: c# exchangewebservices ews-managed-api


    【解决方案1】:

    添加指示消息内容类型的行似乎可以解决此问题。以下任一设置似乎都有效。添加 ContentType 后,我可以从 Gmail 下载附件,尽管我必须使用 Outlook 客户端打开它。

    attachment.ContentType = "multipart/alternative"
    OR
    attachment.ContentType = "message/rfc822"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 2022-01-13
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多