检索一些电子邮件信息

时间:2012-11-27 21:05:59

标签: c# exchange-server exchangewebservices

我正在尝试从发送到Outlook电子邮件的电子邮件中获取一些信息。我已成功连接到Exchange Server,并且能够从带附件的电子邮件中检索一些信息(我正在跳过没有附件的电子邮件)。

我拥有的内容:我可以检索附件文件名,电子邮件日期和电子邮件主题。

我需要的是什么:我还需要检索发件人姓名和电子邮件。从我所做的,我可以检索电子邮件的正文(用HTML格式),但不能只检索正文(需要Exchange 2013 - Hello MS广告)。

我是C#的新手,今天是我第一次连接到Exchange Server。我从阅读中注意到“查找”在它可以获得的内容方面受到限制,并且我需要绑定邮件以便从电子邮件中获取更多信息。

到目前为止的代码:

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 msg = EmailMessage.Bind ...我需要哪些信息才能获取更多信息?

1 个答案:

答案 0 :(得分: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);