gpt4 book ai didi

c# - 从 Lotus Notes 解析 MIME 电子邮件

转载 作者:太空宇宙 更新时间:2023-11-03 23:11:55 24 4
gpt4 key购买 nike

我正在尝试使用 .NET Domino 互操作来解析来自 Lotus Notes 的 MIME 电子邮件。当电子邮件不是 MIME 格式时,我已经通过简单的 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();
}
}

关于c# - 从 Lotus Notes 解析 MIME 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com