spring的MailSender发送普通邮件

1、抽象父类,定义了发送邮件的函数,取得getMailSender函数留待子类实现

package com.iss.itreasury.test.mailtest;

import java.util.Map;

import org.springframework.mail.MailSender;

import org.springframework.mail.SimpleMailMessage;

/**
 * 抽象父类,定义了发送邮件的函数,取得getMailSender函数留待子类实现
 * @Description: TODO
 * @author longjun
 * @date 2016-5-13 上午10:40:15
 */
public abstract class BaseMailSender{
	protected String userName;	
	protected String password;	
	protected String stmpServer;
	protected String senderEmailAddr;
	/**
	 * 取得邮件发送者,留待子类实现
	 * @return
	 */
	protected abstract MailSender getMailSender();

	/** 
   * 发送邮件
   * @param from :寄信人邮件地址
   * @param to :收信人邮件地址
   * @param subject :邮件标题
   * @param concept :邮件内容
   */

public final void sendMail(Map<String, Object> messageMap){
	SimpleMailMessage msg=new SimpleMailMessage();
	msg.setFrom(senderEmailAddr);	
	String to = messageMap.get("email").toString();
	String subject = messageMap.get("subject").toString();
	String concept = messageMap.get("content").toString();
	msg.setTo(to);	
	msg.setSubject(subject);	
	msg.setText(concept);	
	MailSender sender=getMailSender();	
	sender.send(msg);	

}

public void setPassword(String password) {

	this.password = password;

}

public void setSenderEmailAddr(String senderEmailAddr) {

	this.senderEmailAddr = senderEmailAddr;

}

public void setStmpServer(String stmpServer) {
	this.stmpServer = stmpServer;

}

public void setUserName(String userName) {

	this.userName = userName;
}

}


2、邮件发送者实现类

package com.iss.itreasury.test.mailtest;


import java.util.Properties;
import org.springframework.mail.MailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

/**
 * 邮件发送者实现类
 * @Description: TODO
 * @author longjun
 * @date 2016-5-13 上午10:43:10
 */

public class MailSenderImpl extends BaseMailSender{

	/**
	 * 取得邮件发送者
	 * @return
	 */
	protected MailSender getMailSender(){
	
	JavaMailSenderImpl sender=new JavaMailSenderImpl();	
	// 邮件发送者邮箱SMTP服务器
	sender.setHost(stmpServer);
	// 邮件发送者邮箱用户
	sender.setUsername(userName);
	// 邮件发送者邮箱密码
	sender.setPassword(password);
	// 客户端认证设置
	Properties props = new Properties();
	// 同时通过验证
	props.put("mail.smtp.auth", "true");
	// 存储发送邮件服务器的信息
	props.put("mail.smtp.host", stmpServer);
	// 服务器端认证设置
	sender.setJavaMailProperties(props);
	return sender;
	
	}
}


3、发送邮件的线程类

package com.iss.itreasury.test.mailtest;

import java.util.HashMap;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * 发送邮件的线程类
 * @Description: TODO
 * @author longjun
 * @date 2016-5-13 下午2:26:47
 */
public class MailUtil {

	public static void sendMail(final Map<String, Object> messageMap){
		Runnable thread=new Runnable(){

			@Override
			public void run() {
				ApplicationContext context = new ClassPathXmlApplicationContext("MailConfiguration.xml");	
				BaseMailSender sender=(MailSenderImpl)context.getBean("mailSender");
				sender.sendMail(messageMap);				
			}
			
		};
		new Thread(thread).start();
	}
	
	public static void main(String[] args) {
		Map<String, Object> messageMap = new HashMap<String, Object>();
		messageMap.put("subject", "主题");
		messageMap.put("content", "内容");
		messageMap.put("email", "263996530@qq.com");
		sendMail(messageMap);
	}

}


4、邮件xml配置文件(MailConfiguration.xml放在src目录下)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:p="http://www.springframework.org/schema/p"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop     
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/context     
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="mailSender" class="com.iss.itreasury.test.mailtest.MailSenderImpl" scope="prototype">
<property name="userName" value="junlonga"/>
<property name="password" value="******"/>
<property name="stmpServer" value="*****"/>
<property name="senderEmailAddr" value="******"/>
</bean>
</beans>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值