zoukankan      html  css  js  c++  java
  • 提高生产力:发送邮件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

  • 相关阅读:
    NVelocity用法
    LINQ to SQL语句(1)之Where
    CSS content内容生成技术以及应用
    LINQ to SQL语句(4)之Join
    LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
    本页的SQL例句全部懂了,你的数据库开发所需知识就够用了
    oracle 导入导出命令
    MTracer中文破解版下载 MTracer2.1
    在Powerdesigner或者ER/Studio中使用宏把Attribute复制到Definition
    利用DDTek不安装客户端访问数据库
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463621.html
Copyright © 2011-2022 走看看