关于jfinal发送邮件走过的坑
最近接到一个写发送邮件的功能开发,使用的是jfinal框架。原本打算使用javamail一步步来的,后来看到jfinal有自带的发邮件的插件(jfinal-mail-plugin),只需两三行代码便可以完成发邮件的功能,顿时心中大喜,但是,坑一个赛一个的大。下面是开发步骤和遇到坑。
1.在pom.xml中添加maven依赖
<!-- jfinal邮件插件 -->
<dependency>
<groupId>cn.fsdev</groupId>
<artifactId>jfinal-mail-plugin</artifactId>
<version>3.0</version>
</dependency>
这里只是使用插件,没有使用jfinal-mailer,如果你使用的是jfinal-mailer,下面的配置文件需要注意下。 2.添加发送邮件的配置文件,文件内容如下:
#邮箱HOST
host=smtp.qq.com
#协议
protocol=smtp
#端口
port=465
#用户名
username=
#密码 这个是授权码,不是QQ邮箱的密码,https://jingyan.baidu.com/article/c275f6ba61c583e33d756735.html
password=
#权限认证
mail.smtp.auth=true
#超时时间
mail.smtp.timeout=5000
#是否是ssl
mail.smtp.ssl.enable=true
如果你使用的是jfinal-mailer,那么每个变量前都需要添加smtp 3.JFinalConfig中启用插件 plugins .add(new MailPlugin(PropKit.use("mail.properties").getProperties())); 4.编写测试类
MailKit.send("xxx@qq.com",null, "邮件标题", "邮件内容");
!!!踩过得坑
1. 项目启动报这个错 com.jfplugin.mail.MailPlugin cannot be cast to com.jfinal.plugin.IPlugin
这个是因为我用idea开发的原因,需要添加配置文件并且设置idea,具体操作可以查看官网的解决办法。 https://www.jfinal.com/doc/1-9
2.在启动测试类的时候 一直报这个错 at com.jfplugin.mail.MailKit.send(MailKit.java:61)
查看了源码,没发现我写的代码问题,最后查看了别人的项目才发现,在启动发邮件的方法之前还要加一句启动插件的代码
new MailPlugin(PropKit.use("mail.properties").getProperties()).start();
问题完美解决,目前只测试了QQ邮箱,感兴趣的小伙伴可以试试别的邮箱。
关于jfinal发送邮件走过的坑的更多相关文章
- 记一次ftp服务器搭建走过的坑
记一次ftp服务器搭建走过的坑 1.安装 ①下载 wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz #要FQ ②解压 ta ...
- php支付走过的坑(微信篇 包含h5支付和app支付 注册 秘钥 环境等等配置)
支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...
- php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)
支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...
- 【转】8年!我在OpenStack路上走过的坑。。。
8年!我在OpenStack路上走过的坑... 摘要: 2010年10月,OpenStack发布了第一个版本:上个月,发布了它的第18个版本Rocky.几年前气氛火爆,如今却冷冷清清.Rocky版本宣 ...
- 最近走过的坑 :slf4j 多个实现 hibernate 类型转换异常 bean依赖问题
最近走过的坑 slf4j 多个实现 主要是maven依赖中存在多个slf4j的实现类,在引入的依赖中排除对应的依赖就可以 <dependency> <groupId>xxxxx ...
- 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记
功能需求 因为项目需要有个忘记密码验证邮箱再重新修改密码的功能,然后我选用了很简单的一个方案,通过验证登录用户的邮箱然后发送邮件,通过这个邮件发送的链接地址来最后实现密码修改的小功能. 项目环境及实现 ...
- MongoDB走过的坑(4.0.3版本)
数据存储一般使用本地或者存储在数据库,MongoDB是一个非关系型数据库,今天小结下走过的一些坑. 1.网上的很多教程对自己无效 解决方法:这种情况一般都是和版本有关系,数据库在不断的更新发展,很多东 ...
- 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案
相信很多小伙伴都在android开发中遇到调用jni的各种巨坑,因为我们不得不在很多地方用到第三方库so文件,然而第三方官方通常都只会给出ADT环境下的集成方式,而谷歌亲儿子android studi ...
- css走过的坑
css盒模型 1.内联元素 设置宽高无效.margin左右有效上下无效.padding都有效 会被当做字体所以内联之间有间隙 父级元素要设置font-size:0; 内联元素:a.b.button.e ...
随机推荐
- 12. Application-specific scanners (特定应用程序扫描器)
ike-scan是使用IKE协议发现.指纹和测试IPsec VPN服务器的命令行工具. 它通过向网络中的每个主机发送特制的IKE数据包来扫描VPN服务器的IP地址. 运行IKE的大多数主机都会响应,识 ...
- macbook远程连接报错no matching cipher found
在.ssh/目录下添加config文件 Host xxx.xxx.xxx.xxx Ciphers 3des-cbc KexAlgorithms +diffie-hellman-group1-sha1 ...
- git 创建删除分支
进入仓库目录 -- 查看本地分支 git branch -- 查看远程分支 git branch -r -- 查看远程和本地的分支 git branch -a -- 下载远程分支代码,并切换到分支 进 ...
- css颜色的设置
css的颜色设置 1.英文命令颜色 p{color:blue;}RGB颜色 2.与 photoshop 中的 RGB 颜色一致,由 R(red).G(green).B(blue) 三种颜色的比例来配色 ...
- Shell脚本出现$'\r': command not found
Centos7下执行shell脚本报错如下 [root@ip---- ~]# sh install_zabbix_agent.sh install_zabbix_agent.: $'\r': comm ...
- Vue.js 父子组件之间通信的方式
Vue 父子组件之间的同学有一下几种方式: 1. props 2. $emit -- 组件封装用的比较多 3. .sync -- 语法糖 4. $attrs 和 $listeners -- 组件封装用 ...
- 1、链表之增、删、查实现(C语言)
一.功能描述: 可以创建节点并添加到链表中.查看链表中的所有节点.并可以删除特定的节点 二.代码实现 1.主函数main主要实现的是从后台键入不同的字符,执行对应的函数来实现特定的操作代码如下: in ...
- 基于scrapy源码实现的自定义微型异步爬虫框架
一.scrapy原理 Scrapy 使用了 Twisted异步网络库来处理网络通讯.整体架构大致如下 Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框 ...
- 黄聪:C#获取网页HTML内容的三种方式
C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ...
- Spring编程式事务管理和声明式事务管理
本来想写一篇随笔记一下呢,结果发现一篇文章写的很好了,已经没有再重复写的必要了. https://www.ibm.com/developerworks/cn/education/opensource/ ...