发邮件

1. 需求背景

  1.1 需求描述

  界面上可以显示公司数据库中的数据库、数据库下面对应的数据表和表的注释,没有表查看权限的员工只能看到界面上显示的信息,不能查看具体的表内容。现在没有权限的员工想要查看具体表的信息,就需要在界面上选中想要查看的表名进行申请。员工在界面上选中先要查看的表信息,点击发送 "申请" 按钮后。后台需要做两件事情,一是把申请的信息存入到数据库中,而是发送一封邮件给管理员,由管理员进行申请审核。

  1.2 需求图示

2. 分析需求

3. 表设计

4. 概要设计

5. 详细设计

6. 编码实现

7. 测试

    /**
     * 发送复杂邮件
     *
     * @param jsonObject
     * @throws Exception
     */
    private void sendComplexMail(JSONObject jsonObject) throws Exception {
        MimeMessage mimeMessage = this.javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        // 发件人
        mimeMessageHelper.setFrom("2435049674@qq.com");
        // 收件人
        mimeMessageHelper.setTo("2954518534@qq.com");
        // 邮件主题
        mimeMessageHelper.setSubject("测试主题-复杂");
        // 正文
        // 1. 申请信息构造
        JSONObject applyUser = jsonObject.getJSONObject("applyUser");
        ApplyUser applyUser1 = JSONObject.toJavaObject(applyUser, ApplyUser.class);

        JSONObject applyMessage = jsonObject.getJSONObject("applyMessage");
        ApplyMessageNew applyMessageNew = JSONObject.toJavaObject(applyMessage, ApplyMessageNew.class);

        List<String> batchApplyAccountList = applyMessageNew.getBatchApplyAccount();
        List<ApplyTableMessage> applyTableList = applyMessageNew.getApplyTable();

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("<b style='color:red;'>申请人信息如下:").append("</b>").append("<br>");
        stringBuilder.append("<b>申请人姓名: </b>").append(applyUser1.getApplyUserName()).append("<br>");
        stringBuilder.append("<b>申请人UM账号:</b>").append(applyUser1.getApplyUserAccount()).append("<br>");
        stringBuilder.append("<b>申请人岗位:</b>").append(applyUser1.getApplyJob()).append("<br>");
        stringBuilder.append("<b>申请人部门:</b>").append(applyUser1.getApplyDepartment()).append("<br>").append("<br>");
        stringBuilder.append("<b style='color: red;'>申请信息如下:</b><br>");
        stringBuilder.append("<b>申请原因:</b>").append(applyMessageNew.getApplyReason()).append("<br>");
        stringBuilder.append("<b>申请时间:</b>").append(applyMessageNew.getFormatDate()).append("<br>");
        stringBuilder.append("<b>批量申请人:</b>").append(batchApplyAccountList).append("<br>");

        stringBuilder.append("<table border='1px' width='100%'>");
        stringBuilder.append("<tr height='50px'>");
        stringBuilder.append("<td>编号</td>");
        stringBuilder.append("<td>库名</td>");
        stringBuilder.append("<td>表名</td>");
        stringBuilder.append("<td>表注释</td>");
        stringBuilder.append("</tr>");
        for (ApplyTableMessage tableMessage : applyTableList) {
            stringBuilder.append("<tr>");
            stringBuilder.append("<td>").append(tableMessage.getId()).append("</td>");
            stringBuilder.append("<td>").append(tableMessage.getDatabaseName()).append("</td>");
            stringBuilder.append("<td>").append(tableMessage.getTableName()).append("</td>");
            stringBuilder.append("<td>").append(tableMessage.getTableComment()).append("</td>");
            stringBuilder.append("</tr>");
        }
        stringBuilder.append("</table>");
        mimeMessageHelper.setText(stringBuilder.toString(), true);
        // 附件
//        mimeMessageHelper.addAttachment("1.jpg", new File("C:\\Users\\Sun\\Desktop\\1.jpg"));
        javaMailSender.send(mimeMessage);
    }

 

 

上一篇:ssh-copy-id: command not found 解决方法


下一篇:yum仓库的搭建、http的安装、sed的用法