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

FansMail:邮件发送标准API与技术实现(Java)

 
阅读更多

发送邮件,是Web系统等IT建设中最常见的一种功能。

我对最常见的一种需求进行了抽象和封装,定义了一套标准的API,并且使用Java技术实现。

项目信息

项目名称:FansMail

项目作者:LeiWen

联系方式:LeiWen@FansUnion.cn

当前版本:1.0.2

日期:2013年12月12日


邮件发送API

/**
     * 发送邮件。
     *
     * @param toList
     *            收件人列表
     * @param ccList
     *            抄送人列表
     * @param bccList
     *            暗送人列表
     * @param subject
     *            邮件主题
     * @param content
     *            邮件正文
     * @param attachmentList
     *            附件列表
     * @throws EmailException
     */
    sendEmail(List<String> toList, List<String> ccList,
            List<String> bccList, String subject, String content,
            List<EmailAttachment> attachmentList) throws EmailException

简化API

下面几个API实际上是对上面的API的封装,方便调用而已。


 sendEmail(List<String> toList, String subject, String content) throws EmailException
   sendEmail(List<String> toList, String subject, String content,
            List<EmailAttachment> attachmentList) throws EmailException
   sendEmail(List<String> toList, List<String> ccList,
            String subject, String content, List<EmailAttachment> attachmentList)
            throws EmailException
    sendEmail(List<String> toList, List<String> ccList,
            List<String> bccList, String subject, String content)
            throws EmailException

下载

Jar包

FansMail-1.0.2.jarhttp://fansunion.cn/download/FansMail-1.0.2.jar

依赖的Jar包

activation-1.1.jar,mail-1.4.jar,commons-email-1.2.jar

使用示例下载地址http://fansunion.cn/download/FansMail-1.0.2-demo.zip


使用示例

package test;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.mail.EmailException;
import cn.fansunion.common.email.EmailSender;
/**
 * 发送Html格式,不带附件的邮件。
 *
 * @author leiwen@fansunion.cn
 *
 *         小雷团队:http://FansUnion.cn
 *
 *         QQ:240-370-818
 */
public class SendHtmlEmail {
    public static void main(String[] args) throws EmailException {
        testHtmlEmail();
    }
    public static void testHtmlEmail() throws EmailException {
        //邮件类型,true表示Html邮件,false表示纯文本邮件
        EmailSender emailSender = new EmailSender(true);
        // 接收者邮箱
        String subject = "FansMail测试-Html邮件!";
        String content = "test";
        String to = "leiwen@fansunion.cn";
        List<String> list = new ArrayList<String>();
        list.add(to);
        emailSender.sendEmail(list, subject, content);
    }
}

配置文件

email.properties,需要放在CLASSPATH下,src的根目录即可

mail.smtp.host=smtp.qq.com

mail.smtp.from=leiwen@fansunion.cn

mail.smtp.name=leiwen@fansunion.cn

mail.smtp.password=yourpassword

mail.smtp.charset=UTF-8
mail.smtp.debug = false

Demo效果

FansMailDemo

致歉

1.API功能很弱,正在进一步丰富中。

2.暂时没有公开源码的打算。

我在思考,未来是否可以通过售卖工具组件的方式“养活”自己。

正在尝试中,程序员加油!

程序员的生存和价值

我一直在想,是否有必要把自己写的代码都“开源”。

软件作为一种逻辑产品,在中国,价值很低。普通用户,包括程序员,都喜欢免费使用别人的产品。一听到要“付费”,就不用了,或者用盗版。 传统的实物生产,比如沙发等,都是值钱的,即使价格不高。

未来会出现这种情况么,程序员不用在公司上班,靠写代码生存。比如我写了一个工具,例如本文提到的API,会有人付费么?或者,我在家办公,如果有人需要代码、API、组件、软件系统,就会联系我,然后双方合作。

作为一个程序员,我表示很纠结!!!

原文链接http://blog.fansunion.cn/articles/3448(小雷博客-blog.fansunion.cn)

分享到:
评论

