Example usage for org.springframework.mail.javamail MimeMessagePreparator MimeMessagePreparator

List of usage examples for org.springframework.mail.javamail MimeMessagePreparator MimeMessagePreparator

Introduction

In this page you can find the example usage for org.springframework.mail.javamail MimeMessagePreparator MimeMessagePreparator.

Prototype

MimeMessagePreparator

Source Link

Usage

From source file:org.osaf.cosmo.service.account.EmailAccountActivator.java

public void sendActivationMessage(final User user, final ActivationContext activationContext) {

    mailSender.send(new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws MessagingException {

            Locale locale = activationContext.getLocale();

            User sender = activationContext.getSender();
            String fromAddr = sender.getEmail();
            String fromHandle = messageSource.getMessage(MSG_ACTIVATION_HANDLE, new Object[] {}, locale);

            String subject = messageSource.getMessage(MSG_ACTIVATION_SUBJECT,
                    new Object[] { user.getUsername() }, locale);

            String text = messageSource.getMessage(MSG_ACTIVATION_TEXT,
                    new Object[] { user.getUsername(), activationContext.getHostname(),
                            activationContext.getActivationLink(user.getActivationId()) },
                    locale);/*w  ww.  j av a  2 s .  c o m*/

            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("\"" + fromHandle + "\" <" + fromAddr + ">");
            message.setTo(user.getEmail());
            message.setSubject(subject);
            message.setText(text);
        }
    });
    log.info("Account activation link sent to " + user.getEmail());

}

From source file:org.osaf.cosmo.service.account.EmailPasswordRecoverer.java

public void sendRecovery(final PasswordRecovery passwordRecovery,
        final PasswordRecoveryMessageContext context) {
    // Create final variable so it is available in message preparator below 
    final User user = passwordRecovery.getUser();

    mailSender.send(new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws MessagingException {

            Locale locale = context.getLocale();

            User sender = context.getSender();
            String fromAddr = sender.getEmail();
            String fromHandle = messageSource.getMessage(MSG_PASSWORD_RECOVERY_HANDLE, new Object[] {}, locale);

            String subject = messageSource.getMessage(MSG_PASSWORD_RECOVERY_SUBJECT,
                    new Object[] { user.getUsername() }, locale);

            String text = messageSource.getMessage(MSG_PASSWORD_RECOVERY_TEXT,
                    new Object[] { user.getUsername(), context.getHostname(), context.getRecoveryLink() },
                    locale);//from   ww w . j a v a2 s  .  co  m

            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("\"" + fromHandle + "\" <" + fromAddr + ">");
            message.setTo(user.getEmail());
            message.setSubject(subject);
            message.setText(text);
        }
    });
    log.info("Password recovery link sent to " + user.getEmail() + " with key " + passwordRecovery.getKey());

}

From source file:org.osaf.cosmo.ui.account.CredentialsReminderFormController.java

/**
 * Looks up the user for the entered email address and:
 *
 * <ul>/*from  w  w w. ja va 2s  .c o  m*/
 * <li> If the username button was clicked, sends a reminder email
 * containing the username to the user's email address
 * <li> If the password button was clicked, reset's the user's
 * password and sends a confirmation email containing the new
 * password to the user's email address
 * </ul>
 *
 * @see UIConstants#FWD_OK
 *
