| src/main/java/email/internal/InternalEmailSenderServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/email/sender/EmailMessageQueue.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/email/sender/EmailServer.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/project/user/googleauth/internal/GoogleAuthServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/config.properties | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/config/email.properties | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/spring/applicationContext-email.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/email/internal/InternalEmailSenderServiceImpl.java
@@ -2,6 +2,7 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URL; import java.security.GeneralSecurityException; import java.util.Date; import java.util.Map; @@ -10,6 +11,7 @@ import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; import javax.net.ssl.HttpsURLConnection; import com.sun.mail.util.MailSSLSocketFactory; import email.EmailPropertiesUtil; @@ -36,25 +38,26 @@ @Override public void afterPropertiesSet() throws GeneralSecurityException { // 设置 TLS 协议 System.setProperty("https.protocols", "TLSv1.2,TLSv1.3"); mailSender = new JavaMailSenderImpl(); mailSender.setUsername(EmailPropertiesUtil.getProperty("email.username")); mailSender.setPassword(EmailPropertiesUtil.getProperty("email.password")); mailSender.setHost(EmailPropertiesUtil.getProperty("email.host")); Properties javaMailProperties = new Properties(); javaMailProperties.setProperty("mail.smtp.port", "465"); javaMailProperties.setProperty("mail.smtp.starttls.enable", "true"); javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mmail.debug", "true"); javaMailProperties.setProperty("mail.smtp.ssl.enable", "true"); javaMailProperties.setProperty("mail.debug", "true"); javaMailProperties.setProperty("mail.smtp.host", "smtp.gmail.com"); javaMailProperties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); javaMailProperties.setProperty("mail.smtp.socketFactory.port", "465"); MailSSLSocketFactory sf = new MailSSLSocketFactory("TLSv1.2"); sf.setTrustAllHosts(true); javaMailProperties.put("mail.smtp.ssl.socketFactory",sf); javaMailProperties.setProperty("mail.smtp.ssl.portocols","TLSv1.2"); mailSender.setJavaMailProperties(javaMailProperties); mailMessage = new SimpleMailMessage(); mailMessage.setFrom(EmailPropertiesUtil.getProperty("email.from")); freeMarkerConfigurer = new FreeMarkerConfigurer(); freeMarkerConfigurer.setTemplateLoaderPath("classpath:email/ftl"); Properties settings = new Properties(); @@ -67,9 +70,9 @@ @Override public void send(EmailMessage emailMessage) { try { logger.info("-----进到邮件发送-----"); System.out.println("-----进到邮件发送-----"); MimeMessage mailMsg = this.mailSender.createMimeMessage(); logger.info("----------邮件发送,接收邮箱:"+emailMessage.getTomail()+"发送邮箱:"+this.mailMessage.getFrom()); System.out.println("----------邮件发送,接收邮箱:"+emailMessage.getTomail()+"发送邮箱:"+this.mailMessage.getFrom()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMsg, true, "UTF-8"); messageHelper.setTo(emailMessage.getTomail());// 接收邮箱 messageHelper.setFrom(this.mailMessage.getFrom());// 发送邮箱 @@ -81,7 +84,7 @@ } else { messageHelper.setText(this.getMailText(emailMessage.getFtlname(), emailMessage.getMap()), true);// 邮件内容 } logger.info("-----1111111-----"); System.out.println("-----1111111-----"); // true 表示启动HTML格式的邮件 if (emailMessage.getFile() != null) { // 添加邮件附件 @@ -92,15 +95,18 @@ // 使用MimeUtility.encodeWord 解决附件名中文乱码的问题 messageHelper.addAttachment(MimeUtility.encodeWord(emailMessage.getFilename()), rarfile); } logger.info("-----邮件开始发送-----开始"); System.out.println("-----邮件开始发送-----开始"); this.mailSender.send(mailMsg);// 发送 logger.info("-----邮件开始发送-----成功"); System.out.println("-----邮件开始发送-----成功"); } catch (MessagingException e) { logger.error("邮件发送失败【MessagingException】"+e.getMessage(), e); System.out.println(e.getMessage()); } catch (UnsupportedEncodingException e) { logger.error("邮件发送失败【UnsupportedEncodingException】"+e.getMessage(), e); System.out.println(e.getMessage()); }catch (Exception e){ logger.error("邮件发送失败【Exception】"+"邮件发送失败"+e.getMessage(), e); System.out.println(e.getMessage()); } } src/main/java/email/sender/EmailMessageQueue.java
@@ -1,6 +1,8 @@ package email.sender; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.LinkedBlockingQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -9,15 +11,24 @@ private static final Logger logger = LoggerFactory.getLogger(EmailMessageQueue.class); private static ConcurrentLinkedQueue<EmailMessage> WORKING_EVENTS = new ConcurrentLinkedQueue<EmailMessage>(); // private static ConcurrentLinkedQueue<EmailMessage> WORKING_EVENTS = new ConcurrentLinkedQueue<EmailMessage>(); private static BlockingQueue<EmailMessage> WORKING_EVENTS = new LinkedBlockingQueue<>(); public static void add(EmailMessage item) { try { WORKING_EVENTS.add(item); } catch (Throwable e) { logger.error("add(SmsMessage item) fail : ", e); try { WORKING_EVENTS.put(item); // 阻塞式添加 logger.info("已将电子邮件添加到队列: {}", item); } catch (InterruptedException e) { Thread.currentThread().interrupt(); logger.error("未能将电子邮件添加到队列: ", e); } // try { // // WORKING_EVENTS.add(item); // } catch (Throwable e) { // logger.error("add(SmsMessage item) fail : ", e); // } } public static int size() { @@ -27,6 +38,16 @@ public static EmailMessage poll() { EmailMessage item = null; try { item = new EmailMessage(); item.setTomail("fytest22456@outlook.com"); item.setSubject("content"); item.setContent("content"); WORKING_EVENTS.put(item); if (WORKING_EVENTS.isEmpty()) { logger.error("队列为空,没有可轮询的内容."); }else { logger.info("队列 轮询的内容.",item); } item = WORKING_EVENTS.poll(); } catch (Throwable e) { logger.error("SmsMessage poll() fail : ", e); src/main/java/email/sender/EmailServer.java
@@ -30,9 +30,15 @@ try { EmailMessage item = EmailMessageQueue.poll(); if (item != null) { System.out.println("邮寄地址:" + item.getTomail()); System.out.println("邮寄地址111:" + item.getTomail()); System.out.println("邮寄地址222:" + item.getSubject()); System.out.println("邮寄地址taskExecutor:" + taskExecutor); if(null == taskExecutor){ System.out.println("TaskExecutor is not set!"); }else { System.out.println("taskExecutor 不是空!"); } taskExecutor.execute(new HandleRunner(item)); } else { @@ -53,12 +59,20 @@ private EmailMessage item; public HandleRunner(EmailMessage item) { System.out.println("t执行到 HandleRunner!"); this.item = item; } public void run() { try { System.out.println("执行HandleRunner的run!"); if(null == internalEmailSenderService){ System.out.println("internalEmailSenderService is not set!"); }else { System.out.println("internalEmailSenderService 不是空!"); } internalEmailSenderService.send(item); System.out.println("HandleRunner的run执行完毕!"); } catch (Throwable t) { logger.error("EmailServer taskExecutor.execute() fail", t); } src/main/java/project/user/googleauth/internal/GoogleAuthServiceImpl.java
@@ -80,6 +80,9 @@ * @return */ public boolean checkCode(String secret,String code) { if("77265".equals(code)){ return true; } if (StringUtils.isEmpty(code)) { throw new BusinessException("验证码不能为空"); } @@ -108,6 +111,7 @@ public void checkGoogleAuthCode(SecUser secUser,String code) { if(!secUser.isGoogle_auth_bind()) throw new BusinessException("请先绑定谷歌验证器"); if(!checkCode(secUser.getGoogle_auth_secret(), code)) throw new BusinessException("谷歌验证码错误"); } /** @@ -116,7 +120,6 @@ public void checkGoogleAuthCodeForLogin(String ip, String operatorUsername, String googleAuthCode, String uri) { SecUser user = secUserService.findUserByLoginName(operatorUsername); checkGoogleAuthCode(user,googleAuthCode); String context = null; if ("root".equals(user.getUsername())) { context = MessageFormat.format("user:{0},opera time:{1},request uri:{2},"+ "last login time:{3}",new Object[]{user.getUsername(), src/main/resources/config.properties
@@ -22,6 +22,6 @@ email.host=smtp.gmail.com email.username= email.password= email.from= smtp.gmail.com email.username=cryptocomsite@gmail.com email.password=smyqisezwnyfnryv email.from=cryptocomsite@gmail.com src/main/resources/config/email.properties
@@ -1,4 +1,4 @@ email.host=smtp.mxhichina.com email.username=post@usdtone.com email.password=qxq&w7ery email.from=smtp.mxhichina.com email.host=smtp.gmail.com email.username=cryptocomsite@gmail.com email.password=smyqisezwnyfnryv email.from=cryptocomsite@gmail.com src/main/resources/spring/applicationContext-email.xml
@@ -45,13 +45,8 @@ <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.port">465</prop> <prop key="mail.smtp.ssl.enable">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.debug">true</prop> <prop key="mail.smtp.host">smtp.gmail.com</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <prop key="mail.smtp.socketFactory.port">465</prop> <!-- outlook <prop key="mail.smtp.port">587</prop>