簡體   English   中英

從Lotus Notes解析MIME電子郵件

[英]Parse MIME email from Lotus Notes

我正在嘗試使用.NET Domino互操作來解析Lotus Notes中的MIME電子郵件。 當電子郵件不是MIME格式時,我通過簡單的NotesDocument.GetFirstItem("Body").Text;成功獲取了Body內容NotesDocument.GetFirstItem("Body").Text; 條款。 但是對於MIME,當我嘗試解析正文內容時,我會得到null或空字符串。

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實體。 以下Java邏輯應該幫助您朝着正確的方向:

MIMEEntity mime = sourceDoc.getMIMEEntity(bodyField);
if (mime != null) {
    // If multipart MIME entity
    if (mime.getContentType().equals("multipart")) {
        // Find text/html content of each child entity
        MIMEEntity child1 = mime.getFirstChildEntity();
        while (child1 != null) {
            if (child1.getContentType().contains("text")) {
                html = child1.getContentAsText();
            }
            MIMEEntity child2 = child1.getFirstChildEntity();
            if (child2 == null) {
                child2 = child1.getNextSibling();
                if (child2 == null) {
                    child2 = child1.getParentEntity();
                    if (child2 != null) {
                        child2 = child2.getNextSibling();
                    }
                }
            }
            child1 = child2;
        }
    } else {
        // Not multipart
        html = mime.getContentAsText();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM