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

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

如何將郵件中的 base64 圖像附加到 JavaMail 和 MimeMessageHelper?

如何將郵件中的 base64 圖像附加到 JavaMail 和 MimeMessageHelper?

慕的地6264312 2021-10-27 19:14:52
我正在嘗試發送帶有圖像附件的 Mime 電子郵件,但我知道如何執行此操作。我嘗試了在線解決方案,但沒有奏效。我會得到編碼的圖像,需要解碼并附在郵件中。這是我的代碼public class SendEmail{public static void main( String[] args ) throws javax.mail.MessagingException, IOException{      String value= "Wyk+HjAxHTAyNzg3MDUdODQwHTAxOR0wMDAwMDAwMDAwMDAwMDAd" +            "RkRFQh0wMDAwMDAwHTA0MB0dMS8xHTUwLjVMQh1OHVcgMzR0aCBTdHJlZXQdQ" +            "XVzdGluHVRYHSAeMDYdMTBaR0QwMDQdMTFaUmVjaXBpZW50IENvbXBhbnkgTmFt" +            "ZR0xMlo5MDEyNjM3OTA2HTE0WioqVEVTVCBMQUJFTCAtIERPIE5PVCBTSElQKio" +            "dMjNaTh0yMlocWR0yMFogHDAdMjZaNjEzMxwdHgQ=";           JavaMailSender mailSender = getJavaMailSender();    MimeMessage mimeMessage = mailSender.createMimeMessage();    MimeMessageHelper helper;    Map<String,Object> map = new HashMap<>();    try{        helper = new MimeMessageHelper(mimeMessage, true, "utf-8");        String sendTo = "[email protected]";        String htmlMsg = "<h1> hello </h1>";        mimeMessage.setContent(htmlMsg, "text/html");        // add attachment encode in base64        byte[] decodedImg  Base64.decodeBase64(value);        // dont know how to attache the decode img         helper.setTo(sendTo);        helper.setSubject("Subject");        mailSender.send(mimeMessage);    } catch (MessagingException e) {        e.printStackTrace();    }}
查看完整描述

3 回答

?
青春有我

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

嘗試:


helper.addAttachment("MyImageName.jpg", new ByteArrayResource(value.getBytes()));

但請閱讀:從代碼來看,您似乎已經對圖像進行了編碼?!爸怠彼坪跏?Base64 格式。你不應該處理它,因為它是為你完成的。


// you can attach a file directly to the helper

FileSystemResource file = new FileSystemResource(new File("image_file.jpg"));

helper.addAttachment("MyImageName.jpg", file);

如果附件不是磁盤上的文件,您可以使用:


helper.addAttachment("MyImageName.jpg", new ByteArrayResource(IOUtils.toByteArray(attachment)));

如果這是一個輸入流或這個:


helper.addAttachment("MyImageName.jpg", new ByteArrayResource(value.getBytes()));


查看完整回答
反對 回復 2021-10-27
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

通過波紋管代碼修改代碼后,我的問題解決了。


value= value.replaceFirst("^data:image/[^;]*;base64,?", "");

byte[] bytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(value);

helper.addAttachment("MyImageName.jpg", new ByteArrayResource(bytes));


查看完整回答
反對 回復 2021-10-27
  • 3 回答
  • 0 關注
  • 335 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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