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

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

Introduction

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

Prototype

public void setText(String plainText, String htmlText) throws MessagingException 

Source Link

Document

Set the given plain text and HTML text as alternatives, offering both options to the email client.

Usage

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 w  w  w . j av a 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;
}

From source file:com.springstudy.utils.email.MimeMailService.java

/**
 * ??MIME?.// www  . ja  v  a2s. c o m
 */
public boolean sendNotificationMail(com.gmk.framework.common.utils.email.Email email) {
    try {
        MimeMessage msg = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true, DEFAULT_ENCODING);
        //??????
        String from = Global.getConfig("productName");
        if (StringUtils.isNotEmpty(email.getFrom())) {
            from = from + "-" + email.getFrom();
        }
        helper.setFrom(Global.getConfig("mailFrom"), from);
        helper.setTo(email.getAddress());
        if (StringUtils.isNotEmpty(email.getCc())) {
            String cc[] = email.getCc().split(";");
            helper.setCc(cc);//?
        }
        //
        helper.setSubject(email.getSubject());
        //
        if (StringUtils.isNotEmpty(email.getTemplate())) {
            String content = generateContent(email.getTemplate(), email.getContentMap());
            helper.setText(content, true);
        } else {
            helper.setText(email.getContent());
        }
        //
        if (ListUtils.isNotEmpty(email.getAttachment())) {
            for (File file : email.getAttachment()) {
                helper.addAttachment(MimeUtility.encodeWord(file.getName()), file);
            }
        }
        mailSender.send(msg);
        logger.info("HTML??");
        return true;
    } catch (MessagingException e) {
        logger.error(email.getAddressee() + "-" + email.getSubject() + "-" + "", e);
    } catch (Exception e) {
        logger.error(email.getAddressee() + "-" + email.getSubject() + "-" + "??", e);
    }
    return false;
}

From source file:MailSender.java

public void send(Item item) {

    // major: well, sender is null, so no email is going out...silently. Just a debug message.
    // this means that the initial configuration is not able to create a sender.
    // This control should no be here and the methods that handle jndi or configFile should throw a
    // ConfigurationException if the sender is not created.
    if (sender == null) {
        logger.debug("mail sender is null, not sending notifications");
        return;//from w w w  .  j a va2  s.c  o  m
    }

    // TODO make this locale sensitive per recipient
    // major: don't use the comment to explain what the code is doing, just wrap the function in a
    // method with a talking name. This apply to all comments in this method.
    logger.debug("attempting to send mail for item update");
    // prepare message content
    StringBuffer sb = new StringBuffer();
    String anchor = getItemViewAnchor(item, defaultLocale);
    sb.append(anchor);
    // minor: why is not important here the user's locale like in the sendUserPassword method?
    sb.append(ItemUtils.getAsHtml(item, messageSource, defaultLocale));
    sb.append(anchor);
    if (logger.isDebugEnabled()) {
        logger.debug("html content: " + sb);
    }
    // prepare message
    MimeMessage message = sender.createMimeMessage();
    // minor: I would use StandardCharsets.UTF_8.name() that return the canonical name
    // major: how do you test the use cases about the message?
    // the message is in the local stack so it can't be tested
    // better to implement a bridge pattern to decouple the messageHelper and pass it as
    // a collaborator. Although keep in mind that building the message is not a responsibility
    // of this class so this class should just send the message and not building it.
    MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");

    // Remember the TO person email to prevent duplicate mails
    // minor: recipient would be a better name for this variable
    // major: catching a general Exception is a bad idea. You are telling me
    // we could have a problem but when I'm reading it and I don't understand
    // what could go wrong (and, also, the try block is too long so that's one of
    // the reason I can't see what could go wrong)
    String toPersonEmail;
    try {
        helper.setText(addHeaderAndFooter(sb), true);
        helper.setSubject(getSubject(item));
        helper.setSentDate(new Date());
        helper.setFrom(from);
        // set TO
        if (item.getAssignedTo() != null) {
            helper.setTo(item.getAssignedTo().getEmail());
            toPersonEmail = item.getAssignedTo().getEmail();
        } else {
            helper.setTo(item.getLoggedBy().getEmail());
            toPersonEmail = item.getLoggedBy().getEmail();
        }
        // set CC
        List<String> cclist = new ArrayList<String>();
        if (item.getItemUsers() != null) {
            for (ItemUser itemUser : item.getItemUsers()) {
                // Send only, if person is not the TO assignee
                if (!toPersonEmail.equals(itemUser.getUser().getEmail())) {
                    cclist.add(itemUser.getUser().getEmail());
                }
            }

            // sounds complicated but we have to ensure that no null
            // item will be set in setCC(). So we collect the cc items
            // in the cclist and transform it to an stringarray.
            if (cclist.size() > 0) {
                String[] cc = cclist.toArray(new String[0]);
                helper.setCc(cc);
            }
        }
        // send message
        // workaround: Some PSEUDO user has no email address. Because email
        // address
        // is mandatory, you can enter "no" in email address and the mail
        // will not
        // be sent.

        // major: this check is too late, we created everything and then we
        // won't use it.
        if (!"no".equals(toPersonEmail))
            sendInNewThread(message);
    } catch (Exception e) {
        logger.error("failed to prepare e-mail", e);
    }
}

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