相关推荐

    FISHFANS论坛(dvbbs7修改美化版)

    一,版本 动网官方1月20日17:30发布的7.0+sq1 二,美化列表 进行了全站美化,所有皮肤均以美化,无须再次美化。 首页顶部个人信息美化 帖子对话框和个人信息栏美化 双击滚屏 list....

    51单片机控制步进电机三轴联动51单片机控制步进电机三轴联动51单片机控制步进电机3轴联动c语言,抛砖引玉供大家参考。.zip

    51单片机控制步进电机三轴联动51单片机控制步进电机三轴联动51单片机控制步进电机3轴联动c语言,抛砖引玉供大家参考。

    数据库管理工具:dbeaver-ce-23.0.1-linux.gtk.aarch64-nojdk.tar.gz

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。

    数据库管理工具:dbeaver-ce-23.1.5-macos-x86-64.dmg

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。

    java某百货店POS积分管理系统-积分点更新生成以及通票回收处理(源代码+论文)

    java某百货店POS积分管理系统_积分点更新生成以及通票回收处理(源代码+论文)

    南京邮电大学电工电子实验B实验二(传输网络的幅频和相频特性)

    南京邮电大学电工电子实验B实验二(传输网络的幅频和相频特性)

    模电LM324.ms14

    大二模电课设——基于四运放芯片LM324的组合电路

    VB+ACCESS酒店服务管理系统(论文+系统).zip

    VB+ACCESS酒店服务管理系统(论文+系统)

    Java小游戏之愤怒的小鸟.zip

    Java小游戏之愤怒的小鸟

    数据库管理工具:dbeaver-ce-23.0.2-macos-aarch64.dmg

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。

    高性能C数据结构,双向列表、红黑树、哈希表等!.zip

    大学生 C/C++/JAVA/Python数据结构学习笔记和资料大全

    基于 STM32F429单片机(寄存器版本)+ATK-2MD4850步进电机驱动实验软件源码.zip

    基于 STM32F429单片机(寄存器版本)+ATK-2MD4850步进电机驱动实验软件源码.zip

    算法模板(c++), 包含数据结构,基础算法和算法思维篇.zip

    大学生数据结构学习笔记和资料大全!

    pod-tomcat.yaml

    一个pod yaml文件示例

    【课件】8.7.5最佳归并树.pdf

    【课件】8.7.5最佳归并树

    基于VisualBasic编程语言实现小鸟快跑小游戏源码.zip

    实现思路: 窗口1 就是实现窗口的跳转和关闭 窗口2 1.先添加背景图片、小鸟、障碍物、timer、分数显示 2.小鸟 2.1 放好小鸟的位置,让它自己不停的下降 2.2 通过键盘、鼠标单击双击改变top让小鸟上升 3.障碍物 3.1 每四个为一组,上面和下面一样的 3.2 让每一个到左边的距离递减从而移动 3.3 每出界一个障碍物,改变它的位置,让它在后面显示 3.4 后面改变位置的障碍物,也通过随机函数改变高度 4.有变动的都在timer里面控制 5.如果碰到障碍物就退出游戏 5.1 看是否相交来判断 小鸟到左边的位置 与 障碍物到左边的距离 小鸟的高度 与 障碍物的height/top 5.2 若相交 事件监听关闭 弹出对话框提示,并显示分数 关

    基于Servlet+jsp的企业财务管理系统设计与实现.rar.zip

    基于Servlet+jsp的企业财务管理系统设计与实现.rar

    Windows下开箱后即时编译体验freeRTOS 的MDK demo工程,使用临界区解决freeRTOS访问共享资源的同步性

    Windows下的MDK Keil uVision4的demo工程,STM32F103的IC,开箱即可编译烧写体验: 已包含完整的freeRTOS依赖,可直观体验freeRTOS临界区的使用,代码方面主要通过未使用临界区访问共享资源的问题,以及使用临界区解决访问共享资源同步性的问题。 工程方面已经集成了freeRTOS的源码及相关临界区使用示例,配合博文《FreeRTOS 体验教程:4.如何用临界区解决FreeRTOS多线程访问共享资源的同步性问题?》食用效果更佳。

    Java课设相关材料.zip

    Java课设相关材料.zip

    java数据结构和算法实现.zip

    大学生 C/C++/JAVA/Python数据结构学习笔记和资料大全

Global site tag (gtag.js) - Google Analytics