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, int multipartMode, @Nullable String encoding)
        throws MessagingException 

Source Link

Document

Create a new MimeMessageHelper for the given MimeMessage, in multipart mode (supporting alternative texts, inline elements and attachments) if requested.

Usage

From source file:com.epam.ta.reportportal.util.email.EmailService.java

/**
 * Restore password email/*ww w .  ja  va  2s. c  o m*/
 *
 * @param subject
 * @param recipients
 * @param url
 */
public void sendRestorePasswordEmail(final String subject, final String[] recipients, final String url,
        final String login) {
    MimeMessagePreparator preparator = mimeMessage -> {
        URL logoImg = this.getClass().getClassLoader().getResource(LOGO);
        MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");
        message.setSubject(subject);
        message.setTo(recipients);

        setFrom(message);

        Map<String, Object> email = new HashMap<>();
        email.put("login", login);
        email.put("url", url);
        String text = templateEngine.merge("restore-password-template.vm", email);
        message.setText(text, true);
        message.addInline("logoimg", new UrlResource(logoImg));
    };
    this.send(preparator);
}

From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java

/** 
 * {@inheritDoc}//from w  w w.  j ava2 s . c  om
 * @see com.mobileman.projecth.business.MailManager#sendMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
 */
@Override
public void sendMessage(final String senderEmail, final String receiverEmail, final String subject,
        final String body) {
    if (log.isDebugEnabled()) {
        log.debug("sendMessage(" + senderEmail + ", " + receiverEmail + ", " + subject + ", " + body
                + ") - start");
    }

    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        /**
         * {@inheritDoc}
         * @see org.springframework.mail.javamail.MimeMessagePreparator#prepare(javax.mail.internet.MimeMessage)
         */
        @Override
        public void prepare(MimeMessage mimeMessage) throws Exception {
            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$
            }

            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING);
            messageHelper.setSentDate(new Date());
            messageHelper.setSubject(subject);
            messageHelper.setTo(receiverEmail);

            if (senderEmail == null || senderEmail.trim().length() == 0) {
                messageHelper.setFrom("projecth@projecth.com");
            } else {
                messageHelper.setFrom(senderEmail);
            }

            String textMessage = HTMLTextParser.htmlToText(body);
            messageHelper.setText(textMessage, body);

            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$
            }
        }
    };

    this.mailSender.send(preparator);

    if (log.isDebugEnabled()) {
        log.debug("sendMessage(...) - end");
    }
}

From source file:com.epam.ta.reportportal.util.email.EmailService.java

public void sendConfirmationEmail(CreateUserRQFull req, String basicUrl) {
    MimeMessagePreparator preparator = mimeMessage -> {
        URL logoImg = this.getClass().getClassLoader().getResource(LOGO);
        MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");
        message.setSubject("Welcome to Report Portal");
        message.setTo(req.getEmail());/*from ww w  .  ja v  a2 s .  c  om*/
        setFrom(message);

        Map<String, Object> email = new HashMap<>();
        email.put("url", basicUrl);
        email.put("login", normalizeUsername(req.getLogin()));
        email.put("password", req.getPassword());
        String text = templateEngine.merge("create-user-template.vm", email);
        message.setText(text, true);
        message.addInline("logoimg", new UrlResource(logoImg));
    };
    this.send(preparator);
}

From source file:eu.trentorise.smartcampus.citizenportal.service.EmailService.java

public void sendMailWithInline(final String recipientName, final String recipientEmail,
        final String imageResourceName, final byte[] imageBytes, final String imageContentType,
        final Locale locale) throws MessagingException {

    // Prepare the evaluation context
    final Context ctx = new Context(locale);
    ctx.setVariable("name", recipientName);
    ctx.setVariable("subscriptionDate", new Date());
    ctx.setVariable("hobbies", Arrays.asList("Cinema", "Sports", "Music"));
    ctx.setVariable("imageResourceName", imageResourceName); // so that we can reference it from HTML

    // Prepare message using a Spring helper
    final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
    final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true /* multipart */, "UTF-8");
    message.setSubject("Example HTML email with inline image");
    message.setFrom("thymeleaf@example.com");
    message.setTo(recipientEmail);//from  w  w w  .j a  v a 2s  .c o  m

    // Create the HTML body using Thymeleaf
    final String htmlContent = this.templateEngine.process("email-inlineimage.html", ctx);
    message.setText(htmlContent, true /* isHtml */);

    // Add the inline image, referenced from the HTML code as "cid:${imageResourceName}"
    final InputStreamSource imageSource = new ByteArrayResource(imageBytes);
    message.addInline(imageResourceName, imageSource, imageContentType);

    // Send mail
    this.mailSender.send(mimeMessage);

}

From source file:org.wallride.service.UserService.java

@CacheEvict(value = WallRideCacheConfiguration.USER_CACHE, allEntries = true)
public User updatePassword(PasswordUpdateRequest request, PasswordResetToken passwordResetToken) {
    User user = userRepository.findOneForUpdateById(request.getUserId());
    if (user == null) {
        throw new IllegalArgumentException("The user does not exist");
    }//from   ww  w  . jav a2s.  c  o m
    PasswordEncoder passwordEncoder = new StandardPasswordEncoder();
    user.setLoginPassword(passwordEncoder.encode(request.getPassword()));
    user.setUpdatedAt(LocalDateTime.now());
    user.setUpdatedBy(passwordResetToken.getUser().toString());
    user = userRepository.saveAndFlush(user);

    passwordResetTokenRepository.delete(passwordResetToken);

    try {
        Blog blog = blogService.getBlogById(Blog.DEFAULT_ID);
        String blogTitle = blog.getTitle(LocaleContextHolder.getLocale().getLanguage());

        ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentContextPath();
        if (blog.isMultiLanguage()) {
            builder.path("/{language}");
        }
        builder.path("/login");

        Map<String, Object> urlVariables = new LinkedHashMap<>();
        urlVariables.put("language", request.getLanguage());
        urlVariables.put("token", passwordResetToken.getToken());
        String loginLink = builder.buildAndExpand(urlVariables).toString();

        Context ctx = new Context(LocaleContextHolder.getLocale());
        ctx.setVariable("passwordResetToken", passwordResetToken);
        ctx.setVariable("resetLink", loginLink);

        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); // true = multipart
        message.setSubject(MessageFormat.format(
                messageSourceAccessor.getMessage("PasswordChangedSubject", LocaleContextHolder.getLocale()),
                blogTitle));
        message.setFrom(mailProperties.getProperties().get("mail.from"));
        message.setTo(passwordResetToken.getEmail());

        String htmlContent = templateEngine.process("password-changed", ctx);
        message.setText(htmlContent, true); // true = isHtml

        mailSender.send(mimeMessage);
    } catch (MessagingException e) {
        throw new ServiceException(e);
    }

    return user;
}

From source file:gr.abiss.calipso.mail.MailSender.java

/**
 * /*w  ww . j  a v a 2 s .  c  o m*/
 * @param email
 * @param subject
 * @param messageBody
 * @param attachments
 * @param encryption
 * @param keyStorePath
 */
public void send(String email, String subject, String messageBody, Map<String, DataSource> attachments,
        boolean html) {
    // prepare message
    try {
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
        if (html) {
            helper.setText(addHeaderAndFooter(messageBody), true);
        } else {
            helper.setText(messageBody, false);
        }
        helper.setSubject(subject);
        helper.setSentDate(new Date());
        helper.setFrom(from);
        // set TO
        helper.setTo(email);
        if (MapUtils.isNotEmpty(attachments)) {
            for (String attachmentFilename : attachments.keySet()) {
                DataSource in = attachments.get(attachmentFilename);
                if (in != null) {
                    helper.addAttachment(attachmentFilename, in);
                }
            }
        }

        //logger.info("Sending email: "+subject+"\n"+messageBody);
        sendInNewThread(message);
    } catch (Exception e) {
        logger.error("failed to prepare e-mail", e);
    }
}

From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java

/** 
 * {@inheritDoc}//from w ww.  j  a va 2s.  c o m
 * @see com.mobileman.projecth.business.MailManager#sendTellAFriendMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
 */
