2012-11-27 167 views
1

我試圖從發送到Outlook電子郵件的電子郵件中獲取一些信息。我已成功連接到Exchange服務器,並能夠從帶有附件的電子郵件中檢索某些信息(我正在跳過沒有附件的電子郵件)。檢索一些電子郵件信息

我有什麼:我可以檢索附件文件名,電子郵件日期和電子郵件主題。

我需要:我需要檢索發件人姓名和電子郵件也。從我所做的,我可以檢索電子郵件的正文(以HTML格式),但不是僅正文(需要Exchange 2013 - Hello MS廣告)。

我是C#的新手,今天是我第一次連接到Exchange Server。我從閱讀中注意到,「find」在它的獲得方面有限,爲了從電子郵件中獲取更多信息,我需要綁定這個消息。

代碼迄今:

foreach (Item item in findResults.Items) 

       if (item.HasAttachments) // && item.Attachments[0] is FileAttachment) 
       { 
        item.Load(); 
        FileAttachment fileAttachment = item.Attachments[0] as FileAttachment; 
        date = Convert.ToString(item.DateTimeCreated); 
        name = Convert.ToString(fileAttachment.Name); 
        fileAttachment.Load("C:\\test\\" + fileAttachment.Name); 
        Console.WriteLine(name); 
        Console.WriteLine(item.Subject); 
        Console.WriteLine(date); 
       } 

我從這裏的問題是,如果我做EmailMessage味精= EmailMessage.Bind ......我需要爲了攫取更多的信息,哪些信息?

回答

0

已解決 - 用於獲取發件人電子郵件和姓名以及加載附件。

我使用的EmailMessage類(只添加它上面的循環,並增加了變量開頭):

    EmailMessage msg = (EmailMessage)item; 
        senderemail = Convert.ToString(msg.Sender.Address); 
        sendername = Convert.ToString(msg.Sender.Name); 

然後我就可以複製這些在控制檯上:

    Console.WriteLine(senderemail); 
        Console.WriteLine(sendername); 

另外,爲了加載電子郵件的附加信息,我在開始時聲明瞭一個byte []變量,加載附件,將其轉換並將其內容寫入控制檯:

    fileAttachment.Load(); 
        filecontent = fileAttachment.Content; 
        System.Text.Encoding enc = System.Text.Encoding.ASCII; 
        string strFileContent = enc.GetString(filecontent); 
        Console.WriteLine(strFileContent);