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 ...
随机推荐
- 【BZOJ3924】幻想乡战略游戏(动态点分治)
[BZOJ3924]幻想乡战略游戏(动态点分治) 题面 权限题...(穷死我了) 洛谷 题解 考虑不修改 发现一个贪心的做法 假设当前放在当前位置 如果它有一个子树的兵的总数大于总数的一半 那么,放到 ...
- java中获取所有的请求参数
//获取所有的请求参数 Enumeration<String> paraNames=request.getParameterNames(); for(Enumeration<Stri ...
- c#抽取pdf文档标题(4)——机器学习以及决策树
我的一位同事告诉我,pdf抽取标题,用机器学习可以完美解决问题,抽取的准确率比较高.于是,我看了一些资料,就动起手来,实践了下. 我主要是根据以往历史块的特征生成一个决策树,然后利用这棵决策树,去判断 ...
- Spring MVC执行流程
SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架. 其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发 SpringMVC通过中央调 ...
- 【解高次同余方程】51nod1038 X^A Mod P
1038 X^A Mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 X^A mod P = B,其中P为质数.给出P和A B,求< P的所有X. 例如:P = 11 ...
- WordPress给网站添加支付宝捐赠功能
最开始是在陌小雨的博客上看见这个功能,其实一般个人网站都会添加这个功能,下面我会讲解两种,不多说,上图: 1.添加到网页中任何位置: 上图这个功能可以添加到网页中的任何位置,可以在文章中添加,也可以利 ...
- 3D模型展示以及体积、表面积计算
本文原创 如转载请注明出处!!! 本博客地址http://www.cnblogs.com/we-jack 本文原创,如果有同样需求的小伙伴请第一时间联系我 或者在留言区留言 上次为大家提供了3D模型的 ...
- VMware静态地址上网
虚拟机通过dhcp获取ip,当系统重启时可能导致ip变更,出现不必要的麻烦,以下是通过nat模式设置虚拟机静态ip同时能够上网的方式. 编辑VMware,依次点击“编辑”--“虚拟网络编辑器” 注:为 ...
- python学习03-数据类型
一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...
- Mycat 分片规则详解--一致性hash分片
实现方式:基于hash算法的分片中,算法内部是把记录分片到一种叫做"bucket"(hash桶)的内部算法结构中的,然后hash桶与实际的分片节点一一对应,从此实现了分片.路由的功 ...