Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
p7s文件和javamail_Java_Jakarta Mail - Fatal编程技术网

p7s文件和javamail

p7s文件和javamail,java,jakarta-mail,Java,Jakarta Mail,我使用此代码在认证电子邮件中读取S/Mime格式的电子邮件字符串。这是一个片段 InputStream inputStreamObj = new ByteArrayInputStream(message.getBytes()); MimeMessage mimeMessageObj = new MimeMessage(session, inputStreamObj); Object content = mimeMessageObj.getContent(); if (content instan

我使用此代码在认证电子邮件中读取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");
      }
    }
}
档案在哪里

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

已解决! 收到的消息文本包含所有(标题+正文部分)。管理时,它会“松散”标题部分。将这些添加到第一条消息文本中,我现在可以看到所有附件,甚至p7s文件。 实际上,该文件使用代码绑定(打印您可以看到的txt)嵌套到主电子邮件中,但是该链接缺少标题。通过这种方式,在没有头的情况下,没有人可以寻址p7s文件


解决方案是:在txt消息的开头添加格式为“name:value\n”的标题。

一秒钟,我不清楚。您想要打印p7s的内容还是想要一个“p7s文件”?我有一个电子邮件的文本表示(格式正确),并将其加载到mimessage对象中。从现在起,我需要提取所有附加文件,甚至.p7s文件。嗯,我已经通过获取bodyPart头getHeader(“内容处置”)[0]从inputStream中提取了字节。现在让我们看看我们能用它做些什么。毫无疑问,你没有向我们展示的代码中有错误。有关如何处理消息的所有部分,请参见。
Message text: <message in html form>
Message text: <message in txt form>
File: daticert.xml
File: postacert.eml
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"