這是很久之前的代碼了,最近需要使用了,了就記錄一下。
maven:
<code><</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>groupId</code><code>>com.sun.mail</</code><code>groupId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>javax.mail</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.5.5</</code><code>version</code><code>></code>
<code></</code><code>dependency</code><code>></code>
spring配置:
<code><!-- 郵件 --></code>
<code><</code><code>bean</code> <code>id</code><code>=</code><code>"baojingMailSender"</code> <code>class</code><code>=</code><code>"org.springframework.mail.javamail.JavaMailSenderImpl"</code><code>></code>
<code> </code><code><!-- 伺服器 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"host"</code> <code>value</code><code>=</code><code>"#{configproperties['baojing.mail.host']}"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"protocol"</code> <code>value</code><code>=</code><code>"#{configproperties['baojing.mail.protocol']}"</code><code>></</code><code>property</code><code>></code>
<code> </code><code><!-- 端口号 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"port"</code> <code>value</code><code>=</code><code>"#{configproperties['baojing.mail.port']}"</code> <code>/></code>
<code> </code><code><!-- 使用者名 --></code>
<code> </code><code><!-- <property name="username" value="#{configproperties['baojing.mail.username']}" /> --></code>
<code> </code><code><!-- 密碼 --></code>
<code> </code><code><!-- <property name="password" value="#{configproperties['baojing.mail.password']}" /> --></code>
<code> </code><code><!-- SMTP伺服器驗證 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"javaMailProperties"</code><code>></code>
<code> </code><code><</code><code>props</code><code>></code>
<code> </code><code><!-- 驗證身份 --></code>
<code> </code><code><</code><code>prop</code> <code>key</code><code>=</code><code>"mail.smtp.auth"</code><code>>{configproperties['baojing.mail.smtp.auth']}</</code><code>prop</code><code>></code>
<code> </code><code><</code><code>prop</code> <code>key</code><code>=</code><code>"mail.smtp.timeout"</code><code>>#{configproperties['baojing.mail.smtp.timeout']}</</code><code>prop</code><code>></code>
<code> </code><code></</code><code>props</code><code>></code>
<code> </code><code></</code><code>property</code><code>></code>
<code></</code><code>bean</code><code>></code>
配置:
<code>baojing.mail.host = mail2-</code><code>in</code><code>.XXXX.com</code>
<code>baojing.mail.port = 25</code>
<code>baojing.mail.protocol = smtp</code>
<code>baojing.mail.username = </code><code>""</code>
<code>baojing.mail.password = </code><code>""</code>
<code>baojing.mail.smtp.auth = </code><code>false</code>
<code>baojing.mail.smtp.timeout = 25000</code>
代碼:
<code>@Autowired</code>
<code>@Qualifier</code><code>(value=</code><code>"baojingMailSender"</code><code>)</code>
<code>private</code> <code>JavaMailSender baojingMailSender;</code>
<code>/**</code>
<code> </code><code>* 發郵件</code>
<code> </code><code>* **/</code>
<code>@SuppressWarnings</code><code>(</code><code>"static-access"</code><code>)</code>
<code>public</code> <code>void</code> <code>sendMail(</code><code>final</code> <code>Map<String, Map<String, String>> message){</code>
<code> </code><code>Map<String, String> dayDiffMap = message.get(</code><code>"day"</code><code>);</code>
<code> </code><code>Map<String, String> hourDiffMap = message.get(</code><code>"hour"</code><code>);</code>
<code> </code><code>Map<String, String> defaultMap = </code><code>new</code> <code>HashMap<String, String>();</code>
<code> </code><code>defaultMap.put(</code><code>"ratio"</code><code>, </code><code>"0"</code><code>);</code>
<code> </code><code>defaultMap.put(</code><code>"diffCount"</code><code>, </code><code>"0"</code><code>);</code>
<code> </code><code>defaultMap.put(</code><code>"totleCount"</code><code>, </code><code>"0"</code><code>);</code>
<code> </code><code>defaultMap.put(</code><code>"todayFile"</code><code>, </code><code>"0"</code><code>);</code>
<code> </code><code>defaultMap.put(</code><code>"diffFile"</code><code>, </code><code>"0"</code><code>);</code>
<code> </code><code>//避免空指向</code>
<code> </code><code>if</code> <code>(dayDiffMap == </code><code>null</code> <code>|| dayDiffMap.isEmpty()) {</code>
<code> </code><code>dayDiffMap = defaultMap;</code>
<code> </code><code>}</code>
<code> </code><code>if</code> <code>(hourDiffMap == </code><code>null</code> <code>|| hourDiffMap.isEmpty() ) {</code>
<code> </code><code>hourDiffMap = defaultMap;</code>
<code> </code>
<code> </code><code>if</code> <code>(VoiceConstans.isSendMail && (Double.valueOf(dayDiffMap.get(</code><code>"ratio"</code><code>)) >= VoiceConstans.dayThreshold ||</code>
<code> </code><code>Double.valueOf(hourDiffMap.get(</code><code>"ratio"</code><code>)) >= VoiceConstans.hourThreshold)) {</code>
<code> </code><code>String dayRatio = </code><code>new</code> <code>String().format(</code><code>"%.2f"</code><code>, (Double.valueOf(dayDiffMap.get(</code><code>"ratio"</code><code>)) *</code><code>100</code><code>)) + </code><code>"%"</code><code>;</code>
<code> </code><code>String hourRatio = </code><code>new</code> <code>String().format(</code><code>"%.2f"</code><code>, (Double.valueOf(hourDiffMap.get(</code><code>"ratio"</code><code>)) *</code><code>100</code><code>)) + </code><code>"%"</code><code>;</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>//HTML</code>
<code> </code><code>MimeMessage mimeMessage = baojingMailSender.createMimeMessage();</code>
<code> </code><code>MimeMessageHelper messageHelper = </code><code>new</code> <code>MimeMessageHelper(mimeMessage, </code><code>true</code><code>, </code><code>"utf-8"</code><code>);</code>
<code> </code>
<code> </code><code>String [] mailto = </code><code>new</code> <code>String[VoiceConstans.mailTo.size()]; </code>
<code> </code><code>messageHelper.setTo(VoiceConstans.mailTo.toArray(mailto));</code>
<code> </code><code>messageHelper.setFrom(VoiceConstans.mailFrom);</code>
<code> </code><code>messageHelper.setSubject(VoiceConstans.mailSubject+</code><code>" ("</code><code>+DateUtil.format(</code><code>new</code> <code>Date(), VoiceConstans.HOURFORMAT)+</code><code>")"</code><code>);</code>
<code> </code><code>StringBuffer htmlBuffer = </code><code>new</code> <code>StringBuffer();</code>
<code> </code><code>htmlBuffer.append(</code><code>"HI,ALL:<br>"</code><code>);</code>
<code> </code><code>htmlBuffer.append(DateUtil.format(</code><code>new</code> <code>Date(), </code><code>"yyyy-MM-dd HH時"</code><code>));</code>
<code> </code><code>htmlBuffer.append(</code><code>"資料如下:<br>"</code><code>);</code>
<code> </code><code>htmlBuffer.append(</code><code>"總數:"</code><code>+dayDiffMap.get(</code><code>"totleCount"</code><code>)+</code><code>"<br>"</code><code>);</code>
<code> </code><code>htmlBuffer.append(</code><code>"<table border=\"1\"><thead><tr><th>同日DIFF數</th><th>同日比</th><th>相鄰DIFF數</th><th>相鄰比</th></thead><tbody><tr>"</code><code>);</code>
<code> </code><code>htmlBuffer.append(</code><code>"<td>"</code><code>+dayDiffMap.get(</code><code>"diffCount"</code><code>)+</code><code>"</td>"</code><code>);</code><code>//同日目前diff數</code>
<code> </code><code>htmlBuffer.append(</code><code>"<td>"</code><code>+dayRatio+</code><code>"</td>"</code><code>);</code><code>//同日比</code>
<code> </code><code>htmlBuffer.append(</code><code>"<td>"</code><code>+hourDiffMap.get(</code><code>"diffCount"</code><code>)+</code><code>"</td>"</code><code>);</code><code>//相鄰目前diff數</code>
<code> </code><code>htmlBuffer.append(</code><code>"<td>"</code><code>+hourRatio+</code><code>"</td>"</code><code>);</code><code>//相鄰比</code>
<code> </code><code>htmlBuffer.append(</code><code>"</tr></tbody></table><br><br>"</code><code>);</code>
<code> </code><code>LOGGER.info(</code><code>"發郵件: "</code><code>+ htmlBuffer.toString());</code>
<code> </code><code>messageHelper.setText(htmlBuffer.toString(),</code><code>true</code><code>); </code>
<code> </code><code>baojingMailSender.send(mimeMessage);</code>
<code> </code><code>} </code><code>catch</code> <code>(MessagingException e) {</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code><code>}</code>
<code>}</code>
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 夢朝思夕 51CTO部落格,原文連結:http://blog.51cto.com/qiangmzsx/1859044