файл p7s и javamail - PullRequest
       7

файл p7s и javamail

1 голос
/ 22 марта 2019

Я использую этот код для чтения строки электронной почты в формате 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"

Как я могу найти это?В строковом сообщении (сообщении) я вижу его:

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

Где находится файл ???

Может быть, я не могу использовать MimeMessage, и я должен использовать javax.mail.Message?И как я могу конвертировать текст в сообщении?

1 Ответ

1 голос
/ 25 марта 2019

Решено! Полученный текст сообщения содержит все (заголовки + bodypart). Когда удалось, он "потерял" части заголовков. Добавив их в первый текст сообщения, я теперь вижу все вложения, даже файл p7s. Фактически, этот файл вложен в основное электронное письмо с использованием привязки кода (печатая текст, который вы можете увидеть), но эта ссылка страдает отсутствующими заголовками. Таким образом, без заголовков никто не может обратиться к файлу p7s.

Решение: добавить заголовки в форме "имя: значение \ n" в начале txt-сообщения.

...