Spring Framework, получайте входящие электронные письма с вложениями с помощью IMAP

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

0
0
326
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя почтовую платформу 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.

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

Спасибо. Как получить message, указанный в вашем коде?

Awordes 08.09.2018 16:21

Это другой вопрос! В этой теме вы можете найти свой ответ. stackoverflow.com/questions/61176/…

Jalal Sajadi 08.09.2018 21:08

Другие вопросы по теме