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:MailSender.java

public void sendUserPassword(User user, String clearText) {
    // 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 new user / password change notification");
        return;/* w  w w  . j a  va 2  s  .c  o m*/
    }
    logger.debug("attempting to send mail for user password");

    String localeString = user.getLocale();
    Locale locale = null;
    if (localeString == null) {
        locale = defaultLocale;
    } else {
        locale = StringUtils.parseLocaleString(localeString);
    }

    // major: there is a bit of code duplication with the method send.
    // Apparently it seems that just the body is changing but the rest is
    // really similar. As suggested above the way a message is created should be
    // refactored in a collaborator. This method should just send a message.

    MimeMessage message = sender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");
    try {
        helper.setTo(user.getEmail());
        helper.setSubject(prefix + " " + fmt("loginMailSubject", locale));
        StringBuffer sb = new StringBuffer();
        sb.append("<p>" + fmt("loginMailGreeting", locale) + " " + user.getName() + ",</p>");
        sb.append("<p>" + fmt("loginMailLine1", locale) + "</p>");
        sb.append("<table class='jtrac'>");
        sb.append("<tr><th style='background: #CCCCCC'>" + fmt("loginName", locale)
                + "</th><td style='border: 1px solid black'>" + user.getLoginName() + "</td></tr>");
        sb.append("<tr><th style='background: #CCCCCC'>" + fmt("password", locale)
                + "</th><td style='border: 1px solid black'>" + clearText + "</td></tr>");
        sb.append("</table>");
        sb.append("<p>" + fmt("loginMailLine2", locale) + "</p>");
        sb.append("<p><a href='" + url + "'>" + url + "</a></p>");
        helper.setText(addHeaderAndFooter(sb), true);
        helper.setSentDate(new Date());
        // helper.setCc(from);
        helper.setFrom(from);
        sendInNewThread(message);

        // major: generic exception, method too long, I don't understand what could fail.
    } 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. j a  v a 2  s.co m*/
 * @see com.mobileman.projecth.business.MailManager#sendResetCredientialsEmail(User, String)
 */
@Override
public void sendResetCredientialsEmail(final User user, final String serverDnsName) {
    if (log.isDebugEnabled()) {
        log.debug("sendResetCredientialsEmail(" + user.getId() + ", " + serverDnsName + ") - start");
    }

    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        @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.setTo(user.getUserAccount().getEmail());
            messageHelper.setFrom("mitglied@projecth.com");
            messageHelper.setSubject("Passwort zurcksetzen");

            String tmpServerDnsName = serverDnsName;
            if (tmpServerDnsName == null || tmpServerDnsName.trim().length() == 0) {
                tmpServerDnsName = "projecth.de";
            }

            Map<String, Object> model = new HashMap<String, Object>();
            model.put("user", user);
            model.put("dns_server_name", tmpServerDnsName);

            String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "reset-credentials-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("sendResetCredientialsEmail(" + user.getId() + ") - end");
    }
}

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

/** 
 * {@inheritDoc}/*from w w w.j av a  2  s  . co  m*/
 * @see com.mobileman.projecth.business.MailManager#sendActivationEmail(User, String)
 */
