Spring Mail 集成

依赖jar包:
JavaMail.jar
JAF.jar

spring framework提供了对邮件发送,提供了良好的帮助库。spring framework对Mail支持的顶层包结构:org.springframe.mail。


核心接口:
MailSender:定义了发送简单邮件的策略,有各种各样的邮件服务器根据具体的需求来实现。代码层通过该接口可以实现发送简单邮件,而不用管具体是什么邮件服务器。
JavaMailSender:继承了MailSender接口,并进行了扩展,提供了对MIME message(媒体邮件)的支持。可以通过直接设置参数和预处理回调的方式进行邮件发送。JavaMailSender封装了整个javaMail会话过程的管理。客户端代码不用理会邮件发送的会话过程,只需要配置好JavaMailSender、配置信息:邮件服务器(host)、端口(port)、协议(protocol)、用户名(username)、密码(pwd)。

MailMessage:定义一封邮件的基本信息:发件人(from)、收件人(to)、抄送(cc)、安抄送(bcc)、主题(subject)、内容(content)。

核心类:
JavaMailSenderImpl:JavaMailSender接口的实现类,提供了对发送简单邮件(SimpleMailMessage),和媒体邮件(MimeMessage)的支持。
SimpleMailMessage:简单邮件。
MimeMailMessage:媒体邮件。
MimeMessageHelper:帮助更好的创建Mime Message。提供了对html内容,内联元素,如图片,还有附件的支持。注意高级的邮件信息设置,还是要直接添加到Mime Message对象上。常和JavaMailSender或者MimeMessagePrepartor联合使用。

邮件发送步骤:
1、配置MailSender:邮件服务器(host)、端口(port)、协议(protocol)、用户名(username)、密码(pwd)。
2、创建好邮件对象(MailMesage):发件人(from)、收件人(to)、抄送(cc)、安抄送(bcc)、主题(subject)、内容(content)等。
3、发送邮件。
4、邮件异常处理。





 使用MimeMessageHelper提供对多功能邮件的支持:
1):MimeMessageHelper msgHelper=new MimeMessageHelper(msg, true, "utf-8");
2):指明邮件内容的格式,纯文本,还是html格式。msgHelper.setText("my text <img src='cid:myLogo'>", true);
3):添加附件、message.addAttachment("myDocument.pdf", new ClassPathResource("doc/myDocument.pdf"));
4):添加内联资源。内联资源添加到邮件中后,都会有个cid(Content-ID),邮件内容中通过该cid引用内联资源、 
message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
 
注意:邮件内容中引用内联文件,要先设置邮件内容,在添加内联文件。
 
 
例子:
mailSender.send(new MimeMessagePreparator() {
  public void prepare(MimeMessage mimeMessage) throws MessagingException {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
message.setFrom("me@mail.com");
message.setTo("you@mail.com");
message.setSubject("my subject");
message.setText("my text <img src='cid:myLogo'>", true);//true则将邮件内容按照html去解析
message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
message.addAttachment("myDocument.pdf", new ClassPathResource("doc/myDocument.pdf"));
  }
});
 
 
资源文件:ClassPathResource
 FileSystemResource




使用模板库创建邮件内容:
1、配置(模板引擎)
2、创建邮件内容模板:freeMarker.getConfiguration().getTemplate("mailTemplate/addMemberUserMail.ftl");
3、项目模板中写入数据:String ebbMailText=FreeMarkerTemplateUtils.processTemplateIntoString(ebbMailTemplate, map);

常用模板引擎:
a:Freemark模板库:
<bean id="freeMarker" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">     
 <property name="templateLoaderPath" value="WEB-INF/mailTemplate/"/><!--指定模板文件目录-->       
 <property name="freemarkerSettings"><!-- 设置FreeMarker环境属性-->       
 <props>     
 <prop key="template_update_delay">1800</prop><!--刷新模板的周期,单位为秒-->       
 <prop key="default_encoding">UTF-8</prop><!--模板的编码格式 -->     
 <prop key="locale">zh_CN</prop><!-- 本地化设置-->     
 </props>     
 </property>     
</bean>

b:Velocity模板库:
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<value>
resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
</value>
</property>
</bean>


异常处理:
Springframe Mail处理的顶级异常MailException。具体的详细异常:MailAuthenticationException, MailParseException, MailPreparationException, MailSendException 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值