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:org.icgc.dcc.release.client.mail.Mailer.java

private MimeMessage createMimeMessage(String subject, String text) throws MessagingException {
    val message = new MimeMessageHelper(mailSender.createMimeMessage(), true, UTF_8.name());
    message.setSubject(subject);//ww w . ja v  a2  s  .  c o m
    message.setText(text, true);
    message.setTo(mail.getRecipients());
    message.addInline("logo", ICGC_LOGO, IMAGE_PNG_VALUE);

    return message.getMimeMessage();
}

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

public PasswordResetToken createPasswordResetToken(PasswordResetTokenCreateRequest request) {
    User user = userRepository.findOneByEmail(request.getEmail());
    if (user == null) {
        throw new EmailNotFoundException();
    }/*w ww . j a  va2 s  .co m*/

    LocalDateTime now = LocalDateTime.now();
    PasswordResetToken passwordResetToken = new PasswordResetToken();
    passwordResetToken.setUser(user);
    passwordResetToken.setEmail(user.getEmail());
    passwordResetToken.setExpiredAt(now.plusHours(24));
    passwordResetToken.setCreatedAt(now);
    passwordResetToken.setCreatedBy(user.toString());
    passwordResetToken.setUpdatedAt(now);
    passwordResetToken.setUpdatedBy(user.toString());
    passwordResetToken = passwordResetTokenRepository.saveAndFlush(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("/password-reset");
        builder.path("/{token}");

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

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

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

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

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

    return passwordResetToken;
}

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

/** 
 * {@inheritDoc}/*from   w w  w .  j av a  2s .  c o 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: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   ww w.j  a  v  a  2  s  .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:gr.abiss.calipso.service.EmailService.java

@Async
public void sendMailWithAttachment(final String recipientName, final String recipientEmail,
        final String attachmentFileName, final byte[] attachmentBytes, final String attachmentContentType,
        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"));

    // 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 attachment");
    message.setFrom("thymeleaf@example.com");
    message.setTo(recipientEmail);/*w w w .ja v  a 2 s  .  co  m*/

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

    // Add the attachment
    final InputStreamSource attachmentSource = new ByteArrayResource(attachmentBytes);
    message.addAttachment(attachmentFileName, attachmentSource, attachmentContentType);

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

}

From source file:com.hmsinc.epicenter.webapp.PasswordResetController.java

/**
 * @param token// w w  w. j a v  a 2 s . c  o  m
 * @param url
 */
private void sendPasswordResetEmail(final PasswordResetToken token, final String url) {

    final MimeMessagePreparator preparator = new MimeMessagePreparator() {

        public void prepare(MimeMessage mimeMessage) throws Exception {

            final EpiCenterUser user = token.getUser();

            String encoding = "UTF-8";
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage,
                    MimeMessageHelper.MULTIPART_MODE_RELATED, encoding);
            message.setTo(user.getEmailAddress());
            message.setFrom(applicationProperties.getProperty("epicenter.mail.from"));
            message.setSubject(mailSubject);

            final Map<String, Object> model = new HashMap<String, Object>();
            model.put("url", url);
            model.put("username", user.getUsername());
            model.put("token", token.getToken());

            message.setText(VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, TEMPLATE_TEXT, model),
                    VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, TEMPLATE_HTML, model));
        }
    };

    mailSender.send(preparator);
}

From source file:com.rxx.common.util.MailUtil.java

/**
 * html/*w w w .ja v  a2 s .  c  om*/
 *
 * @param host 
 * @param port
 * @param userName
 * @param password
 * @param title
 * @param contenthtml
 * @param fileslist<Map<key:,value:>>
 * @param toUser
 * @throws javax.mail.MessagingException
 */
public static void sendAttached(String host, int port, String userName, String password, String title,
        String content, List<Map<String, String>> files, String[] toUser)
        throws MessagingException, javax.mail.MessagingException {
    JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();

    // mail server
    senderImpl.setHost(host);
    // ,html
    MimeMessage mailMessage = senderImpl.createMimeMessage();
    // boolean,MimeMessageHelpertrue
    // multipart true html
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");

    // 
    messageHelper.setTo(toUser);
    messageHelper.setFrom(userName);
    messageHelper.setSubject(title);
    // true HTML
    messageHelper.setText(content, true);

    for (Map<String, String> filePath : files) {
        Iterator<String> it = filePath.keySet().iterator();
        String fileName = it.next();
        FileSystemResource file = new FileSystemResource(new File(filePath.get(fileName)));
        // 
        messageHelper.addAttachment(fileName, file);
    }

    senderImpl.setUsername(userName); // ,username
    senderImpl.setPassword(password); // , password
    Properties prop = new Properties();
    prop.put("mail.smtp.auth", "true"); // true,
    prop.put("mail.smtp.timeout", "25000");
    senderImpl.setJavaMailProperties(prop);
    // 
    senderImpl.send(mailMessage);
}

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

