我当前的项目运行一个基于Microsoft 2010的电子邮件地址上的服务,专门用于将自定义规则应用于传入的电子邮件。
当我浏览可能的基于C#的解决方案时,EWS托管API似乎是我使用的最好的API。我需要的每一封邮件都被找到了,但是有一个非常大的丢失.将电子邮件保存到.msg
文件。这对我来说是相当令人惊讶的,因为它是如此容易从Outlook (简单地从Outlook拖放到任何文件夹)。
这是一个绝对的要求,因为用户保持他们的电子邮件组织通过拖放。我有没有错过用EWS做这件事的方法?到目前为止,我只发现了两种非EWS方式:
我很惊讶,这样一个基本的行动需要这么多的工作,并想知道,有什么简单的方法来保存电子邮件到一个.msg
文件吗?
最坏的情况是,是否有一个非EWS,基于C#的方法这样做?
谢谢
编辑:
我探索了.eml
出口解决方案。问题是我们使用Outlook 2007,它不支持eml格式。.msg
基本上就是这里的要求
发布于 2016-12-23 14:31:05
发布于 2017-01-27 10:36:25
有一个非EWS,基于C#的方法,可以精确地完成您想要的操作:
http://www.independentsoft.de/exchangewebservices/tutorial/downloadmessagetomsgfile.html
using System;
using System.IO;
using System.Net;
using Independentsoft.Exchange;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
NetworkCredential credential = new NetworkCredential("username", "password");
Service service = new Service("https://myserver3/ews/Exchange.asmx", credential);
try
{
ItemShape itemShape = new ItemShape(ShapeType.Id);
FindItemResponse inboxItems = service.FindItem(StandardFolder.Inbox, itemShape);
for (int i = 0; i < inboxItems.Items.Count; i++)
{
Independentsoft.Msg.Message msgFile = service.GetMessageFile(inboxItems.Items[i].ItemId);
msgFile.Save("c:\\test\\message" + i + ".msg", true);
}
}
catch (ServiceRequestException ex)
{
Console.WriteLine("Error: " + ex.Message);
Console.WriteLine("Error: " + ex.XmlMessage);
Console.Read();
}
catch (WebException ex)
{
Console.WriteLine("Error: " + ex.Message);
Console.Read();
}
}
}
}
它提供了将邮件和其他项保存为Outlook .msg文件的功能。
https://stackoverflow.com/questions/41227743
复制相似问题