@Override
public void sendTellAFriendMessage(final String senderName, final String senderEmail,
        final String receiverEmails, final String body) {
    if (log.isDebugEnabled()) {
        log.debug("sendMessage(" + senderName + ", " + senderEmail + ", " + receiverEmails + ", " + body
                + ") - start");
    }

    if (senderEmail == null || senderEmail.trim().length() == 0) {
        throw new MailException(MailException.Reason.SENDER_EMAIL_MISSING);
    }

    if (receiverEmails == null || receiverEmails.trim().length() == 0) {
        throw new MailException(MailException.Reason.SENDER_EMAIL_MISSING);
    }

    final String[] senderData = { "", "", "" };

    final String[] receivers = receiverEmails.split("[,]");
    for (int i = 0; i < receivers.length; i++) {
        final int idx = i;
        MimeMessagePreparator preparator = new MimeMessagePreparator() {

            /**
             * {@inheritDoc}
             * @see org.springframework.mail.javamail.MimeMessagePreparator#prepare(javax.mail.internet.MimeMessage)
             */
            @Override
            public void prepare(MimeMessage mimeMessage) throws Exception {
                if (log.isDebugEnabled()) {
                    log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$
                }

                MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING);
                messageHelper.setSentDate(new Date());

                Map<String, Object> model = new HashMap<String, Object>();
                model.put("body-text", body);
                String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                        "tell-a-friend-email-body.vm", model);
                String textMessage = HTMLTextParser.htmlToText(htmlMessage);
                messageHelper.setText(textMessage, htmlMessage);
                senderData[0] = htmlMessage;
                senderData[1] = textMessage;
                senderData[2] = "Mitteilung von projecth";

                messageHelper.setSubject(senderData[2]);
                messageHelper.setTo(receivers[idx]);
                messageHelper.setFrom(getSystemAdminEmail());

                if (log.isDebugEnabled()) {
                    log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$
                }
            }
        };

        this.mailSender.send(preparator);
    }

    this.mailSender.send(new MimeMessagePreparator() {
        @Override
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING);
            messageHelper.setSentDate(new Date());
            messageHelper.setText(senderData[1], senderData[0]);
            messageHelper.setSubject(senderData[2]);
            messageHelper.setTo(senderEmail);
            messageHelper.setFrom(getSystemAdminEmail());
        }
    });

    if (log.isDebugEnabled()) {
        log.debug("sendMessage(...) - end");
    }
}

From source file:gr.abiss.calipso.mail.MailSender.java

public void sendUserPassword(User user, String clearText) {
    if (sender == null) {
        logger.warn("mail sender is null, not sending new user / password change notification");
        return;//from   w w w  . j a  v a  2  s  . c  o m
    }
    if (logger.isDebugEnabled()) {
        logger.debug("attempting to send mail for user password");
    }
    Locale locale = getUserLocale(user);
    try {
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
        helper.setTo(user.getEmail());
        helper.setSubject(prefix + " " + fmt("loginMailSubject", locale));
        StringBuffer sb = new StringBuffer();
        String greeting = fmt("loginMailGreeting", locale);
        if (org.apache.commons.lang.StringUtils.isNotBlank(greeting)) {
            sb.append("<p>" + fmt("loginMailGreeting", locale) + " " + user.getName() + ",</p>");
        }
        sb.append("<p>" + fmt("loginMailLine1", locale) + "</p>");
        sb.append("<table class='calipsoService'>");
        sb.append("<tr><th style='background: #CCCCCC'>" + fmt("loginName", locale)
                + ":&nbsp;</th><td style='border: 1px solid black'>" + user.getLoginName()
                + "&nbsp;</td></tr>");
        sb.append("<tr><th style='background: #CCCCCC'>" + fmt("password", locale)
                + ":&nbsp;</th><td style='border: 1px solid black'>" + clearText + "&nbsp;</td></tr>");
        sb.append("</table>");
        sb.append("<p>" + fmt("loginMailLine2", locale) + "</p>");
        sb.append("<p><a href='" + url + "'>" + url + "</a></p>");
        sb.append("<p>" + fmt("loginMailLine3", locale) + "</p>");
        helper.setText(addHeaderAndFooter(sb), true);
        helper.setSentDate(new Date());
        // helper.setCc(from);
        helper.setFrom(from);
        sendInNewThread(message);
    } catch (Exception e) {
        logger.error("failed to prepare e-mail", e);
    }
}

From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java

/** 
 * {@inheritDoc}/*from w w  w  . ja v  a2  s  .co  m*/
 * @see com.mobileman.projecth.business.MailManager#sendResetCredientialsEmail(User, String)
 */
@Override
public void sendNewDiseaseGroupRequestEmail(final String diseaseName, final String emailAddress,
        final UserType userType) {
    if (log.isDebugEnabled()) {
        log.debug("sendNewDiseaseGroupRequestEmail(" + diseaseName + ", " + emailAddress + ", " + userType
                + ") - start");
    }

    final Map<String, Object> model = new HashMap<String, Object>();
    model.put("disease_name", diseaseName);
    model.put("sender_email", emailAddress);
    model.put("sender_user_type", (UserType.P.equals(userType) ? "Patient" : "Arzt"));

    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        @Override
        public void prepare(MimeMessage mimeMessage) throws Exception {
            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$
            }

            String subject = MessageFormat.format("Neue Gesundheitsgruppe anmelden: {0}", diseaseName);

            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING);
            messageHelper.setSentDate(new Date());
            messageHelper.setTo("mitglied@projecth.com");
            messageHelper.setFrom(emailAddress);
            messageHelper.setSubject(subject);

            String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "request-new-disease-group-system-email-body.vm", model);
            String textMessage = HTMLTextParser.htmlToText(htmlMessage);
            messageHelper.setText(textMessage, htmlMessage);

            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$
            }
        }
    };

    this.mailSender.send(preparator);

    preparator = new MimeMessagePreparator() {

        @Override
        public void prepare(MimeMessage mimeMessage) throws Exception {
            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$
            }

            String subject = MessageFormat.format("Anfrage zur Erweiterung von projecth mit {0}", diseaseName);

            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING);
            messageHelper.setSentDate(new Date());
            messageHelper.setTo(emailAddress);
            messageHelper.setFrom("gesundheitsgruppen@projecth.com");
            messageHelper.setSubject(subject);

            String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "request-new-disease-group-sender-email-body.vm", model);
            String textMessage = HTMLTextParser.htmlToText(htmlMessage);
            messageHelper.setText(textMessage, htmlMessage);

            if (log.isDebugEnabled()) {
                log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$
            }
        }
    };

    this.mailSender.send(preparator);

    if (log.isDebugEnabled()) {
        log.debug("sendNewDiseaseGroupRequestEmail(...) - end");
    }
}

From source file:org.wallride.service.UserService.java

@CacheEvict(value = WallRideCacheConfiguration.USER_CACHE, allEntries = true)
public List<UserInvitation> inviteUsers(UserInvitationCreateRequest form, BindingResult result,
        AuthorizedUser authorizedUser) throws MessagingException {
    String[] recipients = StringUtils.commaDelimitedListToStringArray(form.getInvitees());

    LocalDateTime now = LocalDateTime.now();

    List<UserInvitation> invitations = new ArrayList<>();
    for (String recipient : recipients) {
        UserInvitation invitation = new UserInvitation();
        invitation.setEmail(recipient);/*from  ww  w. j  a  va 2 s .  c  o  m*/
        invitation.setMessage(form.getMessage());
        invitation.setExpiredAt(now.plusHours(72));
        invitation.setCreatedAt(now);
        invitation.setCreatedBy(authorizedUser.toString());
        invitation.setUpdatedAt(now);
        invitation.setUpdatedBy(authorizedUser.toString());
        invitation = userInvitationRepository.saveAndFlush(invitation);
        invitations.add(invitation);
    }

    Blog blog = blogService.getBlogById(Blog.DEFAULT_ID);
    for (UserInvitation invitation : invitations) {
        String websiteTitle = blog.getTitle(LocaleContextHolder.getLocale().getLanguage());
        String signupLink = ServletUriComponentsBuilder.fromCurrentContextPath().path("/_admin/signup")
                .queryParam("token", invitation.getToken()).buildAndExpand().toString();

        final Context ctx = new Context(LocaleContextHolder.getLocale());
        ctx.setVariable("websiteTitle", websiteTitle);
        ctx.setVariable("authorizedUser", authorizedUser);
        ctx.setVariable("signupLink", signupLink);
        ctx.setVariable("invitation", invitation);

        final MimeMessage mimeMessage = mailSender.createMimeMessage();
        final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); // true = multipart
        message.setSubject(MessageFormat.format(
                messageSourceAccessor.getMessage("InvitationMessageTitle", LocaleContextHolder.getLocale()),
                authorizedUser.toString(), websiteTitle));
        message.setFrom(authorizedUser.getEmail());
        message.setTo(invitation.getEmail());

        final String htmlContent = templateEngine.process("user-invite", ctx);
        message.setText(htmlContent, true); // true = isHtml

        mailSender.send(mimeMessage);
    }

    return invitations;
}