不重复发送邮件(附邮件模板)

功能背景

每个月月初要定时发送Libor自动调息邮件提醒当月有任务的项目经理,因为有多个项目的项目经理是同一个人,所以要给收件人去重

SQL里面不好邮箱去重因为会影响到查询,所以在代码里面去重

思路

再使用一个emailList来设置email收件人,使用contains来去重,如果emailList 中有 查询到 已有的email ,则直接跳过此次新增emailList,如果没有查询到,则新增到emailList

List.contains

contains(),该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。

代码

//设置收件人为主办经理
        List<String> emailList = new ArrayList<>();
        for (InterestAdjustEntity entity:list){
            //如果发送列表有相同的人则不重复发送
            if (emailList.contains( entity.getEmail() )){
                continue;
            }
            emailList.add(entity.getEmail());
        }
        //发送邮件
        EMailUtil.send(smtphost, username, password, "当月LIBOR调息提醒", content.toString(),emailList);

邮件模板

/**
     * LIBOR发送邮件的方法
     *
     * @param list 要发送的信息
     * @throws IOException
     * @throws MessagingException
     */
    public void liborSendEmail(List<InterestAdjustEntity> list) throws IOException, MessagingException {
        StringBuilder content = new StringBuilder();
        //libor项目
        if (list.size() > 0) {
            content.append("<table   width='100%' border='1' cellpadding='10' cellspacing='1' style='border:1px solid #EAEFF0;margin-top:20px'>");
            content.append("<tr style='color:#333333; font-weight:bold;'><th colspan='6' style='border:1px solid #EAEFF0;background-color:#B0C4DE'>Libor项目</th></tr>");
            content.append("<tr style='color:#333333; font-weight:bold;'>");
            content.append("<th width='5%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>序号</th>");
            content.append("<th width='20%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>借据编号</th>");
            content.append("<th width='25%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>借据名称</th>");
            content.append("<th width='25%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>下一重定价日</th>");
            content.append("<th width='15%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>下一调息日</th>");
            content.append("<th width='10%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>主办经理</th></tr>");
            int i = 0;
            for (InterestAdjustEntity entity : list) {
                content.append("<tr style='color:#333333; font-weight:bold;'>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + ++i + "</td>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getRecepitNo() + "</td>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getRecepitName() + "</td>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + DateFormatUtils.format(entity.getNextPriceDate(), "yyyy-MM-dd") + "</td>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + DateFormatUtils.format(entity.getNextRepriceDate(), "yyyy-MM-dd") + "</td>");
                content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getStaffName() + "</td></tr>");
            }
            content.append("</table>");
        }

        //测试邮箱
        //设置收件人为主办经理
        List<String> emailList = new ArrayList<>();
        for (InterestAdjustEntity entity:list){
            //如果发送列表有相同的人则不重复发送
            if (emailList.contains( entity.getEmail() )){
                continue;
            }
            emailList.add(entity.getEmail());
        }
        EMailUtil.send(smtphost, username, password, "当月LIBOR调息提醒", content.toString(),emailList);
    }

效果

邮件效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Visio是微软推出的一款流程图和信息图形绘制软件,提供了各种模板,方便用户创建不同类型的图表和图形。Visio模板分享是指用户可以将自己创建的模板分享给其他用户使用。 Visio模板分享有以下几个方面的好处。首先,通过分享模板,用户可以节省制作图表和图形的时间。有时候我们需要绘制类似的流程图或信息图形,如果能够使用其他用户分享的模板,就可以避免从头开始制作,大大提高工作效率。 其次,通过模板分享,用户可以学习和借鉴其他人的设计风格和技巧。有些用户在设计图表和图形时可能有独特的视觉风格或创意,在使用他们的模板时我们可以学习到他们的设计思路,并运用到自己的工作中。 再次,Visio模板分享可以促进用户之间的交流与合作。用户可以通过分享自己的模板,与其他用户交流和讨论,互相学习和提高。这种交流和合作有助于拓宽自己的视野,发现更多的应用场景和可能性。 最后,Visio模板分享也有助于推广自己的个人品牌或组织形象。如果用户创建了一些独特而受欢迎的模板,并分享给其他用户使用,就可以通过这些模板来展示自己的专业能力和创意水平,提高自身的知名度和声誉。 总之,Visio模板分享为用户提供了更多选择和便利,节省时间和学习成本,促进交流与合作,同时也是展示自己能力和个人品牌的机会。因此,模板分享在Visio使用者之间是十分重要和有价值的。 ### 回答2: Visio 是一款流程图和图形化建模工具,可以帮助用户快速创建专业的图表和图形。而 Visio 模板则是一种预先设计好的图表模板,包含了各种常见的图表类型和形状,可以帮助用户更加高效地创建自己所需的图表。 Visio 模板的分享功能可以帮助用户在团队协作或者交流中更加方便地共享已经设计好的图表模板。通过分享模板,用户可以将自己创建或者修改过的模板传递给其他人使用,或者从其他人那里获取已经设计好的模板,以提高工作效率。 在 Visio 中,用户可以将自己设计好的模板保存为模板文件,并通过不同的方式进行分享。常见的分享方式包括: 1. 共享链接:Visio 支持通过电子邮件或者消息工具发送共享链接,其他人可以通过点击链接直接获取模板文件。这种方式适用于小范围分享。 2. 上传至共享平台:用户可以将模板上传至共享平台,例如公司内部的文件共享系统或者云存储服务,供团队成员随时访问和使用。这种方式适用于大范围分享和长期共享。 3. 导出为可执行文件:Visio 还支持将模板导出为可执行文件,其他人可以直接运行该文件,无需安装 Visio 软件即可使用模板。这种方式适用于需要与没有 Visio 软件的人员进行分享。 通过分享模板,用户可以帮助团队成员或其他人快速获得已经设计好的专业图表模板,避免重复设计和浪费时间。同时,分享模板也能促进团队之间的协作和沟通,提高工作效率和质量。 ### 回答3: Visio 是一种流程图和图表的创建工具,而 Visio 模板则是为了简化创建过程和提供一致性而设计的预定义图形集合。使用 Visio 模板,我们可以快速创建各种专业的图表,如组织结构图、流程图、网络图、平面图等。 其中,Visio 模板的分享功能对于团队成员之间的协作非常有用。通过将 Visio 模板分享给其他人,团队成员可以在同一个模板上共同作业,减少工作重复和错误。分享模板还可以帮助保持文档一致性,确保每个人都使用同一种规范的图形和格式。 分享 Visio 模板的方法有几种。一种是将模板保存在共享文件夹中,然后将文件夹和所需的访问权限共享给团队成员。另一种方法是通过电子邮件或即时通讯工具发送模板文件给其他人。还可以使用在线协作工具,如 Microsoft Teams 或 SharePoint,将模板上传到云端,然后与团队共享链接。 分享 Visio 模板时,需要注意以下几点。首先,确保模板文件的大小适中,以便于传输和下载。其次,最好将模板另存为模板类型的文件,而不是保存为图形类型的文件,以便其他人能够方便地应用该模板。另外,还要提供一份帮助文档或说明,使其他人知道如何正确使用模板。 总之,Visio 模板的分享可以提高团队的工作效率和协作能力。通过共享模板,团队成员可以轻松创建一致且专业的图表,并避免重复劳动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值