Spring之Email<封装了常用的四种发送Email的方法(TEXT,HTML,IMG,FILE)>
参考资料
1 Spring邮件发送(可带附件,模板,群发,异步发送等功能)
http://linqincai.iteye.com/blog/508797
2 Spring mail 使用多个账号发送带有附件的HTML邮件
http://wisdombrave.iteye.com/blog/546508
3 spring各种邮件发送
http://blog.csdn.net/lenolong/article/details/3970110
4 spring来发EMAIL
http://www.cnblogs.com/jackyrong/archive/2006/08/17/479812.html
5 使用spring发送邮件例
http://www.blogjava.net/amigoxie/archive/2007/04/28/114310.html
6 Spring Mail中文乱码问题
http://blog.csdn.net/matrixjava/article/details/3237772
7 国内常用邮箱客户端POP3和SMTP服务器大全
http://www.hiapk.com/thread-7912-1-1.html
写在前面的话
网上很多文章都是针对配置文件来说的,本文是对<spring各种邮件发送>这篇文章作了封装,使用spring发送Email更加方便
网易和其它很多公司现在都没有对外开放POP3/SMTP服务,可能你会碰到这样的错误:
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException
我测试时是用的是:新浪的邮箱:smtp.sina.com也是可以的
如下设置:
Exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
参考文章:http://zhidao.baidu.com/question/227409027.html
解答: 配置JavaMail的Properties时,不要指定mail.smtp.socketFactory.class,因为TLS使用的是普通的Socket。 然后指定属性mail.smtp.starttls.enable为true.
介绍
Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,
它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以MailException为根的checked Exception继承树,
它们提供了对底层邮件系统异常的高级别抽象.为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口,
即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator,
用于准备JavaMail的MIME信件.
工程环境:XP+Myeclipse6.5+JDK1.6
一 实现功能
1 封装了常用的四种发送Email的方法(文本,html,img,file),用户只要调用一个工厂类传递相应的邮件的属性如from, to,cc, subject,text,或者是消息对象
2 解决了发送邮件附件中的中文筹码问题,参见了<Spring Mail中文乱码问题>
3 支持链式风格
4 可以混合发送多种消息(text,html,img,file)
二 工程图片
或者你也可以这样,使用打包好的jar:email.spring.util.jar
,见附件
三 调用说明
1 发送文本消息
3 发送含有图片的消息
四 代码如下
1 消息发送类:MailMessageFactory
2 邮件发送类型:SendMailType
4 消息对象:SendMessage#新浪邮件服务器mail.host=smtp.sina.commail.smtp.auth=truemail.smtp.timeout=25000mail.encoding=utf-8mail.smtp.starttls.enable=true; #mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory#Email地址mail.username=XXX#Email密码 mail.password=XXX#发送人地址mail.from=XXX@sina.com#收件人地址mail.to=XXX@163.com