+
+ public static void initPasswordResetProcess(PrintWriter out, User targetUser, HttpServletRequest req, String aword, Language l, String method, String subject) {
+ String ptok = RandomToken.generateToken(32);
+ int id = targetUser.generatePasswordResetTicket(Page.getUser(req), ptok, aword);
+ try {
+ StringWriter sw = new StringWriter();
+ PrintWriter outMail = new PrintWriter(sw);
+ outMail.print(l.getTranslation("Hi,") + "\n\n");
+ outMail.print(method);
+ outMail.print("\n\nhttps://");
+ outMail.print(ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH);
+ outMail.print("?id=");
+ outMail.print(id);
+ outMail.print("&token=");
+ outMail.print(URLEncoder.encode(ptok, "UTF-8"));
+ outMail.print("\n");
+ outMail.print("\n");
+ SprintfCommand.createSimple("This process will expire in {0} hours.", Integer.toString(HOUR_MAX)).output(outMail, l, new HashMap<String, Object>());
+ outMail.print("\n");
+ outMail.print("\n");
+ outMail.print(l.getTranslation("Best regards"));
+ outMail.print("\n");
+ outMail.print(l.getTranslation("SomeCA.org Support!"));
+ outMail.close();
+ Sendmail.getInstance().sendmail(Page.getUser(req).getEmail(), "[SomeCA.org] " + subject, sw.toString(), "support@cacert.org", null, null, null, null, false);
+ out.println(Page.getLanguage(req).getTranslation("Password reset successful."));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }