关于jfinal发送邮件走过的坑

  最近接到一个写发送邮件的功能开发,使用的是jfinal框架。本来打算使用javamail一步步来的,后来看到jfinal有自带的发邮件的插件(jfinal-mail-plugin),只需两三行代码即可以完成发邮件的功能,顿时心中大喜,可是,坑一个赛一个的大。下面是开发步骤和遇到坑。html

1.在pom.xml中添加maven依赖java

<!-- 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邮箱,感兴趣的小伙伴能够试试别的邮箱。
相关文章
相关标签/搜索