Spring Mail

来源:互联网 发布:凯撒博尔吉亚 知乎 编辑:程序博客网 时间:2024/05/22 13:46

Spring 发送Email

Spring Mail API都在org.springframework.mail及其子包org.springframework.mail.javamail中封装,且只提供了邮件发送的封装。
SimpleMailMessage: 对邮件的一个简单封装,只能用于表示一个纯文本的邮件,也不能包含附件等。
JavaMailSenderImpl: 邮件发送器,主要提供了邮件发送接口、透明创建Java Mail的MimeMessage、及邮件发送的配置(如:host/port/username/password...)。
MimeMailMessage、MimeMessageHelper:对MimeMessage进行了封装。Spring还提供了一个回调接口MimeMessagePreparator, 用于准备JavaMail的MIME信件
废话不说了,直接上代码:
1.Project 需要的jar


2..创建存放mail信息的properties

3.发送纯文本格式
1.Spring配置文件
<?xml version="1.0" encoding="GBK"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- 邮件服务器信息 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"value="com/spring/mial/configuration/mail.properties"></property></bean><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.host}" /><property name="username" value="${mail.username}" /><property name="password" value="${mail.password}" /><property name="javaMailProperties"><props><!-- 设置认证开关 --><prop key="mail.smtp.auth">true</prop><!-- 启用调试开关 --><prop key="mail.debug">true</prop></props></property><property name="defaultEncoding" value="gbk" /></bean><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from"><value>${mail.username}</value></property><property name="to" value="${mail.to}" /></bean></beans>
2.方法类
package com.spring.mail.demo;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.mail.MailSender;import org.springframework.mail.SimpleMailMessage;public class SpringMailDemo1 {//发送纯文本邮件public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext cx = new ClassPathXmlApplicationContext("com/spring/mial/configuration/SpringMailDemo1.xml");MailSender ms = (MailSender) cx.getBean("mailSender");SimpleMailMessage mm = (SimpleMailMessage) cx.getBean("mailMessage");String[] re = { "XX19@qq.com", "yuelicn@163.com" };mm.setTo(re);mm.setSubject("欢迎使用Spring JavaMail集成");mm.setText("谢谢您的到来!");ms.send(mm);}}

2.发送带附件邮件
1.spring配置文件
<?xml version="1.0" encoding="GBK"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- 邮件服务器信息 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"value="com/spring/mial/configuration/mail.properties"></property></bean><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.host}" /><property name="username" value="${mail.username}" /><property name="password" value="${mail.password}" /><property name="javaMailProperties"><props><!-- 设置认证开关 --><prop key="mail.smtp.auth">true</prop><!-- 启用调试开关 --><prop key="mail.debug">true</prop></props></property><property name="defaultEncoding" value="gbk" /></bean></beans>

2.方法类
package com.spring.mail.demo;import java.io.File;import javax.mail.internet.MimeMessage;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.mail.javamail.MimeMessagePreparator;public class SpringMailDemo2 {public static void main(String[] args) {ApplicationContext cx = new ClassPathXmlApplicationContext("com/spring/mial/configuration/SpringMailDemo1.xml");JavaMailSender ms = (JavaMailSender) cx.getBean("mailSender");// 回调MimeMessagePreparator 接口ms.send(new MimeMessagePreparator() {@Overridepublic void prepare(MimeMessage arg0) throws Exception {MimeMessageHelper mm = new MimeMessageHelper(arg0, true);mm.setTo("2XXX1519@qq.com");mm.setFrom("yhbs@163.com");mm.setSubject("欢迎使用Spring JavaMailSenderImpl发送附件,呵呵。");mm.setText("测试成功");// 添加附件(图片)mm.addAttachment("springMail.jpg", new File("F:/Work/Test/picture/springMail.jpg"));}});}}




0 0
原创粉丝点击