目錄
- 一、摘要
- 1.1 項目介紹
- 1.2 項目錄屏
- 二、功能模塊
- 2.1 系統用戶模塊
- 2.2 收件箱模塊
- 2.3 發件箱模塊
- 2.4 垃圾箱模塊
- 2.5 回收站模塊
- 2.6 郵箱過濾設置模塊
- 三、實體類設計
- 3.1 系統用戶
- 3.2 郵件
- 3.3 其他實體
- 四、系統展示
- 五、核心代碼
- 5.1 查詢收件箱檔案
- 5.2 查詢回收站檔案
- 5.3 新增郵件的附件
- 5.4 新增白名單檔案
- 5.5 增改黑名單檔案
- 六、免責說明
一、摘要
1.1 項目介紹
基于JAVA+Vue+SpringBoot+MySQL的不良郵件過濾系統,包含了發件箱、收件箱、垃圾箱、回收站、黑名單、白名單和關鍵詞過濾模塊,還包含系統自帶的用戶管理、班級管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,不良郵件過濾系統基于角色的訪問控制,給郵件管理員、普通用戶使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。
1.2 項目錄屏
二、功能模塊
2.1 系統用戶模塊
系統用戶模塊包含了系統登陸用戶的檔案維護。我們需要建立一個檔案來維護用戶,包括用戶的郵箱地址、發信人名字、手機號、身份證、權限等數據。
2.2 收件箱模塊
收件箱模塊包含了系統用戶正常收到的所有郵件,用戶可以在此模塊中查詢自己收到的電子郵件。
2.3 發件箱模塊
發件箱模塊包含了電子郵件的發送界面,還包括了系統用戶歷史發送的郵件檔案,和未發出的草稿郵件信息。
2.4 垃圾箱模塊
垃圾箱模塊包含了系統用戶收到的垃圾信息。這些郵件是被用戶設置的過濾規則所過濾的郵件檔案,用戶可以在垃圾箱模塊中查詢它們。
2.5 回收站模塊
系統用戶可以主動刪除收到的郵件,用戶操作刪除后,郵件會自動進入到回收站作為緩沖區。用戶如果在可以在回收站再次刪除文件,即徹底刪除郵件信息。
2.6 郵箱過濾設置模塊
系統用戶可以自定義配置適合自己的過濾規則,如設置黑名單防止騷擾,設置白名單避免誤傷,設置關鍵詞以便更精確的過濾郵件。
三、實體類設計
3.1 系統用戶
系統用戶登錄模塊管理郵件系統的登錄帳戶,用戶信息包括帳號、性別、手機號碼、生日、身份證號碼、電子郵件、注冊日期、備注等其中,賬號是系統用戶的決定因素。
3.2 郵件
發件箱、收件箱、垃圾箱、回收站模塊分別是對郵件進行記錄并管理,其中郵件的信息包括了郵件的郵件ID、發件人ID、發件人姓名、收件人ID、收件人姓名、郵件標題、郵件內容、附件、備注等,其中郵件ID是郵件的確定性因素。
3.3 其他實體
黑名單表,用于存儲系統用戶的黑名單數據,包括的拉黑的規則名稱、郵箱地址、生效用戶ID和備注信息。
白名單表,用于存儲系統用戶的白名單數據,包括的拉白的規則名稱、郵箱地址、生效用戶ID和備注信息。
關鍵詞表,用于存儲系統用戶的配置的過濾關鍵詞,包括的關鍵詞、生效用戶ID這兩個字段。
四、系統展示
五、核心代碼
5.1 查詢收件箱檔案
@RequestMapping(value = "/getByShouPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢收件箱檔案")
public Result<IPage<MailArchives>> getByShouPage(@ModelAttribute MailArchives mailArchives ,@ModelAttribute PageVo page){User currUser = securityUtil.getCurrUser();QueryWrapper<MailArchives> qw = new QueryWrapper<>();qw.eq("to_id",currUser.getId());if(!ZwzNullUtils.isNull(mailArchives.getFromUser())) {qw.like("from_user",mailArchives.getFromUser());}if(mailArchives.getStatus() > 0) {qw.eq("status",mailArchives.getStatus() - 1);}qw.ne("status",3);IPage<MailArchives> data = iMailArchivesService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<MailArchives>>().setData(data);
}
5.2 查詢回收站檔案
@RequestMapping(value = "/getByLaJiPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢回收站檔案")
public Result<IPage<MailArchives>> getByLaJiPage(@ModelAttribute MailArchives mailArchives ,@ModelAttribute PageVo page){User currUser = securityUtil.getCurrUser();QueryWrapper<MailArchives> qw = new QueryWrapper<>();qw.eq("to_id",currUser.getId());if(!ZwzNullUtils.isNull(mailArchives.getFromUser())) {qw.like("from_user",mailArchives.getFromUser());}qw.eq("status",3);IPage<MailArchives> data = iMailArchivesService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<MailArchives>>().setData(data);
}
5.3 新增郵件的附件
@RequestMapping(value = "/addFile", method = RequestMethod.GET)
@ApiOperation(value = "新增郵件的附件")
public Result<Object> addFile(@RequestParam String mailId,@RequestParam String fileId){String[] fileSplit = fileId.split("/");File file = iFileService.getById(fileSplit[fileSplit.length - 1]);if(file == null) {return ResultUtil.error("附件文件不存在");}MailArchives mailArchives = iMailArchivesService.getById(mailId);if(mailArchives == null) {return ResultUtil.error("郵件不存在");}MailFile mailFile = new MailFile();mailFile.setFileId(fileId);mailFile.setMailId(mailId);mailFile.setFileSize(file.getSize());mailFile.setTitle(file.getName());iMailFileService.saveOrUpdate(mailFile);return ResultUtil.success();
}
5.4 新增白名單檔案
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增白名單檔案")
public Result<Whitelist> insert(Whitelist whitelist){if(ZwzNullUtils.isNull(whitelist.getMailAddress())) {return ResultUtil.error("白名單郵箱不能為空");}QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("email",whitelist.getMailAddress());User findUser = iUserService.getOne(userQw);if(findUser == null) {return ResultUtil.error("非系統用戶郵箱");}whitelist.setMailId(findUser.getId());User currUser = securityUtil.getCurrUser();whitelist.setUserId(currUser.getId());iWhitelistService.saveOrUpdate(whitelist);return new ResultUtil<Whitelist>().setData(whitelist);
}
5.5 增改黑名單檔案
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增黑名單檔案")
public Result<Blacklist> insert(Blacklist blacklist){if(ZwzNullUtils.isNull(blacklist.getMailAddress())) {return ResultUtil.error("黑名單郵箱不能為空");}QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("email",blacklist.getMailAddress());User findUser = iUserService.getOne(userQw);if(findUser == null) {return ResultUtil.error("非系統用戶郵箱");}blacklist.setMailId(findUser.getId());User currUser = securityUtil.getCurrUser();blacklist.setUserId(currUser.getId());iBlacklistService.saveOrUpdate(blacklist);return new ResultUtil<Blacklist>().setData(blacklist);
}
六、免責說明
- 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
- 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。