Почтовый парсинг вложения через mime4j

Я использую маленький Java smtp библиотека (http://code.google.com/p/subethasmtp/), этим я должен проанализировать входящие электронные письма в отдельных компонентах то есть тело, вложения и т.д.

Я пытаюсь использовать mime4j, но документация предполагает, что mime4j может только дать уведомление о событии или маркерное уведомление и ничто иное. Для снятия тела и вложений и т.д. я должен был использовать свою собственную логику в обработчиках событий. Мое наблюдение корректно?

Если да затем, как я могу использовать mime4j для использования для моего требования. Предложите.

Мне плохо нужен подход, который берет в smtp потоке данных и возвращает меня с массивом ссылок вложения, или потоки в полностью проанализированном формируются в Java. Помогите.

Заранее спасибо

Ashish Sharma

5
задан Ashish Sharma 27 April 2010 в 19:09
поделиться

1 ответ

Mime4j определенно может делать то, что вам нужно. Создайте подкласс org.apache.james.mime4j.message.SimpleContentHandler и реализуйте метод bodyDecoded. Затем передайте этот подкласс в экземпляр MimeStreamParser. Вы увидите, что bodyDecoded вызывается один раз для тела или вложения, а поток, который он дает, содержит данные с уже выполненным декодированием Base64 или Quoted-Printable.

Если вам в целом не нравятся API-интерфейсы на основе событий, вы можете попробовать функциональность, более похожую на DOM, предоставляемую через класс org.apache.james.mime4j.message.Message. Вы можете вызвать Message.getBody (), а затем посмотреть, является ли то, что он вам возвращает, экземпляром Multipart, TextBody, BinaryBody и т. Д. Если Multipart, то вы можете вызвать Multipart.getBodyParts для рекурсии в подчасти.

9
ответ дан 13 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: