" />

как правильно получить заголовки входящих сообщений с помощью интеграции пружин

java spring spring-integration javamail

1000 просмотра

1 ответ

52232 Репутация автора

Я получаю письмо с весны, с очень простой сценарий до сих пор

ApplicationContext ac = new ClassPathXmlApplicationContext("imap.xml");
DirectChannel inputChannel = ac.getBean("receiveChannel", DirectChannel.class);
inputChannel.subscribe(message -> {
    System.out.println(message.getHeaders());
    System.out.println(message.getPayload());

    MessageHeaders headers = message.getHeaders();
    String from = (String) headers.get("mail_from");
});

В соответствии с документацией я думал, что заголовки будут анализироваться автоматически, но заголовки, которые я получаю с первым System.out.println();, просто

{id=c65f55aa-c611-71ee-c56d-6bf13c6f71d0, timestamp=1468869891279}

Второй выход (для getPayload())

org.springframework.integration.mail.AbstractMailReceiver$IntegrationMimeMessage@6af5615d

fromвыходы null...

Затем я попытался использовать MailToStringTransformer

MailToStringTransformer a = transformer();
    a.setCharset("utf-8");
System.out.println(a.transform(message));

Который выводит полезную нагрузку и все заголовки, которые я ожидал, но (естественно) в виде строки.

Что мне нужно сделать, чтобы получить заголовки сообщений и текст в объекте?

Автор: chris p bacon Источник Размещён: 18.07.2016 07:44

Ответы (1)


1 плюс

74765 Репутация автора

Решение

Не уверен, на какую документацию вы ссылаетесь, но текущая 4.3версия имеет следующее:

По умолчанию полезная нагрузка сообщений, создаваемых входящими адаптерами, является необработанной MimeMessage; Вы можете опросить заголовки и контент, используя этот объект. Начиная с версии 4.3, вы можете предоставить a HeaderMapper<MimeMessage>для сопоставления заголовков MessageHeaders; для удобства DefaultMailHeaderMapperдля этой цели предоставляется.

И чуть ниже:

Когда вы не предоставляете отображение заголовка, полезной нагрузкой сообщения является MimeMessage, представленное javax.mail. Структура обеспечивает MailToStringTransformer...

Если вам нужна некоторая настройка отображения, вы всегда можете предоставить собственную HeaderMapper<MimeMessage>реализацию или DefaultMailHeaderMapperрасширение.

Автор: Artem Bilan Размещён: 18.07.2016 08:17
Вопросы из категории :
32x32