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:edu.mum.eureka.email.EmailService.java

public void sendOrderReceivedMail(final String recipientName, final String recipientEmail, Order order,
        final Locale locale) throws MessagingException {

    // Prepare the evaluation context
    final Context thymeContext = new Context(locale);
    thymeContext.setVariable("name", recipientName);
    thymeContext.setVariable("order", order);

    // Prepare message using a Spring helper
    final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
    final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
    message.setSubject("Your  Eureka Order Details");

    // could have CC, BCC, will also take an array of Strings
    message.setTo(recipientEmail);/*from   ww  w .jav a2 s . c  o  m*/

    // Create the HTML body using Thymeleaf
    final String htmlContent = this.templateEngine.process("orderReceivedMail", thymeContext);
    message.setText(htmlContent, true);

    message.addInline("imtheguy", new ClassPathResource(IM_THE_GUY), JPG_MIME);

    /*String documentLocation = "templates/images/" + documentName ;
     message.addAttachment(documentName, new ClassPathResource(documentLocation));*/

    /*
      // Alternative
           File file = new File(documentLocation);
         message.addAttachment(documentName, file);
    */
    // Send email
    this.mailSender.send(mimeMessage);

}

From source file:org.jrecruiter.service.notification.impl.DefaultNotificationServiceImpl.java

/** {@inheritDoc} */
@Override// ww  w.ja  va2s  .c om
public void sendEmail(final String email, final String subject, final Map context, final String templateName) {

    final MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws MessagingException, IOException {

            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
            message.setFrom("no_reply@jrecruiter.org");
            message.setTo(email);
            message.setSubject(subject);

            final Locale locale = LocaleContextHolder.getLocale();

            final Template textTemplate = freemarkerConfiguration.getTemplate(templateName + "-text.ftl",
                    locale);

            final StringWriter textWriter = new StringWriter();
            try {
                textTemplate.process(context, textWriter);
            } catch (TemplateException e) {
                throw new MailPreparationException("Can't generate email body.", e);
            }

            final Template htmlTemplate = freemarkerConfiguration.getTemplate(templateName + "-html.ftl",
                    locale);

            final StringWriter htmlWriter = new StringWriter();
            try {
                htmlTemplate.process(context, htmlWriter);
            } catch (TemplateException e) {
                throw new MailPreparationException("Can't generate email body.", e);
            }

            message.setText(textWriter.toString(), htmlWriter.toString());

        }
    };

    mailSender.send(preparator);
}

From source file:org.toobsframework.email.SmtpMailSender.java

public void sendEmail(EmailBean email) throws MailException, MessagingException {
    JavaMailSender javaMailSender = (JavaMailSender) javaMailSenders.get(email.getMailSenderKey());
    if (javaMailSender == null) {
        throw new MessagingException(email.getMailSenderKey() + " is an invalid mailSenderKey");
    }/*from w w  w.  ja va2  s  .  c  o  m*/
    if (this.getMailProperties() != null) {
        ((JavaMailSenderImpl) javaMailSender).setJavaMailProperties(this.getMailProperties());
    }
    try {
        String[] recipients = this.processRecipients(email.getRecipients());
        String[] bccs = new String[email.getBccs().size()];
        for (int i = 0; i < recipients.length; i++) {
            MimeMessage message = null;
            MimeMessageHelper helper = null;
            String thisRecipient = recipients[i];
            switch (email.getType()) {
            case EmailBean.MESSAGE_TYPE_TEXT:
                message = javaMailSender.createMimeMessage();
                helper = new MimeMessageHelper(message, false, "us-ascii");
                helper.setSubject(email.getEmailSubject());
                helper.setFrom(email.getEmailSender());

                helper.setTo(thisRecipient);
                helper.setBcc((String[]) email.getBccs().toArray(bccs));
                helper.setText(email.getMessageText(), false);
                log.info("Sending message " + message.toString());
                javaMailSender.send(message);
                break;
            case EmailBean.MESSAGE_TYPE_HTML:
                message = javaMailSender.createMimeMessage();
                helper = new MimeMessageHelper(message, true, "us-ascii");
                helper.setSubject(email.getEmailSubject());
                helper.setFrom(email.getEmailSender());

                helper.setTo(thisRecipient);
                helper.setBcc((String[]) email.getBccs().toArray(bccs));
                helper.setText(email.getMessageText(), email.getMessageHtml());
                log.info("Sending message " + message.toString());
                javaMailSender.send(message);
                break;
            }
        }
    } catch (Exception e) {
        log.error("Mail exception " + e.getMessage(), e);
        throw new MessagingException(e.getMessage());
    }
}

