JFinal项目发送邮件——jfinal-mail-plugin
JFianl框架:
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
JFinal框架有自己的邮件发送插件——jfinal-mail-plugin,支持发送普通邮件,模板邮件,还支持发送附件,jfinal-mail-plugin还可以配置多邮件发送数据源。
JFinal项目发送邮件插件:jfinal-mail-plugin
JFinal官方地址:http://www.jfinal.com/project/33
jfinal-mail-plugin是jfinal的一个邮件发送插件,支持发送普通邮件、与附件邮件,邮件内容支持通过模板生成,同时还支持多个邮件发送源,她继承了Jfinal核心目标“开发迅速,代码量少,学习简单。。。”,只需简单的2行代码即可实现邮件发送!为您节约更多时间,去陪恋人、家人和朋友 :) ,核心代码通过spring-context-support包的邮件模块移植,JavaMailSender对象如何发送邮件可直接参照Spring的邮件发送文档。
码云源码地址:https://gitee.com/xiyoufang/jfinal-mail-plugin
以上是该项目的源码,使用时直接调用就可以。
使用方法:
和使用JFinal一样,只需要在pom文件中引入jfinal-mail-plugin即可。
在pom中添加jfinal-mail-plugin:
<dependency>
<groupId>cn.fsdev</groupId>
<artifactId>jfinal-mail-plugin</artifactId>
<version>3.0</version>
</dependency>
添加邮件配置文件:
#邮箱HOST
host=smtp.qq.com
#协议
protocol=smtp
#端口
port=465
#发送邮箱
username=**@qq.com
#密码
password=**
#权限认证
mail.smtp.auth=true
#超时时间
mail.smtp.timeout=5000
#是否是ssl
mail.smtp.ssl.enable=true
项目启动时启动jfinal-mail-plugin插件:
me.add(new MailPlugin(PropKit.use("mail.properties").getProperties()));
发送普通邮件:
public void senmail(){
System.out.println("发送邮件:");
try{
MailKit.send("**@qq.com", null, "邮件标题", "邮件内容");
System.out.println("成功");
}catch (Exception e){
System.out.println("失败");
e.printStackTrace();
}
}
我们可以看到邮件发送工具 MailKit 的代码:
package com.jfplugin.mail; import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.jfplugin.mail.core.JavaMailSender; /**
* 发送邮件工具
* @author farmer
*
*/
public class MailKit { static Map<String, MailPro> proMap = new HashMap<String, MailPro>(); static MailPro mailPro = null; /**
*
* @param configName
* @param mailPro
*/
static void init(String configName , MailPro mailPro){
if(proMap.get(configName) != null){
throw new RuntimeException(configName+"配置的Mail已经存在!");
}
proMap.put(configName, mailPro);
if(MailPlugin.MAIN_CONFIG.equals(configName)){
MailKit.mailPro = mailPro;
}
} /**
*
* @param configName
* @return
*/
public static MailPro use(String configName){
MailPro mailPro = proMap.get(configName);
if(mailPro == null){
throw new RuntimeException(configName+"配置的Mail不存在!");
}
return mailPro;
} /**
* 发送邮件
* @param to
* 收件人
* @param cc
* 发件人
* @param subject
* 主题
* @param text
* 内容
*/
public static void send(String to,List<String> cc,String subject,String text){
mailPro.send(to, cc, subject, text);
} /**
* 发送邮件
* @param to
* 收件人
* @param cc
* 发件人
* @param subject
* 主题
* @param text
* 内容
* @param attachments
* 附件
*
*/
public static void send(String to,List<String> cc,String subject,String text,List<File> attachments){
mailPro.send(to, cc, subject, text,attachments);
} /**
*
* @param to
* @param cc
* @param subject
* @param viewpath
* @param dataMap
*/
public static void send(String to,List<String> cc ,String subject,String viewpath ,Map<String, Object> dataMap){
mailPro.send(to, cc, subject, viewpath , dataMap);
} /**
*
* @param to
* @param cc
* @param subject
* @param viewpath
* @param dataMap
* @param attachments
*/
public static void send(String to,List<String> cc ,String subject,String viewpath ,Map<String, Object> dataMap,List<File> attachments){
mailPro.send(to, cc, subject, viewpath , dataMap , attachments);
} /**
* 获取JavaMailSender
* @return
* 当前实例的JavaMailSender,用来定制化更复杂的邮件发送需求
*/
public static JavaMailSender getMailSender(){
return mailPro.getMailSender();
} }
从 MailKit 的代码中我们可以看到他的多种形式的邮件发送,只是参数的不同。
jfinal-mail-plugin配置多邮件数据源:
不同的邮件源写在不同的properties配置文件中。
然后在启动插件时指定发送源:
me.add(new MailPlugin(“mail2”,PropKit.use(“mail2.properties”).getProperties()));
最后在MailKit发送邮件时指定发送源:
MailKit.use(“mail2”).send(…);
JFinal项目发送邮件——jfinal-mail-plugin的更多相关文章
- jbolt插件创建jfinal项目
Jfina官方文档:https://www.jfinal.com/doc JFinal由Handler.Interceptor.Controller.Render.Plugin五大部分组成,且JFin ...
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- 初尝 JFinal 项目(一)
temp1: JFinal项目与JAVA项目类似,有属性方法.操作方法.Sql语句操作.jdbc.配置文件 对比:|| JAVA: Bean / Srv(Server) / SqlMap / jdbc ...
- IDEA下利用Jrebel插件实现JFinal项目main方法【热加载】
IDEA下利用Jrebel插件实现JFinal项目main方法[热加载] Jrebel破解办法 https://github.com/ilanyu/ReverseProxy/releases/tag/ ...
- linux 环境下tomcat中部署jfinal项目
tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...
- 投资20万研发的JFinal项目《旅游线路营销管理系统》准备公开课中
18年初上线了一套旅游营销管理系统,目前给几个合作客户内测试用,是基于JFinal研发的一套旅游行业旅游线路批发零售系统(SAAS)版. 系统终端: PC后台管理分:总部.线路批发商.旅行社门店.个人 ...
- JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误
JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误,在本次项目中的原因是我的表中的字段信息中创建时间的字段是creat ...
- JFinal项目eclipse出现the table mapping of model: com.gexin.model.scenic.Scenic not exists or the ActiveRecordPlugin not start.
JFinal项目eclipse出现the table mapping of model: com.gexin.model.scenic.Scenic not exists or the ActiveR ...
- jfinal项目报java.lang.ClassNotFoundException: com.jfinal.core.JFinalFilter
在eclipse中启动jfinal项目时,项目报错如下:首先:右击项目–>Build Path–>Source查看Default output folder如果是目录/WEB-INF/cl ...
随机推荐
- 【BZOJ2998】Problem A(动态规划)
[BZOJ2998]Problem A(动态规划) 题面 BZOJ 题解 一个人的成绩范围可以确定为一个区间 这样就变成了 选择若干区间,不重合, 每个区间有个权值,求最大权值和 这样就可直接\(dp ...
- 厉害了!阿里安全图灵实验室在ICDAR2017 MLT竞赛刷新世界最好成绩
近日,阿里安全图灵实验室(Alibaba Turing Lab)的ATL Cangjie OCR算法在ICDAR2017的MLT(Competition on Multi-lingual scene ...
- js备战春招の四の正则表达式详解
正则表达式语法规则:/正则表达式主体/修饰符(可选)什么是正则表达式:正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象.这些模式被用于 RegExp 的 ex ...
- cdlinux可以安装在c盘
以前一直以为cdlinux只能安装在优盘上,今天发现还可以安装在c盘,也就成了双系统,然后发现这个还是和grub4dos有关,grub4dos好厉害啊,然后不同的制作软件,不管是优盘还是直接安装在电脑 ...
- input依次输入密码
原理: 一个真正的可以输入的input框,opacity: 0,设定位层级:(视图不可见的) 再来6(n)个input,readyonly,用来显示,type为password,设置好样式:(视图可见 ...
- linux PMBus总线及设备驱动分析
PMBus协议规范介绍 PMBus是一套对电源进行配置.控制和监控的通讯协议标准.其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus.AVSBus等特性.在其官网上有详细 ...
- git下载Ardupilot源码
pwd #确定当前目录 mkdir Copter-3.5.4 #如有需要,新建目录 cd Copter-3.5.4 #进入新目录文件 #克隆指定分支,并且克隆分支对应的git子模块 git clone ...
- python import自定义模块方法
转自:http://www.cnitblog.com/seeyeah/archive/2009/03/15/55440.html python包含子目录中的模块方法比较简单,关键是能够在sys.pat ...
- Redis学习笔记01--主从数据库配置
1.创建公共配置文件 所有配置文件添加到以下目录: /xxxx/redis-slave-master 创建公共的redis配置文件,直接使用redis的默认配置文件,修改以下配置项: bind 127 ...
- 排序算法Java实现(快速排序)
算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止. ...