我正在使用EWS从收件箱的电子邮件中单独读取电子邮件正文部分。
我只需要提取回复的电子邮件正文,而不是整个电子邮件正文。
例如
************
A This is good tenant.
Regards,
Test
From:test@gmail.com
To: ----
----------
----------
Hi User, Data has been populated. Please reply with A or R with comments.
Regard
Admin.
************
所以当我阅读上述电子邮件的正文时,我会得到上面提到的整个正文。但我只需要:
************
A This is good tenant.
Regards,
Test
************
只有最新回复的电子邮件正文。
UniqueBody
的这种方法适用于我:
// ensure that username, password, domain and smtpAddress are set
var service = new ExchangeService {
PreAuthenticate = true,
Credentials = new WebCredentials(username, password, domain),
};
service.AutodiscoverUrl(smtpAddress, redirect => true);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, smtpAddress);
var inbox = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox));
var fir = inbox.FindItems(new ItemView(10));
foreach (var ir in fir) {
var msg = EmailMessage.Bind(service, ir.Id, new PropertySet(EmailMessageSchema.UniqueBody));
Console.WriteLine(msg.UniqueBody.Text);
}
对于结果中的任何后续消息,msg.UniqueBody.Text
属性仅包含该消息中新的部分。
请注意,可能有更好的方法可以做到这一点,但这在我的快速测试中有效(针对Exchange Online)。