From source file:com.seajas.search.attender.service.mail.MailService.java

/**
 * Send an e-mail message./*from  www.  j av a  2s  .c om*/
 * 
 * @param receiver
 * @param textContent
 * @param htmlContent
 */
public boolean sendMessage(final String receiver, final String subject, final String textContent,
        final String htmlContent) {
    MimeMessage message = sender.createMimeMessage();

    // We request a multi-part message so we can write out both HTML and text

    try {
        MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");

        helper.setFrom(fromAddress);
        helper.setTo(receiver);
        helper.setSubject(subject);
        helper.setText(textContent, htmlContent);

        sender.send(message);

        return true;
    } catch (MessagingException e) {
        logger.error("Could not build the given e-mail message for receiver '" + receiver + "'", e);
    } catch (MailException e) {
        logger.error("Could not send the givn e-mail message for receiver '" + receiver + "'", e);
    }

    return false;
}

From source file:com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJobAlertImpl.java

public void sendAlertMail(Job job, ReportJob jobDetails, List<ExceptionInfo> exceptions,
        JavaMailSender mailSender, String fromAddress, String[] toAddresses, String characterEncoding)
        throws JobExecutionException {
    ReportJobAlert alert = jobDetails.getAlert();
    boolean isSucceed = exceptions.isEmpty();
    switch (alert.getJobState()) {
    case FAIL_ONLY:
        if (isSucceed)
            return;
        break;//from w  w w .  java2s  .c om
    case SUCCESS_ONLY:
        if (!isSucceed)
            return;
        break;
    case NONE:
        return;
    }
    if (alert != null) {
        try {
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, characterEncoding);
            messageHelper.setFrom(fromAddress);
            String subject = alert.getSubject();
            if ((subject == null) && (job instanceof ReportExecutionJob))
                subject = ((ReportExecutionJob) job).getMessage("report.scheduling.job.default.alert.subject",
                        null);
            messageHelper.setSubject(subject);

            StringBuffer messageText = new StringBuffer();

            String text = (isSucceed ? alert.getMessageText() : alert.getMessageTextWhenJobFails());
            if (text != null) {
                messageText.append(text);
            }
            messageHelper.setTo(toAddresses);

            if (alert.isIncludingReportJobInfo()) {
                messageText.append("\n");
                messageText.append("ReportJob Info:").append("\n");
                messageText.append("Label = ").append(jobDetails.getLabel()).append("\n");
                messageText.append("ID = ").append(jobDetails.getId()).append("\n");
                messageText.append("Description = ").append(jobDetails.getDescription()).append("\n");
                messageText.append("Status = ").append(exceptions.isEmpty() ? "PASS" : "FAIL").append("\n");
            }

            if (alert.isIncludingStackTrace()) {
                if (!exceptions.isEmpty()) {
                    for (Iterator it = exceptions.iterator(); it.hasNext();) {
                        ExceptionInfo exception = (ExceptionInfo) it.next();

                        messageText.append("\n");
                        messageText.append(exception.getMessage());

                        attachException(messageHelper, exception);
                    }
                }
            }
            messageHelper.setText(messageText.toString());
            mailSender.send(message);
        } catch (MessagingException e) {
            log.error("Error while sending report job alert notification", e);
            throw new JSExceptionWrapper(e);
        }
    }
}

From source file:com.netsteadfast.greenstep.util.MailClientUtils.java

public static void send(String from, String to, String cc[], String bcc[], String fileNames[], File files[],
        String subject, String text) throws MailException, Exception {

    if (mailSender == null) {
        throw new Exception("null mailSender!");
    }/*w  w w. j ava2s .com*/
    if (StringUtils.isBlank(from) || StringUtils.isBlank(to)) {
        throw new Exception("from and to is required!");
    }
    if (fileNames != null && files != null) {
        if (fileNames.length != files.length) {
            throw new Exception("File parameter error!");
        }
    }
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true, Constants.BASE_ENCODING);
    helper.setFrom(from);
    helper.setTo(to.endsWith(";") ? to.substring(0, to.length() - 1) : to);
    helper.setSubject(subject);
    helper.setText(text, true);
    if (null != cc && cc.length > 0) {
        helper.setCc(cc);
    }
    if (null != bcc && bcc.length > 0) {
        helper.setBcc(bcc);
    }
    for (int i = 0; fileNames != null && i < fileNames.length; i++) {
        helper.addAttachment(fileNames[i], files[i]);
    }
    mailSender.send(message);
}

From source file:com.logicaalternativa.ejemplomock.rest.sender.SendMailCodePromotionImp.java

private void sendEmail(final PromotionCode promotionCode, final Locale locale) throws MessagingException {

    MimeMessage mimeMessage = getJavaMailSender().createMimeMessage();

    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

    final String subject = getMessageSource().getMessage("email.promotionCode.subject", new Object[] {},
            "email.promotionCode.subject", locale);

    final String to = (new StringBuilder())
            .append(promotionCode.getNameUser() != null ? promotionCode.getNameUser().toUpperCase() : "")
            .append("<").append(promotionCode.getEmail() != null ? promotionCode.getEmail() : "").append(">")
            .toString();/*from  ww w. j a  v a 2s  .  com*/

    final String text = getMessageSource().getMessage("email.promotionCode.txt",
            new Object[] { promotionCode.getCode() }, "email.promotionCode.txt", locale);

    final String html = getMessageSource().getMessage("email.promotionCode.html",
            new Object[] { promotionCode.getCode() }, "email.promotionCode.html", locale);

    helper.setFrom(getFrom());
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(text, html);

    getJavaMailSender().send(mimeMessage);

}

From source file:com.edgenius.core.service.impl.MailEngineService.java

public void sendHtmlMail(final SimpleMailMessage msg, final String templateName, final Map model) {
    final String content = generateContent(templateName, model);

    final String subject = generateContent(getSubjectName(templateName), model);
    try {/*from   ww  w . j  ava  2  s  .c om*/
        mailSender.send(new MimeMessagePreparator() {
            public void prepare(MimeMessage mimeMsg) throws Exception {
                MimeMessageHelper helper = new MimeMessageHelper(mimeMsg, true, "utf-8");
                helper.setTo(msg.getTo());
                helper.setFrom(msg.getFrom());
                if (msg.getBcc() != null)
                    helper.setBcc(msg.getBcc());
                if (!StringUtils.isBlank(subject))
                    helper.setSubject(subject);
                else
                    helper.setSubject(msg.getSubject());
                helper.setText(content, true);
            }

        });
    } catch (Exception e) {
        log.error("Send HTML mail failed on {}", e.toString(), e);
        log.info("Message subject: {}", subject);
        log.info("Message content: {}", content);
    }
}

From source file:com.gcrm.util.mail.MailService.java

public void sendSystemSimpleMail(String toAddress, String subject, String text) throws Exception {
    List<EmailSetting> emailSettings = baseService.getAllObjects(EmailSetting.class.getSimpleName());
    EmailSetting emailSetting = null;/*from w w  w .ja  va2s .  co  m*/
    if (emailSettings != null && emailSettings.size() > 0) {
        emailSetting = emailSettings.get(0);
    } else {
        return;
    }
    Session mailSession = this.createSmtpSession(emailSetting);
    if (mailSession != null) {
        Transport transport = mailSession.getTransport();
        MimeMessage msg = new MimeMessage(mailSession);
        MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
        helper.setFrom(emailSetting.getFrom_address());
        helper.setTo(toAddress);
        helper.setSubject(subject);
        helper.setText(text, true);
        transport.connect();
        transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
    }
}

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/*w  w w. ja v a2 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());
    }
}