2016-05-31 1 views
0

私のアプリケーションでEWSサービスを使用しています。ポイントで私は、既存の電子メールを取得し、ファイルに変換する必要があります。私はこれに次のコードを使用しています。EWSからEメールをフェッチする際にMimeContentを取得するには?

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); 
} 

To Betchメソッドを使用します。

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を持つ完全な電子メールを取得するにはどの方法を使用しますか?

答えて

0

あなたは、プロパティセットを作成してロードを指定するプロパティとしてMIMEContentを追加する必要があることをバインドなどのための過負荷特性として

 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); 
     } 
関連する問題