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

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

Introduction

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

Prototype

public MimeMessageHelper(MimeMessage mimeMessage) 

Source Link

Document

Create a new MimeMessageHelper for the given MimeMessage, assuming a simple text message (no multipart content, i.e.

Usage

From source file:org.encuestame.business.service.MailService.java

/**
 * Send notification status account./*from w  w w.j a  v a2 s. c om*/
 * @param user
 * @param message
 */
public void sendNotificationStatusAccount(final SignUpBean user, final String message) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setTo(user.getEmail());
            message.setSubject(buildSubject("Notificaction status account"));
            message.setFrom(noEmailResponse);
            Map model = new HashMap();
            getLogo(model);
            model.put("user", user);
            final String[] properties = { EnMePlaceHolderConfigurer.getProperty("mail.message.app.name") };
            model.put("presentationMessage",
                    getMessageProperties("mail.message.default.user.presentation", buildCurrentLocale(), null));
            model.put("userActivateMessage",
                    getMessageProperties("mail.message.user.activate", buildCurrentLocale(), properties));

            getGreetingMessage(model);
            String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "/org/encuestame/business/mail/templates/notification-account.vm", model);
            message.setText(text, true);
        }
    };
    send(preparator);
}

From source file:org.encuestame.business.service.MailService.java

/**
 * Send Mime Email.// ww w  .ja va  2s .  c o  m
 * @param model
 * @param email
 * @param subject
 * @param from
 * @param template
 */
public void sendMimeEmail(final Map model, final String email, final String subject, final String from,
        final String template) {
    final MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setTo(email);
            message.setSubject(buildSubject(subject));
            message.setFrom(from);
            final String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, template, model);
            message.setText(text, true);
        }
    };
    this.send(preparator);
}

From source file:org.encuestame.core.service.MailService.java

/**
 * Sent a email after system startup.//from   ww  w  .  j  ava2 s.  c  o m
 */
public void sendStartUpNotification(final String startupMessage) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setTo(EnMePlaceHolderConfigurer.getProperty("setup.email.notification.webmaster"));
            message.setSubject(
                    buildSubject(getMessageProperties("mail.message.startup", buildCurrentLocale(), null)));
            message.setFrom(noEmailResponse);
            final Map model = new HashMap();
            model.put("message", startupMessage);
            String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "/org/encuestame/business/mail/templates/startup.vm", model);
            message.setText(text, true);
        }
    };
    send(preparator);
}

From source file:org.jasig.ssp.service.impl.MessageServiceImpl.java

