亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Apache Camel 郵件組件將正文作為附件發送?

為什么 Apache Camel 郵件組件將正文作為附件發送?

守候你守候我 2021-06-29 16:57:03
我正在使用 Apache Camel 2.22.0 并且有一個發送電子郵件的簡單路由(帶有一些屬性引用):public class EmailFailureRoute extends RouteBuilder {@Overridepublic void configure() {    from("seda:mail")        .setHeader("To", simple("{{mail.failure.to}}"))        .setHeader("From", simple("{{mail.failure.from}}"))        .setHeader("Subject", constant("TEST!"))        .to("velocity://templates/failure-mail.vm")        .to("{{mail.smtpServer}}");  }}我希望得到的是一封普通電子郵件,郵件正文中包含來自 Velocity 模板的文本。我實際收到的是一封電子郵件,其中附有來自 Velocity 模板的文本。在 MS Outlook 中看起來像這樣:為什么是附件?如何讓郵件組件將 Velocity 模板的結果直接插入到電子郵件正文中?
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

雖然我仍然不太明白這里發生了什么,但我確實有一個可行的解決方案。我可以更改電子郵件的內容類型的唯一方法是在路由到郵件端點之前在 Camel 消息上設置“Content-Type”標頭:

.setHeader("Content-Type", constant("text/plain"))

我什至無法通過使用郵件組件上的“contentType”查詢參數來更改內容類型。


查看完整回答
反對 回復 2021-07-07
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

你最近怎么樣,經歷了類似的事情并通過以下方式解決了我希望它會有所幫助


@Handler

public void attachmentValidate(@ExchangeProperty("MAIL_ATTACHMENTS") List<Attachment> attachments,

        Exchange exchange) throws Exception {

    Message in = exchange.getIn();

    if (attachments != null) {

        for (Attachment attachment : attachments) {

            FileNameMap fileNameMap = URLConnection.getFileNameMap();

            String mimeType = fileNameMap.getContentTypeFor(attachment.getName()

                    .substring(attachment.getName().indexOf('.'), attachment.getName().length()));

            if (StringUtils.isEmpty(mimeType)) {

                mimeType = "application/octet-stream";

            }

            byte[] decoded = Base64.getDecoder().decode(attachment.getValue());

            in.addAttachment(attachment.getName(), new DataHandler(new ByteArrayDataSource(decoded, mimeType)));

        }

    }

    exchange.setProperty("MAIL_ATTACHMENTS", attachments);

}


查看完整回答
反對 回復 2021-07-07
  • 2 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號