Java 驼峰:如何将附件与备选邮件文本(纯文本/html)一起发送
我正试图用下面的代码将邮件附件和备选正文文本一起发送。 将接收邮件客户端配置为HTML正文后,一切正常:邮件文本和附件在邮件客户端(Outlook、Thunderbird)中正确显示 但是,当我切换到纯文本时,附件不显示/不可下载-它似乎被电子邮件客户端“吞没”。 这是正常的行为吗?在这两种情况下,附件是可见的,消息应该是什么样子?非常感谢您的帮助Java 驼峰:如何将附件与备选邮件文本(纯文本/html)一起发送,java,email,apache-camel,email-attachments,Java,Email,Apache Camel,Email Attachments,我正试图用下面的代码将邮件附件和备选正文文本一起发送。 将接收邮件客户端配置为HTML正文后,一切正常:邮件文本和附件在邮件客户端(Outlook、Thunderbird)中正确显示 但是,当我切换到纯文本时,附件不显示/不可下载-它似乎被电子邮件客户端“吞没”。 这是正常的行为吗?在这两种情况下,附件是可见的,消息应该是什么样子?非常感谢您的帮助 @Component public class MyRouteBuilder3 extends RouteBuilder { /********
@Component
public class MyRouteBuilder3 extends RouteBuilder
{
/*****************************************************************************
* Camel (3.4.0)
* @throws Exception
****************************************************************************/
@Override
public void configure() throws Exception
{
from( "direct:mail" )
.doTry()
.setBody( constant( new Invoice( "111111", "9999999999", "13.03.2020")))
.setHeader( "copyOfBody", simple( "${body}" ))
.to( "velocity://templates/template_txt.vm?encoding=utf-8" )
.setHeader( "plaintext", simple( "${body}" ))
.setBody( simple( "${header.copyOfBody}" ))
.to( "velocity://templates/template_html.vm?encoding=utf-8" )
.setHeader( "contentType", constant( "text/html;charset=UTF-8" ))
.setHeader( "subject", simple( "Your invoice" ))
.setHeader( "from", simple( "sender@localhost.localdomain" ))
.setHeader( "to", simple( "receiver@localhost.localdomain" ))
.process( exchange ->
{
AttachmentMessage attMsg = exchange.getIn( AttachmentMessage.class );
attMsg.addAttachment( "invoice.pdf",
new DataHandler( new FileDataSource( new File( "C:/tmp/invoice.pdf"))));
})
.to( "smtp://127.0.0.1:25?debugMode=true&alternativeBodyHeader=plaintext" )
;
}
}