@Override
@Transactional(readOnly = false)/*from  ww  w  .  j av a2  s  .com*/
public boolean sendMessage(@NotNull final Message message)
        throws ObjectNotFoundException, SendFailedException, UnsupportedEncodingException {

    LOGGER.info("BEGIN : sendMessage()");
    LOGGER.info(addMessageIdToError(message) + "Sending message: {}", message.toString());

    try {
        final MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        final MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);

        // process FROM addresses
        InternetAddress from;
        String appName = configService.getByName("app_title").getValue();

        //We used the configured outbound email address for every outgoing message
        //If a message was initiated by an end user, their name will be attached to the 'from' while
        //the configured outbound address will be the actual address used for example "Amy Aministrator (SSP) <myconfiguredaddress@foobar.com>"
        String name = appName + " Administrator";
        if (message.getSender() != null && !message.getSender().getEmailAddresses().isEmpty()
                && !message.getSender().getId().equals(Person.SYSTEM_ADMINISTRATOR_ID)) {
            InternetAddress[] froms = getEmailAddresses(message.getSender(), "from:", message.getId());
            if (froms.length > 0) {
                name = message.getSender().getFullName() + " (" + appName + ")";
            }
        }

        from = new InternetAddress(configService.getByName("outbound_email_address").getValue(), name);
        if (!this.validateEmail(from.getAddress())) {
            throw new AddressException("Invalid from: email address [" + from.getAddress() + "]");
        }

        mimeMessageHelper.setFrom(from);
        message.setSentFromAddress(from.toString());
        mimeMessageHelper.setReplyTo(from);
        message.setSentReplyToAddress(from.toString());

        // process TO addresses
        InternetAddress[] tos = null;
        if (message.getRecipient() != null && message.getRecipient().hasEmailAddresses()) { // NOPMD by jon.adams         
            tos = getEmailAddresses(message.getRecipient(), "to:", message.getId());
        } else {
            tos = getEmailAddresses(message.getRecipientEmailAddress(), "to:", message.getId());
        }
        if (tos.length > 0) {
            mimeMessageHelper.setTo(tos);
            message.setSentToAddresses(StringUtils.join(tos, ",").trim());
        } else {
            StringBuilder errorMsg = new StringBuilder();

            errorMsg.append(addMessageIdToError(message) + " Message " + message.toString()
                    + " could not be sent. No valid recipient email address found: '");

            if (message.getRecipient() != null) {
                errorMsg.append(message.getRecipient().getPrimaryEmailAddress());
            } else {
                errorMsg.append(message.getRecipientEmailAddress());
            }
            LOGGER.error(errorMsg.toString());
            throw new MessagingException(errorMsg.toString());
        }

        // process BCC addresses
        try {
            InternetAddress[] bccs = getEmailAddresses(getBcc(), "bcc:", message.getId());
            if (bccs.length > 0) {
                mimeMessageHelper.setBcc(bccs);
                message.setSentBccAddresses(StringUtils.join(bccs, ",").trim());
            }
        } catch (Exception exp) {
            LOGGER.warn("Unrecoverable errors were generated adding carbon copy to message: " + message.getId()
                    + "Attempt to send message still initiated.", exp);
        }

        // process CC addresses
        try {
            InternetAddress[] carbonCopies = getEmailAddresses(message.getCarbonCopy(), "cc:", message.getId());
            if (carbonCopies.length > 0) {
                mimeMessageHelper.setCc(carbonCopies);
                message.setSentCcAddresses(StringUtils.join(carbonCopies, ",").trim());
            }
        } catch (Exception exp) {
            LOGGER.warn("Unrecoverable errors were generated adding bcc to message: " + message.getId()
                    + "Attempt to send message still initiated.", exp);
        }

        mimeMessageHelper.setSubject(message.getSubject());
        mimeMessageHelper.setText(message.getBody());
        mimeMessage.setContent(message.getBody(), "text/html");

        send(mimeMessage);

        message.setSentDate(new Date());
        messageDao.save(message);
    } catch (final MessagingException e) {
        LOGGER.error("ERROR : sendMessage() : {}", e);
        handleSendMessageError(message);
        throw new SendFailedException(addMessageIdToError(message) + "The message parameters were invalid.", e);
    }

    LOGGER.info("END : sendMessage()");
    return true;
}

From source file:org.osaf.cosmo.scheduler.EmailNotifier.java

protected void sendEmail(final String[] emailAddresses, final String subject, final String text,
        final boolean isHtml) {

    if (log.isDebugEnabled()) {
        log.debug("sending email to:");
        for (String s : emailAddresses)
            log.debug(s);/*from www.j a v a 2s.  co m*/
        log.debug(subject);
        log.debug(text);
    }

    for (final String address : emailAddresses) {
        try {
            mailSender.send(new MimeMessagePreparator() {
                public void prepare(MimeMessage mimeMessage) throws MessagingException {

                    String fromAddr = properties.get(PROPERTY_FROM_ADDRESS);
                    String fromHandle = properties.get(PROPERTY_FROM_HANDLE);

                    MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
                    message.setFrom("\"" + fromHandle + "\" <" + fromAddr + ">");
                    message.setTo(address.trim());
                    message.setSubject(subject);
                    message.setText(text, isHtml);
                }
            });
        } catch (MailAuthenticationException e) {
            log.error(e.getMessage());
        } catch (MailException e) {
            log.info("failed to send email to " + address + ": " + e.getMessage());
        }
    }
}

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  w w . java2 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 a  2 s.c om

            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>/*  w ww.j  a v  a2 s .  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 .j  a va2s  .  co  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;
}