/** 
 * {@inheritDoc}/*w w  w  .j a  v a  2 s .  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:com.mobileman.projecth.business.impl.MailManagerImpl.java

/** 
 * {@inheritDoc}//from  w  w w .  j a v a2  s . co  m
 * @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:thymeleafexamples.springmail.service.EmailService.java

public void sendEditableMail(final String recipientName, final String recipientEmail, final String htmlContent,
        final Locale locale) throws MessagingException {

    // 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 editable HTML email");
    message.setFrom("thymeleaf@example.com");
    message.setTo(recipientEmail);//from  w  ww  . j a va  2s .c o  m

    // FIXME: duplicated images in src/main/resources and src/main/webapp
    // 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"));

    final StaticTemplateExecutor templateExecutor = new StaticTemplateExecutor(ctx, messageResolver,
            HTML5.getTemplateModeName());
    final String output = templateExecutor.processTemplateCode(htmlContent);
    message.setText(output, true /* isHtml */);

    // Add the inline images, referenced from the HTML code as "cid:image-name"
    message.addInline("background", new ClassPathResource(BACKGROUND_IMAGE), PNG_MIME);
    message.addInline("logo-background", new ClassPathResource(LOGO_BACKGROUND_IMAGE), PNG_MIME);
    message.addInline("thymeleaf-banner", new ClassPathResource(THYMELEAF_BANNER_IMAGE), PNG_MIME);
    message.addInline("thymeleaf-logo", new ClassPathResource(THYMELEAF_LOGO_IMAGE), PNG_MIME);

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

}

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

/** 
 * {@inheritDoc}/*from w w  w .j av a 2s .com*/
 * @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:be.roots.taconic.pricingguide.service.MailServiceImpl.java

@Override
public void sendReport(DateTime lastMonth, String filename, byte[] report) throws MessagingException {

    final MimeMessageHelper helper = new MimeMessageHelper(javaMailSender.createMimeMessage(), true);

    helper.setFrom(fromEmail);/*  w w  w  .  ja v  a2 s . c  o m*/

    if (StringUtils.isEmpty(testEmail)) {
        helper.setTo(reportRecipientEmail.split(","));
    } else {
        helper.setTo(testEmail.split(","));
    }

    if (!StringUtils.isEmpty(bccEmail)) {
        helper.setBcc(bccEmail.split(","));
    }

    helper.setSubject(documentTitle + " requests for " + lastMonth.toString(DefaultUtil.FORMAT_MONTH));

    final String body = "Dear<br>" + "<br>" + "Attached you find the overview of " + documentTitle
            + " requests for " + lastMonth.toString(DefaultUtil.FORMAT_MONTH) + ".<br>" + "<br>"
            + "Taconic Biosciences, Inc.<br>" + "One Hudson City Centre<br>" + "Hudson, New York 12534<br>"
            + "North America +1 888 822-6642<br>" + "Europe +45 70 23 04 05<br>" + "info@taconic.com<br>"
            + "www.taconic.com";

    helper.setText(body, true);

    helper.addAttachment(filename, new ByteArrayResource(report));

    javaMailSender.send(helper.getMimeMessage());

}

From source file:com.cubusmail.mail.MessageHandler.java

/**
 * @throws MessagingException/*from w w w.  j a v  a  2 s . co m*/
 * @throws IOException
 */
private void buildBodyContent() throws MessagingException, IOException {

    boolean hasAttachments = (this.composeAttachments != null && this.composeAttachments.size() > 0);
    boolean multipart = hasAttachments || isHtmlMessage();

    MimeMessageHelper messageHelper = new MimeMessageHelper(this.message, multipart);

    if (isHtmlMessage()) {
        String plainText = MessageTextUtil.convertHtml2PlainText(this.messageTextHtml);
        messageHelper.setText(plainText, this.messageTextHtml);
    } else {
        messageHelper.setText(this.messageTextPlain, false);
    }

    if (hasAttachments) {
        for (DataSource attachment : this.composeAttachments) {

            messageHelper.addAttachment(attachment.getName(), attachment);
        }

    }

    if (!isRead()) {
        this.message.setFlag(Flags.Flag.SEEN, true);
    }
}