/** * 发送邮件 单发 * * @param title * @param content * @param email * @return * @throws Exception */ public static boolean sendEmail(String title, String content, String email) throws Exception { String emailHost = PropertyUtil.getInstance().getProperty(EMAIL_HOST); String emailPort = PropertyUtil.getInstance().getProperty(EMAIL_PORT); String emailName = PropertyUtil.getInstance().getProperty(EMAIL_NAME); String emailPassword = PropertyUtil.getInstance().getProperty(EMAIL_PASSWORD); logger.info( "emailHost=[" + emailHost + "],emailPort=[" + emailPort + "],emailName=[" + emailName + "],emailPassword=[" + emailPassword + "],title=[" + title + "],content=[" + content + "],email=[" + email + "]"); try { // 发送邮件需要使用的基本信息 MailSenderInfo mailInfo = new MailSenderInfo(); mailInfo.setMailServerHost(emailHost); // 发送邮件服务器接受 mailInfo.setMailServerPort(emailPort); // 端口 mailInfo.setValidate(true); // 校验用户名 mailInfo.setUserName(emailName); // 邮箱用户名 mailInfo.setPassword(emailPassword); // 邮箱密码 mailInfo.setFromAddress(emailName); // 邮箱用户名 mailInfo.setToAddress(email); // 接收方邮箱 mailInfo.setSubject(title); // 邮件抬头 mailInfo.setContent(content); // 邮件内容 // 简单邮件(不带附件的邮件)发送器 SimpleMailSender sms = new SimpleMailSender(); // sms.sendTextMail(mailInfo);//发送文体格式 sms.sendHtmlMail(mailInfo); // 发送html格式 } catch (Exception e) { logger.error("异常发生", e); } catch (Error e) { logger.error("错误发生", e); } finally { } return true; }
/** * 发送邮件 群发 * * @param title * @param content * @param emailList 邮件集合 * @return * @throws Exception */ public static boolean sendEmailFetch(String title, String content, List<String> emailList) throws Exception { String emailHost = PropertyUtil.getInstance().getProperty(EMAIL_HOST); String emailPort = PropertyUtil.getInstance().getProperty(EMAIL_PORT); String emailName = PropertyUtil.getInstance().getProperty(EMAIL_NAME); String emailPassword = PropertyUtil.getInstance().getProperty(EMAIL_PASSWORD); logger.info( "emailHost=[" + emailHost + "],emailPort=[" + emailPort + "],emailName=[" + emailName + "],emailPassword=[" + emailPassword + "],title=[" + title + "],content=[" + content + "],emailList.size=[" + emailList.size() + "]"); try { // 群发邮件批次大小 即一批可以群发多少个邮件 int emailFetchSize = Integer.parseInt(PropertyUtil.getInstance().getProperty(EMAIL_FETCH_SIZE)); // 管理员邮箱,用途:群发邮件时带上管理员邮箱,查看管理员邮箱是否收到邮件,用于检测该批次是否被邮件服务器屏蔽 String emailAdministrator = PropertyUtil.getInstance().getProperty(EMAIL_ADMINISTRATOR); /** 多个邮箱分批次群发,批次上限从配置文件读取 */ List<String> tempEmailList = new ArrayList<String>(); for (int i = 0; i < emailList.size(); i++) { if (StringUtils.isBlank(emailList.get(i))) { continue; } tempEmailList.add(emailList.get(i)); // 一旦达到 群发邮件批次大小 就群发 if (tempEmailList.size() == emailFetchSize) { // 群发前带上管理员邮箱 用于检测该批次是否被邮件服务器屏蔽 tempEmailList.add(emailAdministrator); // 将集合转化成数组 String[] toEmailArray = new String[tempEmailList.size()]; for (int j = 0; j < tempEmailList.size(); j++) { String email = tempEmailList.get(j); toEmailArray[j] = email; } // 发送邮件需要使用的基本信息 群发邮件 MailSenderInfo mailInfo = new MailSenderInfo(); mailInfo.setMailServerHost(emailHost); // 发送邮件服务器接受 mailInfo.setMailServerPort(emailPort); // 端口 mailInfo.setValidate(true); // 校验用户名 mailInfo.setUserName(emailName); // 邮箱用户名 mailInfo.setPassword(emailPassword); // 邮箱密码 mailInfo.setFromAddress(emailName); // 邮箱用户名 mailInfo.setToAddressArray(toEmailArray); // 接收方邮箱 mailInfo.setSubject(title); // 邮件抬头 mailInfo.setContent(content); // 邮件内容 // 简单邮件(不带附件的邮件)发送器 SimpleMailSender sms = new SimpleMailSender(); // sms.sendTextMail(mailInfo);//发送文体格式 sms.sendHtmlMailFetch(mailInfo); // 发送html格式 // 初始化邮件集合 tempEmailList = new ArrayList<String>(); } } // 判余下最后一批 if (tempEmailList.size() > 0) { // 将集合转化成数组 String[] toEmailArray = new String[tempEmailList.size()]; for (int j = 0; j < tempEmailList.size(); j++) { String email = tempEmailList.get(j); toEmailArray[j] = email; } // 发送邮件需要使用的基本信息 群发邮件 MailSenderInfo mailInfo = new MailSenderInfo(); mailInfo.setMailServerHost(emailHost); // 发送邮件服务器接受 mailInfo.setMailServerPort(emailPort); // 端口 mailInfo.setValidate(true); // 校验用户名 mailInfo.setUserName(emailName); // 邮箱用户名 mailInfo.setPassword(emailPassword); // 邮箱密码 mailInfo.setFromAddress(emailName); // 邮箱用户名 mailInfo.setToAddressArray(toEmailArray); // 接收方邮箱 mailInfo.setSubject(title); // 邮件抬头 mailInfo.setContent(content); // 邮件内容 // 简单邮件(不带附件的邮件)发送器 SimpleMailSender sms = new SimpleMailSender(); // sms.sendTextMail(mailInfo);//发送文体格式 sms.sendHtmlMailFetch(mailInfo); // 发送html格式 } } catch (Exception e) { logger.error("异常发生", e); } catch (Error e) { logger.error("错误发生", e); } finally { } return true; }