Spring Framework, получать входящие письма с вложениями, используя IMAP - PullRequest
0 голосов
/ 08 сентября 2018

Используя эту ссылку, я не мог понять, как получать входящие письма с вложениями. Например, почта foo@bar.com получает письмо, к которому прикреплен файл baz.csv . Как прочитать содержимое файла?
Спасибо.

1 Ответ

0 голосов
/ 08 сентября 2018

Используя почтовую платформу java, вы можете получать вложения электронной почты:

Multipart multipart = (Multipart) message.getContent();
List<byte[]> attachments = new ArrayList<>();
for (int i = 0; i < multipart.getCount(); i++) {
    BodyPart bodyPart = multipart.getBodyPart(i);
    if (Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition()) && bodyPart.getFileName()!=null) {
        InputStream is = bodyPart.getInputStream();
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        byte[] buf = new byte[4096];
        int bytesRead;
        while ((bytesRead = is.read(buf)) != -1) {
            os.write(buf, 0, bytesRead);
        }
        os.close();
        attachments.add(os.toByteArray());
    }
}

message является объектом типа javax.mail.Message.

Теперь у вас есть список байтов [], каждый из которых является одним из ваших почтовых вложений. Вы можете легко преобразовать байт [] в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...