@Override
public void sendActivationEmail(final User user, final String serverDnsName) {
    if (log.isDebugEnabled()) {
        log.debug("sendActivationEmail(" + user + ", " + serverDnsName + ") - 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.setTo(user.getUserAccount().getEmail());
            messageHelper.setFrom("mitglied@projecth.com");
            messageHelper.setSubject("Ihre Anmeldung bei projecth");

            String tmpServerDnsName = serverDnsName;
            if (tmpServerDnsName == null || tmpServerDnsName.trim().length() == 0) {
                tmpServerDnsName = "projecth.de";
            }

            Map<String, Object> model = new HashMap<String, Object>();
            model.put("user", user);
            model.put("dns_server_name", tmpServerDnsName);

            String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "sign-up-activation-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("sendActivationEmail(User) - returns"); //$NON-NLS-1$
    }
}

From source file:net.triptech.metahive.service.EmailSenderService.java

/**
 * Send an email message using the configured Spring sender. On success
 * record the sent message in the datastore for reporting purposes
 *
 * @param email the email//from  w w w  . j  av a  2 s. c  o m
 * @param attachments the attachments
 * @throws ServiceException the service exception
 */
public final void send(final SimpleMailMessage email, TreeMap<String, Object> attachments)
        throws ServiceException {

    // Check to see whether the required fields are set (to, from, message)
    if (email.getTo() == null) {
        throw new ServiceException("Error sending email: Recipient " + "address required");
    }
    if (StringUtils.isBlank(email.getFrom())) {
        throw new ServiceException("Error sending email: Email requires " + "a from address");
    }
    if (StringUtils.isBlank(email.getText())) {
        throw new ServiceException("Error sending email: No email " + "message specified");
    }
    if (mailSender == null) {
        throw new ServiceException("The JavaMail sender has not " + "been configured");
    }

    // Prepare the email message
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = null;
    boolean htmlMessage = false;
    if (StringUtils.containsIgnoreCase(email.getText(), "<html")) {
        htmlMessage = true;
        try {
            helper = new MimeMessageHelper(message, true, "UTF-8");
        } catch (MessagingException me) {
            throw new ServiceException("Error preparing email for sending: " + me.getMessage());
        }
    } else {
        helper = new MimeMessageHelper(message);
    }

    try {
        helper.setTo(email.getTo());
        helper.setFrom(email.getFrom());
        helper.setSubject(email.getSubject());

        if (email.getCc() != null) {
            helper.setCc(email.getCc());
        }
        if (email.getBcc() != null) {
            helper.setBcc(email.getBcc());
        }

        if (htmlMessage) {
            String plainText = email.getText();
            try {
                ConvertHtmlToText htmlToText = new ConvertHtmlToText();
                plainText = htmlToText.convert(email.getText());
            } catch (Exception e) {
                logger.error("Error converting HTML to plain text: " + e.getMessage());
            }
            helper.setText(plainText, email.getText());
        } else {
            helper.setText(email.getText());
        }

        if (email.getSentDate() != null) {
            helper.setSentDate(email.getSentDate());
        } else {
            helper.setSentDate(Calendar.getInstance().getTime());
        }

    } catch (MessagingException me) {
        throw new ServiceException("Error preparing email for sending: " + me.getMessage());
    }

    // Append any attachments (if an HTML email)
    if (htmlMessage && attachments != null) {
        for (String id : attachments.keySet()) {
            Object reference = attachments.get(id);

            if (reference instanceof File) {
                try {
                    FileSystemResource res = new FileSystemResource((File) reference);
                    helper.addInline(id, res);
                } catch (MessagingException me) {
                    logger.error("Error appending File attachment: " + me.getMessage());
                }
            }
            if (reference instanceof URL) {
                try {
                    UrlResource res = new UrlResource((URL) reference);
                    helper.addInline(id, res);
                } catch (MessagingException me) {
                    logger.error("Error appending URL attachment: " + me.getMessage());
                }
            }
        }
    }

    // Send the email message
    try {
        mailSender.send(message);
    } catch (MailException me) {
        logger.error("Error sending email: " + me.getMessage());
        throw new ServiceException("Error sending email: " + me.getMessage());
    }
}

From source file:com.globocom.grou.report.ReportService.java

private void notifyByMail(Test test, String email, Map<String, Double> result) throws Exception {
    MimeMessagePreparator messagePreparator = mimeMessage -> {
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
        messageHelper.setTo(email);//w  w  w .  ja  v a2 s.  c om
        messageHelper.setFrom(MAIL_FROM);
        messageHelper.setSubject(getSubject(test));
        Context context = new Context();
        context.setVariable("project", test.getProject());
        context.setVariable("name", test.getName());
        HashMap<String, Object> testContext = new HashMap<>();
        testContext.put("dashboard", test.getDashboard());
        testContext.put("loaders", test.getLoaders().stream().map(Loader::getName).collect(Collectors.toSet()));
        testContext.put("properties", test.getProperties());
        testContext.put("id", test.getId());
        testContext.put("created", test.getCreatedDate().toString());
        testContext.put("lastModified", test.getLastModifiedDate().toString());
        testContext.put("durationTimeMillis", test.getDurationTimeMillis());
        context.setVariable("testContext", mapper.writeValueAsString(testContext).split("\\R"));
        Set<String> tags = test.getTags();
        context.setVariable("tags", tags);
        context.setVariable("metrics", new TreeMap<>(result));
        String content = templateEngine.process("reportEmail", context);
        messageHelper.setText(content, true);
    };
    try {
        emailSender.send(messagePreparator);
        LOGGER.info(
                "Test " + test.getProject() + "." + test.getName() + ": sent notification to email " + email);
    } catch (MailException e) {
        LOGGER.error(e.getMessage(), e);
    }
}

From source file:it.jugpadova.blo.EventBo.java

private void sendConfirmationEmail(final Event event, final Participant participant, final String baseUrl) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        @SuppressWarnings(value = "unchecked")
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setTo(participant.getEmail());
            message.setFrom(conf.getConfirmationSenderEmailAddress());
            message.setSubject("Please confirm event registration");
            Map model = new HashMap();
            model.put("participant", participant);
            model.put("event", event);
            model.put("baseUrl", baseUrl);
            model.put("confirmationCode", URLEncoder.encode(participant.getConfirmationCode(), "UTF-8"));
            model.put("email", URLEncoder.encode(participant.getEmail(), "UTF-8"));
            String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "it/jugpadova/registration-confirmation.vm", model);
            message.setText(text, true);
        }//from ww w .j  ava2 s  .  c  o  m
    };
    this.mailSender.send(preparator);
}

