1
我想从.NET Domino互操作中解析Lotus Notes的MIME电子邮件。当电子邮件不是MIME格式时,我已成功通过简单的NotesDocument.GetFirstItem("Body").Text;
子句获取正文内容。但是在MIME中,当我试图解析正文内容时,我得到null或空字符串。解析来自Lotus Notes的MIME电子邮件
var session = new NotesSession();
session.Initialize("RadioLotus028");
session.ConvertMime = false;
var db = session.GetDatabase("PRGLNApps01/CZ/RFERL", "mail-in\\SEEurope\\MIA.nsf", false);
if (db == null) throw new ArgumentNullException("cannot load database");
var legnth = db.AllDocuments.Count;
for (int i = 1; i < legnth; i++)
{
NotesDocument doc = db.AllDocuments.GetNthDocument(i);
NotesMIMEEntity bodyMIME = doc.GetMIMEEntity();
NotesStream stream = session.CreateStream();
//bodyMIME.GetContentAsBytes(stream);
//bodyMIME.GetEntityAsText(stream);
bodyMIME.GetContentAsText(stream);
string bodyString = stream.ReadText();
var bodyString2 = stream.Read();
string bodyString3 = bodyMIME.ContentAsText;
var from = doc.GetFirstItem("From").Text;
var subject = doc.GetFirstItem("Subject").Text;
}
有没有人有这个问题的经验?或者如何以HTML或RichfullText或其他方式获取正文内容?
您不测试消息是否包含MIME或正文中的富文本。您确定您在此邮箱中处理的邮件全部是MIME吗?你应该使用doc.hasItem(“$ NoteHasNativeMIME”)来检查。 –
你是对的!这只是代码的一个例子。最终版本包含内容类型之间的切换。所以不同的分支照顾RichText和不同的分支照顾MIME主体。 :)感谢评论,这将节省一些时间给某人。 – Mastenka