Отклоненные письма получают заголовок статуса
Я пытаюсь прочитать заголовок "Статус" отклоненного письма. Этот сайт лучше объясняет, что я пытаюсь...
Исходное письмо состоит из нескольких объектов 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 Почтовый ящик не существует