Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Save mail to msg file using EWS API

I'm using Exchange Web Services Managed API 1.1 to connect to Exchange server 2010 and then find out new emails received. Now I want to save a copy of the .msg file to a folder on the disk.

I do not want to use any paid third party to integrate.

Any help will be appreciated.

like image 233
Bhanu Prakash Avatar asked Jun 09 '11 12:06

Bhanu Prakash


People also ask

How do I send an email with EWS?

Send a draft email message by using EWSFirst use the GetItem operation to retrieve the email message to send. Then use the SendItem operation to send the email message to recipients and save it in the Sent Items folder.

What is EWS API?

Exchange Web Services (EWS) is an application program interface (API) that allows programmers to access Microsoft Exchange items such as calendars, contacts and email.


1 Answers

If you are happy to save into the .eml format instead, it can be done very easily just using EWS and no third party libraries. The .eml file will contain all the same information and can be opened by Outlook in the same way as .msg (and also by other programs).

message.Load(new PropertySet(ItemSchema.MimeContent));  MimeContent mc = message.MimeContent; FileStream fs = new FileStream("c:\test.eml", FileMode.Create);  fs.Write(mc.Content, 0, mc.Content.Length); fs.Close(); 

Cleaned up code:

message.Load(new PropertySet(ItemSchema.MimeContent)); var mimeContent = message.MimeContent;  using (var fileStream = new FileStream(@"C:\Test.eml", FileMode.Create)) {     fileStream.Write(mimeContent.Content, 0, mimeContent.Content.Length); } 
like image 111
Colin Pickard Avatar answered Oct 25 '22 16:10

Colin Pickard