Spring 发送邮件

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

maven:

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.5</version>
</dependency>

spring配置:

<!-- 邮件 -->
<bean id="baojingMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	<!-- 服务器 -->
	<property name="host" value="#{configproperties[‘baojing.mail.host‘]}" />
	<property name="protocol" value="#{configproperties[‘baojing.mail.protocol‘]}"></property>
	<!-- 端口号 -->
	<property name="port" value="#{configproperties[‘baojing.mail.port‘]}" />
	<!-- 用户名 -->
	<!-- <property name="username" value="#{configproperties[‘baojing.mail.username‘]}" /> -->
	<!-- 密码 -->
	<!-- <property name="password" value="#{configproperties[‘baojing.mail.password‘]}" /> -->
	<!-- SMTP服务器验证 -->
	<property name="javaMailProperties">
		<props>
			<!-- 验证身份 -->
			<prop key="mail.smtp.auth">{configproperties[‘baojing.mail.smtp.auth‘]}</prop>
			<prop key="mail.smtp.timeout">#{configproperties[‘baojing.mail.smtp.timeout‘]}</prop>
		</props>
	</property>
</bean>

配置:

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<String, Map<String, String>> message){
	Map<String, String> dayDiffMap = message.get("day");
	Map<String, String> hourDiffMap = message.get("hour");
	Map<String, String>  defaultMap = new HashMap<String, String>();
	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:<br>");
			htmlBuffer.append(DateUtil.format(new Date(), "yyyy-MM-dd HH时"));
			htmlBuffer.append("数据如下:<br>");
			htmlBuffer.append("总数:"+dayDiffMap.get("totleCount")+"<br>");
			htmlBuffer.append("<table border=\"1\"><thead><tr><th>同日DIFF数</th><th>同日比</th><th>相邻DIFF数</th><th>相邻比</th></thead><tbody><tr>");
			htmlBuffer.append("<td>"+dayDiffMap.get("diffCount")+"</td>");//同日当前diff数
			htmlBuffer.append("<td>"+dayRatio+"</td>");//同日比
			htmlBuffer.append("<td>"+hourDiffMap.get("diffCount")+"</td>");//相邻当前diff数
			htmlBuffer.append("<td>"+hourRatio+"</td>");//相邻比
			htmlBuffer.append("</tr></tbody></table><br><br>");
			LOGGER.info("发邮件: "+ htmlBuffer.toString());
			messageHelper.setText(htmlBuffer.toString(),true);   
			baojingMailSender.send(mimeMessage);
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
}
时间: 2024-10-11 18:04:19

Spring 发送邮件的相关文章

Struts2+Spring发送邮件

Spring本身有mail支持,所以用spring发邮件其实是个挺简单的事,看看其jar包 <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mail</artifactId> <version>4.2.6.RELEASE</version> </dependency> 1

配置Spring发送邮件

推荐查看原博客        转载自:配置Spring发送邮件 Spring Email抽象的核心是MailSender接口.顾名思义,MailSender的实现能够通过连接Email服务器实现邮件发送的功能. Spring自带的一个MailSender的实现--JavaMailSenderImpl.它会使用JavaMail API来发送Email. 配置邮件发送器 需要的核心maven: <dependency> <groupId>org.springframework</

【Spring】使用Spring发送邮件

spring Email抽象的核心是MailSender接口,MailSender的实现能够通过连接Email服务器实现邮件发送的功能,如下图: Spring自带一个MailSender的实现就是JavaMailSenderImpl,它也是使用JavaMail API来发送Email,在使用之前,必须先将JavaMailSenderImpl装配为Spring应用上下文中的一个bean,如下所示: @Beanpublic MailSender mailSender (Environment env

Spring发送邮件总结(附源码)

做项目用到自动发邮件功能,网上查阅很多没有给出特别详细的说明,需要自己去探索,做了很多弯路. 在此给大家分享一下自己的代码: 360网盘下载地址:http://yunpan.cn/cJzDQ3gVUHBxY  访问密码 8221 使用时 请将Spring 配置文件里的  用户名.密码.邮箱服务器 还有端口 进行修改如果不是 yeah邮箱. 如果使用maven项目: Pom.xml 添加的内容 <!-- Spring3 --> <dependency> <groupId>

Spring发送邮件_javax.mail.AuthenticationFailedException异常已解决

在Spring项目中须要增加监控功能.监控过程中发现异常时.须要邮件报警.最初选择用javamail发送,代码量比較大(相对于spring发送).终于选择Spring邮件发送~ 以下贴一下实现的代码以及注意事项: 代码结构非常easy一个java类和一个xml文件,用到三个jar包,demo下载地址http://download.csdn.net/detail/jeofey/8892859 这里仅仅是简单的发送,假设须要发送附件或者HTML格式的邮件的话,代码在文章末尾 [java] view

spring 发送邮件验证不通过问题

首先要保证用户名密码正确,且邮箱支持smtp服务,特别注意的是QQ邮箱第三方登录需要用授权码来作为密码而不是QQ密码,授权码在邮箱设置>账户中可以获得 smtp服务端口号需要以SLL加密端口号465 链接邮箱,在spring-mail配置文件中需要如下配置 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/

spring 发送邮件问题

public static void sendEmail() throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); //设定mail server senderImpl.setHost("smtp.163.com"); //建立邮件消息,发送简单邮件和html邮件的区别 MimeMessage mailMessage = senderImpl.createMimeMessage(); M

spring 发送邮件代码示例(带附件和不带附件的)

import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailParseException; im

Spring发送邮件

1 public class SpringMailSender { 2 private Log log = LogFactory.getLog(this.getClass()); 3 private JavaMailSenderImpl sender; 4 5 /** 6 * 在构造器中初始化JavaMailSenderImpl 7 */ 8 public SpringMailSender(){ 9 sender = new JavaMailSenderImpl(); /*以下参数为从配置文件中