带你走进EJB--MDB实现发送邮件(1)
在实际的项目中我们有这样的需求,用户注册网站成功之后系统会自动的给注册用户发送注册成功通知邮件,而发送通知邮件的具体过程我们可以通过MDB来实现.
在用MDB来实现发送通知过程之前我们需要先了解一下JavaMail.
JavaMail是JavaEE规范之一,用于连接E-mail系统,允许Java程序员使用JavaMail API来收取、发送电子邮件.JavaMail定义了一组支持各种E-mail协议的即插即用API,支持E-mail协议包括POP3、IMAP4和SMTP等。JavaMailAPI与具体的邮件服务供应商无关,而是提供一种开放的、简单的E一mail系统开发环境。通过JavaMail为应用程序增加邮件支持也非常方便。
关于JavaMail的下载和安装读者可以自己通过网络搜索并下载安装,在下面的例子介绍中主要用到了两个Jar包.一个是JavaMail的mail.java,另一个是JAF框架下的activation.jar.有这个两个Java包我们就可以完成下面的一个发送邮件的小例子.
JavaMail中有很多的接口和类,这里不再一一介绍,读者可以查看API文档,主要用到的接口和类会在例子中使用.
接下来我们将会通过JavaMail来进行发送通知邮件,整体的过程主要是下面四步:
1 创建邮件的Session实例
2 通过Session实例为参数创建MimeMessage对象.
3 给MineMessage对象设置合适的属性
4 使用抽象类Transport的send 和sendMessage方法发送email.
首先引入上面所提到的两个关键的Java包,然后建立一个SendMail类.为了更容易大家的阅读,我将这个类里的内容进行分开展示,注:以下内容都在SendMail类中.
1下面内容主要是发送邮件所需要的相关信息属性,以及构造参数.
2 下面的方法是将邮件的主题转换为中文.3 下面的方法是将邮件的附件添加到List集合中.4 发送邮件方法(里面有上面所提到的四步).5 客户端调用SendMail类发送邮件.运行客户端我们会看到控制台的输出:
打开我的收件箱会看到如下邮件,附件为此SendMail的java类.
此时我们已经完成了一个JavaMail的发送邮件通知的过程,但这仅仅是一个Demo,在实际的项目过程中往往有具体的需求,接下来的文章我们将模拟在实际的项目中如果通过MDB来实现发送邮件.