Как получить имя файла всех вложений электронной почты?

1

Я пытаюсь получить имя файла всех прикрепленных писем с помощью java и imap.My код:

MimeMessage msg = (MimeMessage) messages[i];
String fileName = msg.getFileName();
System.out.println("The file name of this attachment is " + fileName);

но он печатает нуль всегда, даже если электронная почта содержит вложение. Я видел разные коды на SO, но никто не работал... и я не знаю, что делать, если вложение больше одного.
PS: Я хочу только получить имя файла и не хочу загружать вложения.

Теги:
imap
attachment

1 ответ

1
Лучший ответ

Во-первых, чтобы определить, может ли сообщение содержать вложения, используя следующий код:

// suppose 'message' is an object of type Message
String contentType = message.getContentType();

if (contentType.contains("multipart")) {
    // this message may contain attachment
}

Затем мы должны перебирать каждую часть в multipart, чтобы определить, какая часть содержит вложение, следующим образом:

Multipart multiPart = (Multipart) message.getContent();

for (int i = 0; i < multiPart.getCount(); i++) {
    MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(i);
    if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
        // this part is attachment
        // code to save attachment...
    }
}

И чтобы сохранить файл, вы можете сделать следующее:

part.saveFile("D:/Attachment/" + part.getFileName());

Источник

  • 0
    Спасибо !! это сработало ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню