Отклоненные письма получают заголовок статуса

Я пытаюсь прочитать заголовок "Статус" отклоненного письма. Этот сайт лучше объясняет, что я пытаюсь...

Исходное письмо состоит из нескольких объектов MultiParts, поэтому я читаю его в коде Java:

 private void test(MimeMessage message) throws IOException, MessagingException {
    if (message.getContent() != null && message.getContent() instanceof Multipart) {
                    Multipart content = (Multipart) message.getContent();
                    for (int i = 0; i < content.getCount(); i++) {
                        BodyPart bodyPart = content.getBodyPart(i);
                        Enumeration headers = bodyPart.getAllHeaders();
                        while(headers.hasMoreElements()){
                            Header header = (Header) headers.nextElement();
                            LOGGER.info("Header: " + header.getName() + " value: " + header.getValue());
                        }
                    }

                }
}

Часть электронной почты, которую я анализирую:

Content-Description: отчет о доставке Content-Type: текст / простой текст; charset=utf-8 Content-Transfer-Encoding: 7 бит

Отчетность-МТА: днс; someLink.com X-Postfix-Queue-ID: EC862F00D0 X-Postfix-Sender: rfc822; receive@email.com Дата прибытия: Ср, 7 августа 2013 13:52:43 +0200 (CEST)

Конечный получатель: rfc822; noexisting@email.com Оригинал-получатель: rfc822; noexisting@email.com Действие: не выполнено Статус: 5.1.1 Удаленный MTA: dns; [somelink.com Диагностический код: smtp; 550-5.1.1 Учетная запись электронной почты, к которой вы пытались обратиться, не существует. Попробуйте 550-5.1.1 дважды проверить адрес электронной почты получателя на наличие опечаток или 550-5.1.1 ненужных пробелов.

В моем журнале я вижу только 3 первых заголовка:

> Header: Content-Description value: Delivery report   
> Header: Content-Type value: text/plain; charset=us-ascii INFO   
> Header: Content-Transfer-Encoding value: 7bit

Кто-нибудь знает почему? Как я могу получить заголовок статуса? Спасибо

1 ответ

Решение

Я не смог найти информацию о статусе в шапке, и я возьму ее из содержимого. Это не элегантное решение, но, по крайней мере, оно работает. Если кто-то найдет лучший, пожалуйста, дайте мне знать!

Java-код:

StringWriter writer = new StringWriter();
                IOUtils.copy(bodyPart.getInputStream(), writer);
                LOGGER.info("Content inputstream: " +  writer.toString());

Журналы:

Содержание входящего потока: Reporting-MTA: днс; srvvie-mx3.styria-multi-media.com X-Postfix-Queue-ID: 2A1A8F00CF X-Postfix-Sender: rfc822; Дата прибытия: пт, 9 августа 2013 11:14:02 +0200 (CEST)

Конечный получатель: rfc822; MAILER-DAEMON@domain.com Оригинал-получатель: rfc822; MAILER-DAEMON@domain.com Действие: не выполнено Статус: 5.1.1 Удаленный MTA: dns; Диагностический код: smtp; 550 5.1.1 Почтовый ящик не существует

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