public String sendMailVLClassification(final String period, final String mailDate, final String protocolCode,
        final String recipientName, final String recipientAddress, final String recipientCity,
        final String recipientPhone, final String recipientEmail, final String practice_id,
        final String position, final String score, final String determinationCode,
        final String determinationDate, final String alboDate, final String expirationDate, final String phase,
        final String ef_period, final String ef_category, final String ef_tool, final String classificationUrl,
        final String respName, final String subject, final Locale locale, final MailImage logoImage,
        final MailImage footerImage, final int type) throws MessagingException {

    // Prepare the evaluation context
    final Context ctx = new Context(locale);
    ctx.setVariable("imagelogoMyweb", logoImage.getImageName());
    ctx.setVariable("mailDate", mailDate);
    ctx.setVariable("period", period);
    ctx.setVariable("protCode", protocolCode);
    ctx.setVariable("name", recipientName);
    ctx.setVariable("address", recipientAddress);
    ctx.setVariable("city", recipientCity);
    ctx.setVariable("phone", recipientPhone);
    ctx.setVariable("detCode", determinationCode);
    ctx.setVariable("detDate", determinationDate);
    ctx.setVariable("alboDate", alboDate);
    ctx.setVariable("expDate", expirationDate);
    ctx.setVariable("practice_id", practice_id);
    ctx.setVariable("position", position);
    ctx.setVariable("score", score);
    ctx.setVariable("phase", phase);
    ctx.setVariable("ef_period", ef_period);
    ctx.setVariable("ef_category", ef_category);
    ctx.setVariable("ef_tool", ef_tool);
    ctx.setVariable("classification_url", classificationUrl);
    ctx.setVariable("respName", respName);
    ctx.setVariable("subscriptionDate", new Date());
    //ctx.setVariable("hobbies", Arrays.asList("Cinema", "Sports", "Music"));
    ctx.setVariable("text", subject);
    ctx.setVariable("imagefooterVallag", footerImage.getImageName());

    // Prepare message using a Spring helper
    final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
    final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true /* multipart */, "UTF-8");
    message.setSubject("Graduatoria Edilizia Abitativa");
    //message.setFrom("thymeleaf@example.com");
    message.setFrom("myweb.edilizia@comunitadellavallagarina.tn.it");
    //message.setFrom("myweb-graduatoria@smartcommunitylab.it");
    message.setTo(recipientEmail);//  w  ww  .  j  av a  2s  .c o  m

    // Create the HTML body using Thymeleaf
    if (type == 1) {
        final String htmlContent = this.templateEngine.process("email-vallagarina.html", ctx);
        message.setText(htmlContent, true /* isHtml */);
    } else {
        final String htmlContent = this.templateEngine.process("email-vallagarina-final.html", ctx);
        message.setText(htmlContent, true /* isHtml */);
    }

    // Add the inline titles image, referenced from the HTML code as "cid:${imageResourceName}"
    final InputStreamSource imageLogo = new ByteArrayResource(logoImage.getImageByte());
    message.addInline(logoImage.getImageName(), imageLogo, logoImage.getImageType());

    // Add the inline footer image, referenced from the HTML code as "cid:${imageResourceName}"
    final InputStreamSource imageFooter = new ByteArrayResource(footerImage.getImageByte());
    message.addInline(footerImage.getImageName(), imageFooter, footerImage.getImageType());

    // Add the attachment
    //final InputStreamSource attachmentSource = new ByteArrayResource(attachmentBytes);
    //message.addAttachment(
    //        attachmentFileName, attachmentSource, attachmentContentType);

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

    return recipientName + "OK";
}

From source file:hornet.framework.mail.MailServiceImpl.java

/**
 * {@inheritDoc}//from  w ww  .java2 s .c  o m
 */
@Override
public void envoyer(final String expediteur, final String sujet, final String message,
        final Map<String, Object> paramMap, final String... destinataires) {

    try {
        final Session session = ((JavaMailSenderImpl) mailSender).getSession();
        HornetMimeMessage mMessage = null;
        if (messageIdDomainName == null || messageIdDomainName.length() == 0) {
            mMessage = new HornetMimeMessage(nomApplication, session);
        } else {
            mMessage = new HornetMimeMessage(nomApplication, messageIdDomainName, session);
        }

        mMessage.setHeader("Content-Type", "text/html");
        final MimeMessageHelper helper = new MimeMessageHelper(mMessage, true, CharEncoding.UTF_8);

        addExtraSmtpField(paramMap, helper);

        helper.setFrom(expediteur);

        ajouterDestinataires(helper, destinataires);

        helper.setSubject(sujet);
        // message aux formats texte et html
        helper.setText(preparerMessageTexte(message), preparerMessageHTML(message));

        mailSender.send(mMessage);
    } catch (final MailSendException mse) {
        throw toBusinessException(mse);
    } catch (final Exception e) {
        throw new BusinessException("erreur.envoi.courriel", e);
    }
}

From source file:gr.abiss.calipso.service.EmailService.java

@Async
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 ava2s  .  co m*/

    // Create the HTML body using Thymeleaf
    final String htmlContent = this.templateEngine.process("email-inlineimage.html", ctx);
    LOGGER.info("Sending email body: " + htmlContent);
    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);

}