public ModelAndView handleRequestInternal(HttpServletRequest request,
                                      HttpServletResponse response) throws Exception {
        
throws Exception {
BeanValidatorForm forgotForm = (BeanValidatorForm) form;
String email = (String) forgotForm.get(FORM_EMAIL);
User user = null;
try {
    user = userService.getUserByEmail(email);
} catch (DataRetrievalFailureException e) {
    saveErrorMessage(request, MSG_ERROR_EMAIL_NOT_FOUND);
    return mapping.findForward(UIConstants.FWD_FAILURE);
}
        
if (wasUsernameButtonClicked(forgotForm)) {
    sendUsernameReminderMessage(request, response, user);
    saveConfirmationMessage(request, MSG_CONFIRM_USERNAME);
}
if (wasPasswordButtonClicked(forgotForm)) {
    String newPassword = userService.generatePassword();
    user.setPassword(newPassword);
    userService.updateUser(user);
    sendPasswordResetMessage(request, response, user, newPassword);
    saveConfirmationMessage(request, MSG_CONFIRM_PASSWORD);
}
        
return mapping.findForward(UIConstants.FWD_OK);
}
        
public boolean wasUsernameButtonClicked(BeanValidatorForm form) {
return form.get(FORM_BUTTON_USERNAME) != null;
}
        
public boolean wasPasswordButtonClicked(BeanValidatorForm form) {
return form.get(FORM_BUTTON_PASSWORD) != null;
}
        
private void sendUsernameReminderMessage(final HttpServletRequest request,
                                     final HttpServletResponse response,
                                     final User user) {
mailSender.send(new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage)
            throws MessagingException {
            MessageResources resources = getResources(request);
            Locale locale = getLocale(request);
        
            User rootUser = userService.getUser(User.USERNAME_OVERLORD);
            String fromAddr = (String) getServlet().getServletContext().
                getAttribute(CosmoConstants.SC_ATTR_SERVER_ADMIN);
            String fromHandle =
                resources.getMessage(locale,
                                     MSG_USERNAME_REMINDER_FROMHANDLE);
            String subject =
                resources.getMessage(locale,
                                     MSG_USERNAME_REMINDER_SUBJECT);
            String text =
                resources.getMessage(locale,
                                     MSG_USERNAME_REMINDER_TEXT,
                                     user.getUsername(),
                                     getContextRelativeURL(request,
                                                           "/"),
                                     rootUser.getEmail());
        
            MimeMessageHelper message =
                new MimeMessageHelper(mimeMessage);
            message.setFrom("\"" + fromHandle + "\" <" + fromAddr +
                            ">");
            message.setTo(user.getEmail());
            message.setSubject(subject);
            message.setText(text);
        }
    });
}
*/
private void sendPasswordResetMessage(final HttpServletRequest request, final HttpServletResponse response,
        final User user, final String newPassword) {
    mailSender.send(new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws MessagingException {
            Locale locale = request.getLocale();

            User rootUser = userService.getUser(User.USERNAME_OVERLORD);
            String fromAddr = rootUser.getEmail();
            String fromHandle = messageSource.getMessage(MSG_PASSWORD_RESET_FROMHANDLE, new Object[] {},
                    locale);

            String subject = messageSource.getMessage(MSG_PASSWORD_RESET_SUBJECT, new Object[] {}, locale);
            String text = messageSource.getMessage(MSG_PASSWORD_RESET_TEXT,
                    new Object[] { newPassword, request.getContextPath(), rootUser.getEmail() }, locale);
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("\"" + fromHandle + "\" <" + fromAddr + ">");
            message.setTo(user.getEmail());
            message.setSubject(subject);
            message.setText(text);
        }
    });
}

From source file:org.oscarehr.renal.web.RenalAction.java

public ActionForward sendPatientLetterAsEmail(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) {
    String demographicNo = request.getParameter("demographic_no");
    String error = "";
    boolean success = true;
    JSONObject json = new JSONObject();

    final Demographic d = demographicDao.getDemographic(demographicNo);

    if (d == null) {
        error = "Patient not found.";
        success = false;//w w w . jav  a 2  s. c o  m
    }
    if (d.getEmail() == null || d.getEmail().length() == 0 || d.getEmail().indexOf("@") == -1) {
        error = "No valid email address found for patient.";
        success = false;
    }

    if (success) {

        try {
            String documentDir = oscar.OscarProperties.getInstance().getProperty("DOCUMENT_DIR", "");
            File f = new File(documentDir, "orn_patient_letter.txt");
            String template = IOUtils.toString(new FileInputStream(f));

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            VelocityContext velocityContext = VelocityUtils.createVelocityContextWithTools();
            velocityContext.put("patient", d);
            velocityContext.put("currentDate", sdf.format(new Date()));
            Provider mrp = null;
            if (d.getProviderNo() != null && d.getProviderNo().length() > 0) {
                mrp = providerDao.getProvider(d.getProviderNo());
            } else {
                mrp = providerDao.getProvider(OscarProperties.getInstance().getProperty("orn.default_mrp", ""));
            }
            velocityContext.put("mrp", mrp);

            final String mrp1 = mrp.getFullName();

            final String letter = VelocityUtils.velocityEvaluate(velocityContext, template);

            JavaMailSender mailSender = (JavaMailSender) SpringUtils.getBean("mailSender");

            MimeMessagePreparator preparator = new MimeMessagePreparator() {
                public void prepare(MimeMessage mimeMessage) throws Exception {
                    MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
                    message.setTo(d.getEmail());
                    message.setSubject(OscarProperties.getInstance().getProperty("orn.email.subject",
                            "Important Message from " + mrp1));
                    message.setFrom(OscarProperties.getInstance().getProperty("orn.email.from",
                            "no-reply@oscarmcmaster.org"));
                    message.setText(letter, true);
                }
            };
            mailSender.send(preparator);

        } catch (IOException e) {
            MiscUtils.getLogger().error("Error", e);
            success = false;
            error = e.getMessage();
        } finally {
            OscarAuditLogger.getInstance().log("create", "CkdPatientLetter", Integer.valueOf(demographicNo),
                    "");
            OscarAuditLogger.getInstance().log("email", "CkdPatientLetter", Integer.valueOf(demographicNo), "");
        }
    }
    json.put("success", String.valueOf(success));
    json.put("error", error);
    try {
        json.write(response.getWriter());
    } catch (IOException e) {
        MiscUtils.getLogger().error("error", e);
    }
    return null;
}