關於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郵箱,感興趣的小夥伴能夠試試別的郵箱。
相關文章
相關標籤/搜索