依赖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 。
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 。