gpt4 book ai didi

java - 解析 'multipart/alternative' 内容类型

转载 作者:行者123 更新时间:2023-11-30 11:45:14 27 4
gpt4 key购买 nike

我正在使用 javamail api 从收件箱文件夹中获取未读邮件,问题是我得到了奇怪的内容类型 'multipart/alternative'当我调用Message.getContentType() .
另外,当我将消息内容(从 Object )向下转换为类 Multipart 时我得到一个异常(exception)

Exception in thread "main" java.lang.classCastException: com.sun.mail.imap.IMAPInputStream cannot be cast to javax.mail.Multipart at............

我只是想获取邮件的内容并将其存储在数据库中。

        subject  = messages[j].getSubject();                                
System.out.println(messages[j].getContentType());
if(messages[j].getContent() instanceof Multipart)
{
Multipart mime = (Multipart) messages[j].getContent();

for (int i = 0; i < mime.getCount(); i++)
{
BodyPart part = mime.getBodyPart(i);
content += part.getContent().toString();
}
}

谢谢。

最佳答案

Multiplart/alternative 并不奇怪;事实上,这很常见。电子邮件客户端通常使用它来创建同一消息的两个版本,一个是纯文本,另一个是 HTML。首先,您的电子邮件客户端必须检测到邮件是多部分/替代邮件,它可以通过在标题部分找到这些标题来做到这一点:

MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=some-boundary

其次,它必须解析每个可选的正文部分,检查它们的 header 以查看它想要处理的(或多个)部分,然后执行此操作。

--some-boundary
Content-Type: text/plain

...The plain text version of the email goes here...

--some-boundary
Content-Type: text/html

<html>...The html version of the content goes here...</html>

--some-boundary--

关于java - 解析 'multipart/alternative' 内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414035/

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