运行环境:Eclipse + JDK6 + Spring2.5
Spring发送邮件依赖org.springframework.mail.MailSender接口,该接口有两个方法:
MailSender接口下有两个子成员,关系为:
MailSender←JavaMailSender←JavaMailSenderImpl
其中JavaMailSenderImpl封装了发送邮件的方法
此外还有辅助类:org.springframework.mail.SimpleMailMessage作为send()的参数
这个类用来设置发送人,收件人,主题,内容等信息
我们可以通过Spring的注入来设置这些信息
需要的jar包:
commons-logging.jar(在Spring开发包中的lib/jakarta-commons文件夹下可以找到)
mail.jar (在Spring开发包中的lib/j2ee文件夹下可以找到)
spring.jar(在Spring开发包中的dist文件夹下可以找到)
如果没有Spring开发包,可查看这篇文章:
http://blog.youkuaiyun.com/thc1987/archive/2010/03/17/5389120.aspx
======================
一. 简单邮件程序
1. 新建一个web工程:mySpringMail
2. 新建一个package:mail
3. 在mail包下新建mail.properties文件,内容如下:
mail.host=smtp.qq.com
mail.username=your username
mail.password=your password
mail.from=your email, example abc@qq.com
mail.to=his/her email
这里分别设置了邮件的服务器,用户名,密码,发件人,收件人.这里我们用qq的服务器,也可用sina的
4. 在mail包下新建mailMessage.xml文件,内容如下:
已有相关注释,不再说明
5. 在mail包中新建测试文件:SpringSimpleMailTest.java,内容如下:
运行,如果配置没有错的话会收到邮件,如图:
===========================
二. 发送带附件的程序:
Spring提供了两个类:
org.springframework.mail.javamail.MimeMailMessage (这个类类似于SimpleMailMessage,都继承MailMessage)
org.springframework.mail.javamail.MimeMessageHelper
MimeMessageHelper是个辅助类,它封装了javax.mail.internet.MimeMessage
提供对附件,内嵌HTML的支持
此外在发送附件程序时,还会用到一个回调接口:MimeMessagePreparator,
并实现该接口中的void prepare(MimeMessage mimeMessage)方法
1. 在mail包中新建类:SpringFileMailTest.java,内容如下:
其它不需配置,运行程序即可查看有无发送成功,如图:
=============================
三. 发送含有HTML内嵌资源的邮件
比方说邮件里面有张图片或者一个链接,点击图片就会跳转到指定的页面
这里还是用到了MimeMessageHelper类,添加资源用到了addInline()方法
1. 新建SpringHtmlMailTest.java类,内容如下:
其它不需配置,运行该文件即可,如图:
demo下载: