发送邮件,收件人不存在过滤

多个收件人时,若有些收件人已不存在,则需要过滤收件人后重新发送

//收件人不存在的邮箱获取

 private static Set getInvalidAddress(SendFailedException e){
            Set mails = new HashSet<>();
            for(Address address: e.getInvalidAddresses()){
                mails.add(address.toString().trim());
            }
            return mails;
    }

 

然后在发完邮件的代码中加入

try{ 

}catch(SendFailedException sendFailException){
//异常捕获       

     Set failMails = getInvalidAddress(sendFailException);
            String[] mails = mailBean.getMultipleEmail().split(",");//获取原有邮件地址
            String newMails = "";
            for(String mail:mails){
                if(StringUtils.isBlank(mail)||failMails.contains(mail.trim())){
                    continue;//错误的邮件过滤
                }
                newMails += mail+",";
            }
            mailBean.setMultipleEmail(newMails);
            //重新发送邮件

              setHeader(mailBean);
            return new RuleMappingResult(true, "已过滤不存在的邮箱"+failMails+",重新发送");
        }

你可能感兴趣的:(发送邮件,收件人不存在过滤)