2 files modified
1 files added
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>Email Verification Code</title> |
| | | <style> |
| | | /* 内联样式确保邮件客户端兼容 */ |
| | | .code-box { |
| | | display: inline-block; |
| | | background-color: #000; /* 黑色背景 */ |
| | | color: #fff; /* 白色字体 */ |
| | | padding: 10px 20px; /* 内边距 */ |
| | | border-radius: 10px; /* 圆角 */ |
| | | font-size: 20px; /* 字体大小 */ |
| | | font-weight: bold; /* 加粗 */ |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | | <p>Thank you for creating a StakeCubepro account.</p> |
| | | <p>Please enter the following verification code to complete your registration:</p> |
| | | |
| | | <!-- 带样式的验证码 --> |
| | | <div class="code-box">${code}</div> |
| | | |
| | | <p>This code is valid for 10 minutes. Please do not share it with anyone.If this was not requested by you, please contact our customer support team immediately.</p> |
| | | <p style="text-align: right; margin-top: 30px;">— The StakeCubepro Team</p> |
| | | </body> |
| | | </html> |
| | | |
| | |
| | | } |
| | | // log.info(MessageFormat.format("target:{0},code:{1},ip:{2}", target, code, ip)); |
| | | |
| | | String content = MessageFormat.format("code is :{0}", new Object[] { code }); |
| | | String content = MessageFormat.format("[StakeCubePro]Verification Code: {0}", new Object[] { code }); |
| | | if (target.indexOf("@") == -1) { |
| | | |
| | | send_code_text = this.sysparaService.find("send_code_text").getSvalue(); |
| | |
| | | /** |
| | | * 邮件 |
| | | */ |
| | | emailSendService.sendEmail(target, content, MessageFormat.format(send_code_text, new Object[] { code })); |
| | | //emailSendService.sendEmail(target, content, MessageFormat.format(send_code_text, new Object[] { code })); |
| | | // 调用示例 |
| | | Map<String, Object> model = new HashMap<>(); |
| | | model.put("code", code); |
| | | emailSendService.sendEmail(target, content, "verification_email.ftl", model); |
| | | logger.info(MessageFormat.format("email--target:{0},code:{1},ip:{2}", target, code, ip)); |
| | | } |
| | | |
| | |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.Properties; |
| | | |
| | |
| | | private FreeMarkerConfigurer freeMarkerConfigurer; |
| | | |
| | | @Override |
| | | public void afterPropertiesSet() { |
| | | public void afterPropertiesSet() throws Exception { |
| | | mailSender = new JavaMailSenderImpl(); |
| | | mailSender.setUsername(PropertiesUtil.getProperty("email.username")); |
| | | mailSender.setPassword(PropertiesUtil.getProperty("email.password")); |
| | |
| | | settings.setProperty("default_encoding", "UTF-8"); |
| | | settings.setProperty("locale", "zh_CN"); |
| | | freeMarkerConfigurer.setFreemarkerSettings(settings); |
| | | |
| | | freeMarkerConfigurer.afterPropertiesSet(); |
| | | } |
| | | |
| | | /*@Override |
| | |
| | | messageHelper.addAttachment(MimeUtility.encodeWord(emailMessage.getFilename()), rarfile); |
| | | } |
| | | this.mailSender.send(mailMsg);// 发送 |
| | | } catch (MessagingException e) { |
| | | logger.error(e.getMessage(), e); |
| | | } catch (UnsupportedEncodingException e) { |
| | | } catch (MessagingException | UnsupportedEncodingException e) { |
| | | logger.error(e.getMessage(), e); |
| | | } |
| | | } |
| | |
| | | Template tpl = this.freeMarkerConfigurer.getConfiguration().getTemplate(ftlname); |
| | | // 加入map到模板中 输出对应变量 |
| | | html = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, map); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } catch (TemplateException e) { |
| | | } catch (IOException | TemplateException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return html; |