關於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郵箱,感興趣的小伙伴可以試試別的郵箱。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM