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