【问题标题】:Outlook Mailitem as Zip Attachment in C#Outlook Mailitem 作为 C# 中的 Zip 附件
【发布时间】:2019-07-08 05:13:54
【问题描述】:

我想压缩 Outlook Mailitem 并将其作为附件添加到新邮件中。这是我到目前为止得到的:

newmail.Attachments.Add(mailItem, Outlook.OlAttachmentType.olEmbeddeditem);

如果我将纯电子邮件添加为附件,则到目前为止已经过测试和工作。但是如何从 MailItem 创建新的 ZipArchive?

【问题讨论】:

  • 您是在努力使用 c# 压缩 mailItem,还是在努力将压缩后的项目附加到 mailItem?
  • 我正在努力用 c# 压缩邮件项目
  • 你能从你的 mailItem 中获取 FileInfo 吗?
  • @SoufianeTahiri 我不确定你的意思。 mailitem 来自类型 Outlook.MailItem
  • 您必须在创建邮件项之前执行此操作

标签: c# outlook ziparchive


【解决方案1】:

尝试保存:

 String savepath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\" + filename + ".msg";
    mailItem.SaveAs(savepath);
 FileInfo mailItemToCompress= new FileInfo(savepath);

压缩:

public void Compress(FileInfo mailItemToCompress, string compressedMailItem)
{
    using (FileStream originalFileStream = mailItemToCompress.OpenRead())
    {
       using (FileStream compressedMailItem= File.Create(compressedMailItem)
            {
                using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
                {
                    originalFileStream.CopyTo(compressionStream);
                }
            }
    }
}

然后附上你的mailItem:

mailItem.Attachments.Add(compressedMailItem);

【讨论】:

  • 感谢您的回答。我明天会测试这个。有没有一种简单的方法可以在保存和压缩后删除邮件项(mailitem.Delete()?我猜它只会像这样删除实际的邮件项。
猜你喜欢
  • 1970-01-01
  • 2013-12-23
  • 2017-11-18
  • 1970-01-01
  • 2013-07-07
  • 2015-04-29
  • 2013-08-05
  • 1970-01-01
  • 2018-06-30
相关资源
最近更新 更多