コード例 #1
0
ファイル: ProfileCtl.java プロジェクト: hhFate/FateCms
  public void sendEmail(String toMails, User user)
      throws MessagingException, UnsupportedEncodingException {
    GlobalSetting globalSetting = GlobalSetting.getInstance();
    SecurityVerification securityVerification =
        securityVerificationService.findBySecurityVerificationAndType(
            user.getUid(), SecurityVerification.VERIFICATION_TYPE_EMAIL);
    if (securityVerification == null) {
      securityVerification = new SecurityVerification();
      securityVerification.setUser(user);
    }
    Date now = Calendar.getInstance().getTime();
    if (securityVerification.getCode() == null
        || now.getTime() - securityVerification.getVerificationTime().getTime()
            > securityVerification.getTimeout() * 60 * 1000) {
      String code = TokenUtil.getRandomString(8, 2);
      securityVerification.setValue(toMails);
      securityVerification.setCode(code);
      securityVerification.setStatus(SecurityVerification.VERIFICATION_STATUS_FAIL);
      securityVerification.setTimeout(Constants.EMAIL_TIMEOUT);
      securityVerification.setVerificationType(SecurityVerification.VERIFICATION_TYPE_EMAIL);
      securityVerification.setVerificationTime(new Date());
      securityVerificationService.update(securityVerification);
      GlobalSetting setting = GlobalSetting.getInstance();
      // 建立邮件消息
      MimeMessage mailMessage = setting.getJavaMailSender().createMimeMessage();
      MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
      // 设置收件人,寄件人 用数组发送多个邮件
      messageHelper.setTo(toMails);
      String nick = javax.mail.internet.MimeUtility.encodeText(globalSetting.getAppName());
      messageHelper.setFrom(new InternetAddress(nick + " <" + setting.getSmtpFrom() + ">"));
      messageHelper.setSubject(globalSetting.getSiteName() + "邮箱验证(请勿回复此邮件)");

      messageHelper.setText(
          "<!doctype html>"
              + "<html>"
              + "<head>"
              + "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>"
              + "<title>祝福之风邮箱验证</title>"
              + "</head>"
              + "<body>"
              + "<div style='margin:0 auto;width:650px;'>"
              + "<h3>尊敬的用户:</h3>"
              + "<p>请点击以下地址,完成邮箱验证:</p>"
              + "<p><a href='http://"
              + globalSetting.getAppUrl()
              + "/op/security/verification/goVerifyEmail?uid="
              + user.getUid()
              + "&code="
              + URLEncoder.encode(Base64.encode(code.getBytes()), "UTF-8")
              + "'>http://"
              + globalSetting.getAppUrl()
              + "/op/security/verification/goVerifyEmail?uid="
              + user.getUid()
              + "&code="
              + URLEncoder.encode(Base64.encode(code.getBytes()), "UTF-8")
              + "</a></p>"
              + "<p>此链接有效期为"
              + Constants.EMAIL_TIMEOUT / 60
              + "小时<span style='color:#808080'>(如果您无法点击此链接,请将链接复制到浏览器地址栏后访问)</span>"
              + "</p>"
              + "</div>"
              + "</body>"
              + "</html>",
          true);
      setting.getJavaMailSender().send(mailMessage);
    }
  }