C# 如何在从EWS获取电子邮件时获取MimeContent?
我正在我的应用程序中使用EWS服务。此时,我想获取一封现有的电子邮件,然后将其转换为文件。我正在为此使用以下代码C# 如何在从EWS获取电子邮件时获取MimeContent?,c#,email,exchangewebservices,C#,Email,Exchangewebservices,我正在我的应用程序中使用EWS服务。此时,我想获取一封现有的电子邮件,然后将其转换为文件。我正在为此使用以下代码 private ExchangeService _service = null; internal EWSClient() { _service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); _service.Credentials = new WebCredentials(HandlerSet
private ExchangeService _service = null;
internal EWSClient()
{
_service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
_service.Credentials = new WebCredentials(HandlerSettings.MailReceiverLogin, HandlerSettings.MailReceiverPassword);
_service.Url = new Uri(HandlerSettings.MailReceiverServer);
}
要获取电子邮件,我使用Bind方法
var completeEmailMessage = EmailMessage.Bind(_service, emailId);
var mimeContent = completeEmailMessage.MimeContent;
string tempFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".eml");
using (var fileStream = new FileStream(tempFile, FileMode.Create))
{
fileStream.Write(mimeContent.Content, 0, mimeContent.Content.Length);
}
在这里,我得到的异常是completeEmailMessage.MimeContent;是空的
我应该使用哪种方法来获取包含MimeContent的完整电子邮件?您应该创建一个PropertySet并将MimeContent添加为要加载的属性,然后将其指定为Bind eg的重载属性
PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
psPropSet.Add(ItemSchema.MimeContent);
var completeEmailMessage = EmailMessage.Bind(_service, emailId, psPropSet);
var mimeContent = completeEmailMessage.MimeContent;
string tempFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".eml");
using (var fileStream = new FileStream(tempFile, FileMode.Create))
{
fileStream.Write(mimeContent.Content, 0, mimeContent.Content.Length);
}