日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java mail模板发送高级邮件(二)

發布時間:2024/3/26 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java mail模板发送高级邮件(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java mail模板發送高級郵件

一、見賢思齊焉

??我們之前自己發的郵件,大家又沒有感覺比較丑呢???毫無美感可言,只有空洞的文字,甚至連基礎的排版都沒有。如果這是給女娃表白的郵件,那我只能陪你一起和頓悶酒咯!!!

??郵箱收件箱中翻一翻,幾乎每一條郵件都比我們的好看一倍、兩倍、甚至好多倍!!!見賢思齊焉!此時此刻,有沒有一種想要學習的沖動呢!!!下面是Twitter的一封郵件,僅供參考。

二、HTML格式的郵件

??郵件內容主要分為兩種,HTML格式和純文本。兩種各有優劣,兩種各有用途吧,在這里不必深究。一般開發網站還是建議使用HTML格式,因為要注意用戶體驗感,如果太丑了的話,哪個用戶還愿意使用你的產品呢?

??因此誕生了郵件模板,純html格式,CSS采用行內樣式。借鑒了一個大牛寫的郵件樣式,感興趣的可以自己修改或者重寫。(注意:文件格式為:.ftl

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cAOldLmf-1574782034470)(…/images/HTML郵件模板.png)]

<body style="color: #666; font-size: 14px; font-family: 'Open Sans',Helvetica,Arial,sans-serif;"> <div class="box-content" style="width: 80%; margin: 20px auto; max-width: 800px; min-width: 600px;"><div class="header-tip" style="font-size: 12px; color: #aaa; text-align: right; padding-right: 25px; padding-bottom: 10px;">Confidential - Scale Alarm Use Only</div><div class="info-top" style="padding: 15px 25px; border-top-left-radius: 10px; border-top-right-radius: 10px; background: ${bgColor}; color: #fff; overflow: hidden; line-height: 32px;"><img src="cid:icon-alarm" style="float: left; margin: 0 10px 0 0; width: 32px;" /><div style="color:#010e07"><strong>服務實例水平伸縮通知</strong></div></div><div class="info-wrap" style="border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; border:1px solid #ddd; overflow: hidden; padding: 15px 15px 20px;"><div class="tips" style="padding:15px;"><p style=" list-style: 160%; margin: 10px 0;">Hi,</p><p style=" list-style: 160%; margin: 10px 0;">${First}</p></div><div class="time" style="text-align: right; color: #999; padding: 0 15px 15px;">${Second}</div><br><table class="list" style="width: 100%; border-collapse: collapse; border-top:1px solid #eee; font-size:12px;"><thead><tr style=" background: #fafafa; color: #333; border-bottom: 1px solid #eee;">${Third}</tr></thead><tbody>${Fourth}</tbody></table></div> </div> </body>

三、生成動態郵件

??模板寫好了,數據還需要填充,生成動態模板郵件才是王道!!!如上圖的模板照片中的第?個就是動態生成的數據,其中在模板中表述為${name}表示填充變量名,進行郵件生成時就可以進行相應的填充。

1、所需依賴

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency><dependency><groupId>com.quhaodian</groupId><artifactId>freemaker</artifactId><version>1.8.1</version></dependency>

2、添加所需照片

??在郵件中添加照片,不是像寫普通網頁一樣,加個相對路徑就可以顯示了!!!

  • 設置圖片id 傳輸圖片
//1、讀取文件路徑String imagePath = MailUtils.class.getResource("/mail/images/cjdx.jpg").getPath();//2、創建圖片容器部分 MimeBodyPart image = new MimeBodyPart();//3、讀取源文件流并處理DataHandler dh = new DataHandler(new FileDataSource(imagePath));//圖片路徑 //4、圖片信息放入容器image.setDataHandler(dh);//5、創建圖片的一個ID表示用于顯示在郵件中顯示 image.setContentID("icon-alarm");//6、加入主容器部分mainPart.addBodyPart(image);
  • 將圖片設置為外鏈

??圖床api,該網站可把你的圖片轉換至各大廠商的圖床,直接獲取直鏈。號稱無限外鏈、永久免費。建議照片上傳上去后,還要留本地備份,畢竟誰也說不準他哪天就不見了!!!

3、轉換模板

public static String transforHtml(Map<String,String> dataMap, String templateName) {//創建配置實例 Configuration configuration = new Configuration(Configuration.VERSION_2_3_23);//設置編碼configuration.setDefaultEncoding("UTF-8");//ftl模板文件統一放至 com.lun.template 包下面File file = new ile(MailUtils.class.getClassLoader().getResource("mail/").getFile());configuration.setDirectoryForTemplateLoading(file);//獲取模板 Template template = configuration.getTemplate(templateName);//將模板和數據模型合并生成文件StringWriter stringWriter = new StringWriter();//生成htmltemplate.process(dataMap, stringWriter);return stringWriter.toString(); }

4、發送HTML郵件

??其中map就是上文提到的轉換參數,key中是${name}中的name, value中就是插入模板中的值,由此實現動態生成模板。

//建立郵件對象MimeMessage message = new MimeMessage(session);//設置郵件的發件人、收件人、主題//附帶發件人名字//設置自定義發件人昵稱 String nickFrom = MimeUtility.encodeText("職能搜索平臺"); String nickTo = MimeUtility.encodeText("酷酷的用戶"); //設置發信人 message.setFrom(new InternetAddress(nickFrom+"<524235428@qq.com>"));Address []tos = {new InternetAddress(nickTo+"<couragehe135@163.com>"),new InternetAddress(nickTo+"<couragehe135@163.com>")}; message.setRecipients(Message.RecipientType.TO, tos);message.setSubject("多發出!!!");Map<String,String> map= new HashMap<String,String>();map.put("bgColor", "#f40");map.put("First", "第一個");map.put("Second", "第二個");map.put("Third", "第三個");map.put("Fourth", "第四個");String mailBody = transforHtml(map, "mail.ftl");// String mailBody = TemplateFactory.genrateHtmlFromFtl(templateName, map);Multipart mainPart = new MimeMultipart();// 創建一個包含HTML內容的MimeBodyPartBodyPart html = new MimeBodyPart();html.setContent(mailBody, "text/html; charset=utf-8");mainPart.addBodyPart(html);MailUtils.setImage(mainPart);// 4、將MiniMultipart對象設置為郵件內容message.setContent(mainPart);message.saveChanges();message.setSentDate(new Date());message.saveChanges();//發送郵件Transport.send(message);

參考:https://blog.csdn.net/ll837448792/article/details/93620939

參考:http://www.shaoqun.com/a/89502.html

總結

以上是生活随笔為你收集整理的Java mail模板发送高级邮件(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。