From source file:org.jnap.core.email.Email.java

public void prepare(MimeMessage mimeMessage) throws Exception {
    final EmailAccountInfo acc = getAccountInfo();
    boolean multipart = StringUtils.isNotBlank(getHtmlText())
            || (getInlineResources() != null && getInlineResources().size() > 0)
            || (getAttachments() != null && getAttachments().size() > 0);

    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, multipart);
    if (acc.getFromName() != null) {
        helper.setFrom(acc.getFromEmailAddress(), acc.getFromName());
    } else {/*from w w  w.  j  a va  2 s.  c  om*/
        this.setFrom(acc.getFromEmailAddress());
    }
    helper.setTo(getTo());
    if (getCc() != null) {
        helper.setCc(getCc());
    }
    if (getBcc() != null) {
        helper.setBcc(getBcc());
    }
    helper.setSentDate(new Date());
    mimeMessage.setSubject(getMessage(getSubject()), this.encoding);

    // sender info
    if (acc != null && StringUtils.isNotBlank(acc.getFromName())) {
        helper.setFrom(acc.getFromEmailAddress(), getMessage(acc.getFromName()));
    } else {
        helper.setFrom(acc.getFromEmailAddress());
    }
    if (acc != null && StringUtils.isNotBlank(acc.getReplyToEmailAddress())) {
        if (StringUtils.isNotBlank(acc.getReplyToName())) {
            helper.setReplyTo(acc.getReplyToEmailAddress(), acc.getReplyToName());
        } else {
            helper.setReplyTo(acc.getReplyToEmailAddress());
        }
    }

    final boolean hasHtmlText = StringUtils.isNotBlank(getHtmlText());
    final boolean hasText = StringUtils.isNotBlank(getText());
    if (hasHtmlText && hasText) {
        helper.setText(getText(), getHtmlText());
    } else if (hasHtmlText || hasText) {
        helper.setText(hasHtmlText ? getHtmlText() : getText());
    }

    // set headers
    final Map<String, String> mailHeaders = this.getHeaders();
    for (String header : mailHeaders.keySet()) {
        mimeMessage.addHeader(header, mailHeaders.get(header));
    }

    // add inline resources
    final Map<String, Resource> inlineRes = this.getInlineResources();
    if (inlineRes != null) {
        for (String cid : inlineRes.keySet()) {
            helper.addInline(cid, inlineRes.get(cid));
        }
    }
    // add attachments
    final Map<String, Resource> attachments = this.getAttachments();
    if (attachments != null) {
        for (String attachmentName : attachments.keySet()) {
            helper.addAttachment(attachmentName, attachments.get(attachmentName));
        }
    }
}

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   ww w  .ja v a2s .  com
    }
    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.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJobMailNotificationImpl.java

protected void embedOutput(MimeMessageHelper messageHelper, ReportOutput output)
        throws MessagingException, JobExecutionException {
    /***//from   w w w.  j  a v a  2  s .c  o m
     try {
     BufferedReader in = new BufferedReader(new FileReader("C:/Users/ichan/Desktop/employee.html"));
     StringBuffer strBuffer = new StringBuffer();
     String strLine;
     while ((strLine = in.readLine()) != null) {
     strBuffer = strBuffer.append(strLine + "\n");
     }
     content = strBuffer.toString();
     } catch (Exception ex) {
     ex.printStackTrace();
     }
     System.out.println("CONTENT = " + content);
     ****/

    // modify content to use inline images
    StringBuffer primaryPage = new StringBuffer(new String(output.getData().getData()));
    for (Iterator it = output.getChildren().iterator(); it.hasNext();) {
        ReportOutput child = (ReportOutput) it.next();
        String childName = child.getFilename();

        // NOTE:  add the ".dat" extension to all image resources
        // email client will automatically append ".dat" extension to all the files with no extension
        // should do it in JasperReport side
        if (output.getFileType().equals(ContentResource.TYPE_HTML)) {
            if (primaryPage == null)
                primaryPage = new StringBuffer(new String(output.getData().getData()));
            int fromIndex = 0;
            while ((fromIndex = primaryPage.indexOf("src=\"" + childName + "\"", fromIndex)) > 0) {
                primaryPage.insert(fromIndex + 5, "cid:");
            }
        }
    }

    messageHelper.setText(primaryPage.toString(), true);
    // add inline images after setting the text in the main body
    for (Iterator it = output.getChildren().iterator(); it.hasNext();) {
        ReportOutput child = (ReportOutput) it.next();
        String childName = child.getFilename();
        DataContainerResource dataContainerResource = new DataContainerResource(child.getData());
        dataContainerResource.setFilename(childName);
        messageHelper.addInline(childName, dataContainerResource);

    }
}

From source file:org.jasig.portlet.blackboardvcportlet.service.impl.MailTemplateServiceImpl.java

public void sendMail(final MailTask mt) {
    try {/*  w w  w.ja v a2s .c  o m*/
        MimeMessagePreparator messagePreparator = new MimeMessagePreparator() {
            public void prepare(MimeMessage mimeMessage) throws Exception {
                MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);

                if (mt.getMeetingInvite() != null) {
                    CalendarOutputter outputter = new CalendarOutputter();
                    ByteArrayOutputStream os = new ByteArrayOutputStream();
                    outputter.setValidating(false);
                    outputter.output(mt.getMeetingInvite(), os);

                    message.addAttachment("invite.ics", new ByteArrayResource(os.toByteArray()));
                }

                message.setFrom(mt.getFrom() != null ? mt.getFrom() : defaultFromAddress);

                if (mt.getTo() != null) {
                    String[] toArray = mt.getTo().toArray(new String[mt.getTo().size()]);
                    message.setTo(toArray);
                }
                if (mt.getSubject() != null) {
                    message.setSubject(mt.getSubject());
                } else {
                    switch (mt.getTemplate()) {
                    case MODERATOR:
                        message.setSubject(moderatorSubject);
                        break;
                    case INTERNAL_PARTICIPANT:
                        message.setSubject(internalParticipantSubject);
                        break;
                    case EXTERNAL_PARTICIPANT:
                        message.setSubject(externalParticipantSubject);
                        break;
                    case SESSION_DELETION:
                        message.setSubject(sessionDeletionSubject);
                        break;
                    default:
                        message.setSubject("");
                    }
                }

                message.setText(buildEmailMessage(mt), false);
            }
        };
        mailSender.send(messagePreparator);
    } catch (Exception e) {
        logger.error("Issue with sending email", e);
    }
}