获取outlook电子邮件C#net中最顶层的线程
是否可以只获取outlook电子邮件的最顶端线程 假设电子邮件看起来像这样 你好,约翰,获取outlook电子邮件C#net中最顶层的线程,c#,outlook,interop,C#,Outlook,Interop,是否可以只获取outlook电子邮件的最顶端线程 假设电子邮件看起来像这样 你好,约翰, 是的,我们可以做到!!我希望问候, 此处签名 发件人:John Doe发送日期:2015年11月4日星期三上午6:02 致: to@email.com 抄送:CC@email.com 主题:如何得到这个? 嗨,鲍勃, 什么东西 我只需要得到粗体文本。可能吗?我收到电子邮件的代码: OutLook.Application oApp; OutLook._NameSpac
是的,我们可以做到!!我希望
问候,
此处签名
发件人:John Doe
发送日期:2015年11月4日星期三上午6:02
致: to@email.com
抄送:CC@email.com
主题:如何得到这个?
嗨,鲍勃,
什么东西 我只需要得到粗体文本。可能吗?我收到电子邮件的代码:
OutLook.Application oApp;
OutLook._NameSpace oNS;
OutLook.MAPIFolder oFolder;
OutLook._Explorer oExp;
try
{
oApp = new OutLook.Application();
oNS = (OutLook._NameSpace)oApp.GetNamespace("MAPI");
oFolder = oNS.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderInbox);
oExp = oFolder.GetExplorer(false);
oNS.Logon(Missing.Value, Missing.Value, false, true);
foreach (OutLook.MailItem mail in oFolder.Items.Restrict("[UnRead] = true"))
{
var subject = mail.Subject;
var body = mail.Body; //But I only need the bolded text and not the entire thread...
var x = mail.HTMLBody;
var y = mail.RTFBody;
var userName = string.Empty;
var attachment = mail.Attachments;
OutLook.ExchangeUser exUser = mail.Sender.GetExchangeUser();
if (exUser != null)
{
userName = exUser.PrimarySmtpAddress;
}
else
{
userName = mail.SenderEmailAddress;
}
mail.UnRead = false;
mail.Save();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
oApp = null;
oNS = null;
oFolder = null;
oExp = null;
}
您可以尝试寻找下一条消息已经开始的线索,如标题信息或水平规则,但我认为没有API,因为大多数邮件客户端只是将原始消息的正文复制到回复中,并在顶部添加信息,没有通用的消息分隔符来标识正文中的单个消息,它完全依赖于创建消息的客户端。。。在我的研究中,我发现并认为会话课是关键,但事实并非如此。。。我希望电子邮件线程是在一个数组或什么。。。所以我想不是。我也在寻找那条横线,但它只有在电子邮件以HTML而不是AsPlainText发送时才出现,那条线被替换为----原始文本----或其他什么。。。