`
FansUnion
  • 浏览: 152569 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

提高生产力:发送邮件API和Web服务(包含源码)

 
阅读更多
在Web开发中,发邮件是一种非常常见的功能或任务。

发送邮件的6种方式 一文提到了6种方法,文章发表后,有网友指出了还有另外一种方法,Ant中也可以发送邮件。

打开Foxmail之类的邮件客户端或者在网页中写邮件,用户写邮件的主要输入就是以下6个字段。

必选输入:收件人地址
可选输入:抄送人地址,按送人地址,主题,正文,附件

API

如果,我们从现实世界这些功能来看,发邮件功能是可以提取为一个API的。

/**
  * 发送邮件。
  *
  * @param toList
  *            收件人列表
  * @param ccList
  *            抄送人列表
  * @param bccList
  *            暗送人列表
  * @param subject
  *            邮件主题
  * @param content
  *            邮件正文
  * @param attachmentList
  *            附件列表
  * @throws EmailException
  */
 public void sendEmail(List<String> toList, List<String> ccList,   List<String> bccList, 
String subject, String content,   List<EmailAttachment> attachmentList);
   
 为了方便使用者调用,可以再增加一些API,比如
 /**
  * 发送邮件。
  *
  * @param toList
  *            收件人列表
  * @param subject
  *            邮件主题
  * @param content
  *            邮件正文
  * @throws EmailException
  */
 public void sendEmail(List<String> toList, String subject, String content);



Web服务
发送邮件这个功能,其实也可以成为一个公共服务。

Java/C++/C/PHP等各种项目都可以使用同一个服务。

服务需要的参数除了API之外的参数之外,可能需要再增加用户名、密码、KEY之类的公共参数。
而这3个公共参数在服务中几乎是必须的,因此把发送邮件API服务化,并没有增加额外的需要维护的参数。

API和Web服务的好处(前提是需求相同或类似)
1.同一项目和不同项目,提高软件复用,避免重复代码。
2.测试更简单。
3.维护和扩展更方便。
4.降低了研发成本,提高了研发效率。

API源码
特别说明:源码只包含API实现的,Web服务的没有实现(工作中用不到),有兴趣的可以自己实现。
版权说明:只要承认源码是小雷-leiwen@fansunion.cn所写,可以用于任何用途(修改、商业用途等)。
下面简要介绍下源码:

EmailSender:邮件发送器。定义了一系列发送邮件的工具方法。
EmailPropertyReader:读取Email配置属性,email.properties配置文件和本类在同一个路径下,或者在classpath路径下。
EmailUtils:发送邮件用到的一些工具方法。
EmailConstant:定义了"mail.smtp.host"等常量。
SendHtmlEmail:一个简单的测试。
(发送邮件关键需要配置自己的帐号和密码,我是根据自己的域名邮箱测试的)

源码下载http://download.csdn.net/detail/fansunion/6222261

原文链接http://FansUnion.cn/articles/2337

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics