这是很久之前的代码了,最近需要使用了,了就记录一下。

maven:


    com.sun.mail
    javax.mail
    1.5.5

spring配置:



	
	
	
	
	
	
	
	
	
	
	
		
			
			{configproperties['baojing.mail.smtp.auth']}
			#{configproperties['baojing.mail.smtp.timeout']}
		
	

配置:

baojing.mail.host 		= mail2-in.XXXX.com
baojing.mail.port 		= 25
baojing.mail.protocol 	= smtp
baojing.mail.username 	= ""
baojing.mail.password	= ""
baojing.mail.smtp.auth  = false
baojing.mail.smtp.timeout = 25000

代码:

@Autowired
@Qualifier(value="baojingMailSender")
private JavaMailSender baojingMailSender;

/**
 * 发邮件
 * **/
@SuppressWarnings("static-access")
public void sendMail(final Map> message){
	Map dayDiffMap = message.get("day");
	Map hourDiffMap = message.get("hour");
	Map  defaultMap = new HashMap();
	defaultMap.put("ratio", "0");
	defaultMap.put("diffCount", "0");
	defaultMap.put("totleCount", "0");
	defaultMap.put("todayFile", "0");
	defaultMap.put("diffFile", "0");
	//避免空指向
	if (dayDiffMap == null || dayDiffMap.isEmpty()) {
		dayDiffMap = defaultMap;
	}
	if (hourDiffMap == null || hourDiffMap.isEmpty() ) {
		hourDiffMap = defaultMap;
	}
	
	if (VoiceConstans.isSendMail && (Double.valueOf(dayDiffMap.get("ratio")) >= VoiceConstans.dayThreshold ||
			Double.valueOf(hourDiffMap.get("ratio")) >= VoiceConstans.hourThreshold)) {
		String dayRatio =  new String().format("%.2f", (Double.valueOf(dayDiffMap.get("ratio")) *100)) + "%";
		String hourRatio =  new String().format("%.2f", (Double.valueOf(hourDiffMap.get("ratio")) *100)) + "%";
		try {
			//HTML
			MimeMessage mimeMessage = baojingMailSender.createMimeMessage();
			MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
		
			String [] mailto = new String[VoiceConstans.mailTo.size()]; 
			messageHelper.setTo(VoiceConstans.mailTo.toArray(mailto));
			messageHelper.setFrom(VoiceConstans.mailFrom);
			messageHelper.setSubject(VoiceConstans.mailSubject+" ("+DateUtil.format(new Date(), VoiceConstans.HOURFORMAT)+")");
			StringBuffer htmlBuffer = new StringBuffer();
			htmlBuffer.append("HI,ALL:
"); htmlBuffer.append(DateUtil.format(new Date(), "yyyy-MM-dd HH时")); htmlBuffer.append("数据如下:
"); htmlBuffer.append("总数:"+dayDiffMap.get("totleCount")+"
"); htmlBuffer.append("同日DIFF数同日比相邻DIFF数相邻比"); htmlBuffer.append(""+dayDiffMap.get("diffCount")+"");//同日当前diff数 htmlBuffer.append(""+dayRatio+"");//同日比 htmlBuffer.append(""+hourDiffMap.get("diffCount")+"");//相邻当前diff数 htmlBuffer.append(""+hourRatio+"");//相邻比 htmlBuffer.append("

"); LOGGER.info("发邮件: "+ htmlBuffer.toString()); messageHelper.setText(htmlBuffer.toString(),true);    baojingMailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } } }