gpt4 book ai didi

java - p7s 文件和 javamail

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

我使用此代码读取经过认证的电子邮件中 ​​S/Mime 格式的电子邮件字符串。这是一个片段

InputStream inputStreamObj = new ByteArrayInputStream(message.getBytes());
MimeMessage mimeMessageObj = new MimeMessage(session, inputStreamObj);
Object content = mimeMessageObj.getContent();
if (content instanceof Multipart) {
Multipart multiPart = (Multipart)content;
for (int i = 0; i < multiPart.getCount(); i++) {
BodyPart part = (MimeBodyPart) multiPart.getBodyPart(i);
if (part.getFileName() != null) {
System.out.println("Filename:"+part.getFileName());
} else if (part.getContent() instanceof Multipart) {
System.out.println("Multipart");
//here there is a recursive call to this method
} else if (part.getContent() instanceof String) {
System.out.println("Message text: "+part.getContent());
} else {
System.out.println("NOT RECOGNIZED TYPE");
}
}
}

通过这种方式,我看到:

Message text: <message in html form>
Message text: <message in txt form>
File: daticert.xml
File: postacert.eml

但是这里缺少“smime.p7s”文件

我怎样才能找到这个?在字符串消息(message)中我看到它:

Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"

文件在哪里???

也许我不能使用 MimeMessage 而必须使用 javax.mail.Message?如何转换消息中的文本?

最佳答案

解决了!收到的消息文本包含所有内容( header +正文部分)。管理时,它会“松散” header 部分。在第一条消息文本中添加这些内容后,我现在可以看到所有附件,甚至是 p7s 文件。事实上,该文件使用代码绑定(bind)嵌套到主电子邮件中(打印您可以看到的 txt),但该链接缺少 header 。这样,没有 header ,任何人都无法寻址 p7s 文件。

解决方案是:在txt消息的开头以“名称:值\n”的形式添加 header 。

关于java - p7s 文件和 javamail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298567/

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