Поэтому я интегрировал Spring Integration для получения писем, и все работает нормально.
Я пытаюсь преобразовать полезную нагрузку, которая является байтовым массивом, в строку.Вывод был разделен на необработанные разделы.
@ServiceActivator(inputChannel="emailChannel")
public void handleMessage(Message message, @Header("campaign_id") String campaign_id, @Header("tenant_identifier") String tenant_identifier) {
try {
TenantContext.setTenantId(tenant_identifier);
emailCampaignService.recieveMailMessage(message, campaign_id);
} catch (Exception e) {
log.error("RecieveMailException{0}", e.getMessage());
}finally {
TenantContext.clearTenantId();
}
System.out.println(" campaign_id: " + campaign_id );
}
Я пытаюсь получить доступ к содержимому писем и вложениям, но безуспешно.Я считаю, что это как-то связано с полезной нагрузкой сообщения.
Теперь ImapAdapter выглядит следующим образом:
private IntegrationFlow createImapAdapter (Строковый протокол, Строковый хост, Целочисленный порт, Строка inboxFolder, Строка, имя пользователя, Строкапароль, длинный идентификатор кампании, String tenantIdenifier) {IntegrationFlow flow = IntegrationFlows .from (Mail.imapInboundAdapter (imapUrl (протокол, хост, порт, inboxFolder, имя пользователя, пароль)) .javaMailProperties (p -> p.put ("mail.debug", "false")) .searchTermStrategy ((supportFlags, папка) -> {Flags flags = new Flags (Flags.Flag.SEEN); вернуть новый FlagTerm (flags, false);}) .userFlag ("CLC") //требуется для тестового сервера SI - не требуется, если сервер поддерживает / SEEN .headerMapper (новый DefaultMailHeaderMapper ()), e -> e.autoStartup (true) .poller (p -> p.fixedDelay (1000))) .enrichHeaders (s)-> {s.header ("campaign_id", новый StaticHeaderValueMessageProcessor (campaignId.toString ())); s.header ("tenant_identifier", новый StaticHeaderValueMessageProcessor (tenantIdenifie)р));}) .channel ("emailChannel") .get ();
return flow;
}
, и содержимое сообщения имеет следующий формат (пример):
- 000000000000f8ac18058cc6e3b0 Тип содержимого: text /равнина;charset = "UTF-8"
это содержимое, которое я хочу получить
- 000000000000f8ac18058cc6e3b0 Content-Type: text / html;charset = "UTF-8"
это содержимое, которое я хочу получить
- 000000000000f8ac18058cc6e3b0 -