我正在尝试从发送到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 ...我需要哪些信息才能获取更多信息?
答案 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);