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) 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:ru.mystamps.web.service.MailServiceImpl.java

@SuppressWarnings("PMD.UseObjectForClearerAPI")
private void sendMail(final String email, final String subject, final String text, final String tag) {

    try {//from   w w w .j  a  va  2 s .  c o  m
        // We're using MimeMessagePreparator only because of its capability of adding headers.
        // Otherwise we would use SimpleMailMessage class.
        MimeMessagePreparator preparator = new MimeMessagePreparator() {
            @Override
            @SuppressWarnings("PMD.SignatureDeclareThrowsException")
            public void prepare(MimeMessage mimeMessage) throws Exception {
                MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
                message.setValidateAddresses(true);
                message.setTo(email);
                message.setFrom(new InternetAddress(robotEmail, "My Stamps", "UTF-8"));
                message.setSubject(subject);
                message.setText(text);

                // see: http://documentation.mailgun.com/user_manual.html#sending-via-smtp
                message.getMimeMessage().addHeader("X-Mailgun-Tag", tag);
                if (testMode) {
                    message.getMimeMessage().addHeader("X-Mailgun-Drop-Message", "yes");
                }
            }
        };

        mailer.send(preparator);

    } catch (MailException ex) {
        throw new EmailSendingException("Can't send mail to e-mail " + email, ex);
    }
}

From source file:cs544.wamp_blog_engine.service.impl.NotificationService.java

public void sendMail(String fromEmail, String toEmail, String emailSubject, String emailBody) {
    //      String fromEmail = emailTemplate.getFrom();
    //      String[] toEmail = emailTemplate.getTo();
    //        String[] toEmails = new String[]{toEmail};
    //      String emailSubject = emailTemplate.getSubject();
    //      String emailBody = String.format(emailTemplate.getText(), dear, content);

    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {/*  w  w  w  .  ja  va2s .  co  m*/
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

        helper.setFrom(fromEmail);
        helper.setTo(toEmail);
        helper.setSubject(emailSubject);
        helper.setText(emailBody);

        /*
         uncomment the following lines for attachment FileSystemResource
         file = new FileSystemResource("attachment.jpg");
         helper.addAttachment(file.getFilename(), file);
         */
        javaMailSender.send(mimeMessage);
        System.out.println("Mail sent successfully.");
    } catch (MessagingException e) {
        e.printStackTrace();
    }

}

From source file:org.cgiar.dapa.ccafs.tpe.service.impl.TPEMailService.java

@Override
public void contactUs(final Map<String, Object> templateVariables) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
            message.setTo(supportEmail);
            message.setFrom(new InternetAddress(adminEmail));
            message.setSubject(SUBJECT_ADMIN);
            String body = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "templates/contact-us.vm",
                    "UTF-8", templateVariables);
            log.info(body);/*from   w  w w .  j av a 2 s  .c  o  m*/
            message.setText(body, true);
        }
    };
    this.mailSender.send(preparator);

}

From source file:cn.edu.zjnu.acm.judge.user.ResetPasswordController.java

@PostMapping("/resetPassword")
public void doPost(HttpServletRequest request, HttpServletResponse response,
        @RequestParam(value = "action", required = false) String action,
        @RequestParam(value = "verify", required = false) String verify,
        @RequestParam(value = "username", required = false) String username, Locale locale) throws IOException {
    response.setContentType("text/javascript;charset=UTF-8");
    PrintWriter out = response.getWriter();

    HttpSession session = request.getSession(false);
    String word = null;//from ww  w .  ja va2  s. co m
    if (session != null) {
        word = (String) session.getAttribute("word");
        session.removeAttribute("word");
    }
    if (word == null || !word.equalsIgnoreCase(verify)) {
        out.print("alert('??');");
        return;
    }

    User user = userMapper.findOne(username);
    if (user == null) {
        out.print("alert('?');");
        return;
    }
    String email = user.getEmail();
    if (email == null || !email.toLowerCase().matches(ValueCheck.EMAIL_PATTERN)) {
        out.print(
                "alert('???????');");
        return;
    }
    try {
        String vc = user.getVcode();
        if (vc == null || user.getExpireTime() != null && user.getExpireTime().compareTo(Instant.now()) < 0) {
            vc = Utility.getRandomString(16);
        }
        user = user.toBuilder().vcode(vc).expireTime(Instant.now().plus(1, ChronoUnit.HOURS)).build();
        userMapper.update(user);
        String url = getPath(request, "/resetPassword.html?vc=", vc + "&u=", user.getId());
        HashMap<String, Object> map = new HashMap<>(2);
        map.put("url", url);
        map.put("ojName", judgeConfiguration.getContextPath() + " OJ");

        String content = templateEngine.process("users/password", new Context(locale, map));
        String title = templateEngine.process("users/passwordTitle", new Context(locale, map));

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setTo(email);
        helper.setSubject(title);
        helper.setText(content, true);
        helper.setFrom(javaMailSender.getUsername());

        javaMailSender.send(mimeMessage);
    } catch (MailException | MessagingException ex) {
        log.error("", ex);
        out.print("alert('?????')");
        return;
    }
    out.print("alert('???" + user.getEmail() + "??');");
}

From source file:com.indicator_engine.controller.RegistrationController.java

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String processRegistrationForm(@Valid @ModelAttribute("RegisterForm") RegistrationForm RegisterForm,
        BindingResult bindingResult, Map<String, Object> model) {
    if (bindingResult.hasErrors()) {
        return "app/register";
    }//from  w w w . ja  v  a2 s.  c om
    UserCredentialsDao userDetailsBean = (UserCredentialsDao) appContext.getBean("userDetails");
    MimeMessage message = mailSender.createMimeMessage();
    String errorMsg;
    String uname = RegisterForm.getUserName();
    String password = RegisterForm.getPassword();
    String hashedPassword = encoder.encode(password);
    Date dob = RegisterForm.getDob();
    java.sql.Date sqlStartDate = null;
    sqlStartDate = new java.sql.Date(dob.getTime());
    String email = RegisterForm.getEmail();
    // Error Handling Not done Yet. Synchronize Java Script checks + Server Side checks. Eliminate redundant checks
    if (uname == null || email == null || password == null)
        errorMsg = "Error : Please Check your ";
    UserCredentials uc = new UserCredentials(uname, hashedPassword,
            new UserProfile(" ", " ", sqlStartDate, 0, " ", " ", " ", 0, " ", email));
    userDetailsBean.add(uc);
    try {
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom("goalla@rwth-aachen.de");
        helper.setTo(uc.getUp().getEmailid());
        helper.setSubject("One Time Password for Verification");

        /*Map<String, Object> modelMsg = new HashMap<String, Object>();
        model.put("UserName", uc.getUname());
        model.put("EmailID", uc.getUp().getEmailid());
        model.put("DOB", uc.getUp().getDob());
        model.put("OTP", uc.getOtp());
        String emailText = VelocityEngineUtils.mergeTemplateIntoString(
            velocityEngine, "registrationEmailTemplate.vm", "UTF-8", modelMsg); */

        helper.setText("OTP For Verification :  " + uc.getOtp());
        /*FileSystemResource couponImage =
           new FileSystemResource("logo.png");
        helper.addAttachment("logo.png", logoImage);
        ClassPathResource image = new ClassPathResource("rwth.png");
        helper.addInline("UniLogo", image); */
    } catch (javax.mail.MessagingException ex) {
    }
    mailSender.send(message);
    model.put("msg", uc.getUid());
    return "app/registration_success";
}

From source file:org.syncope.core.scheduling.NotificationJob.java

public TaskExec executeSingle(final NotificationTask task) {
    init();/*from   w ww. j a  v a2s  . c o  m*/

    TaskExec execution = new TaskExec();
    execution.setTask(task);
    execution.setStartDate(new Date());

    if (StringUtils.isBlank(smtpHost) || StringUtils.isBlank(task.getSender())
            || StringUtils.isBlank(task.getSubject()) || task.getRecipients().isEmpty()
            || StringUtils.isBlank(task.getHtmlBody()) || StringUtils.isBlank(task.getTextBody())) {

        String message = "Could not fetch all required information for " + "sending e-mails:\n" + smtpHost + ":"
                + smtpPort + "\n" + task.getRecipients() + "\n" + task.getSender() + "\n" + task.getSubject()
                + "\n" + task.getHtmlBody() + "\n" + task.getTextBody();
        LOG.error(message);

        execution.setStatus(Status.NOT_SENT.name());

        if (task.getTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) {

            execution.setMessage(message);
        }
    } else {
        if (LOG.isDebugEnabled()) {
            LOG.debug("About to send e-mails:\n" + smtpHost + ":" + smtpPort + "\n" + task.getRecipients()
                    + "\n" + task.getSender() + "\n" + task.getSubject() + "\n" + task.getHtmlBody() + "\n"
                    + task.getTextBody() + "\n");
        }

        for (String to : task.getRecipients()) {
            try {
                JavaMailSenderImpl sender = new JavaMailSenderImpl();
                sender.setHost(smtpHost);
                sender.setPort(smtpPort);
                if (StringUtils.isNotBlank(smtpUsername)) {
                    sender.setUsername(smtpUsername);
                }
                if (StringUtils.isNotBlank(smtpPassword)) {
                    sender.setPassword(smtpPassword);
                }

                MimeMessage message = sender.createMimeMessage();
                MimeMessageHelper helper = new MimeMessageHelper(message, true);

                helper.setTo(to);
                helper.setFrom(task.getSender());
                helper.setSubject(task.getSubject());
                helper.setText(task.getTextBody(), task.getHtmlBody());

                sender.send(message);

                execution.setStatus(Status.SENT.name());

                StringBuilder report = new StringBuilder();
                switch (task.getTraceLevel()) {
                case ALL:
                    report.append("FROM: ").append(task.getSender()).append('\n').append("TO: ").append(to)
                            .append('\n').append("SUBJECT: ").append(task.getSubject()).append('\n')
                            .append('\n').append(task.getTextBody()).append('\n').append('\n')
                            .append(task.getHtmlBody()).append('\n');
                    break;

                case SUMMARY:
                    report.append("E-mail sent to ").append(to).append('\n');
                    break;

                case FAILURES:
                case NONE:
                default:
                }
                if (report.length() > 0) {
                    execution.setMessage(report.toString());
                }
            } catch (Throwable t) {
                LOG.error("Could not send e-mail", t);

                execution.setStatus(Status.NOT_SENT.name());
                StringWriter exceptionWriter = new StringWriter();
                exceptionWriter.write(t.getMessage() + "\n\n");
                t.printStackTrace(new PrintWriter(exceptionWriter));

                if (task.getTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) {

                    execution.setMessage(exceptionWriter.toString());
                }
            }

            execution.setEndDate(new Date());
        }
    }

    if (hasToBeRegistered(execution)) {
        execution = taskExecDAO.save(execution);
    }

    return execution;
}

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

/**
 * html// w  w w  .  jav a  2 s .co  m
 *
 * @param host 
 * @param port
 * @param userName
 * @param password
 * @param title
 * @param contenthtml
 * @param imgs
 * @param toUser
 * @throws javax.mail.MessagingException
 */
public static void sendNews(String host, int port, String userName, String password, String title,
        String content, List<String> imgs, String[] toUser)
        throws MessagingException, javax.mail.MessagingException {
    JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
    // mail server
    senderImpl.setHost(host);

    // ,html
    MimeMessage mailMessage = senderImpl.createMimeMessage();
    // boolean,MimeMessageHelpertrue
    // multipart
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);

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

    int i = 0;
    for (String imagePath : imgs) {
        FileSystemResource img = new FileSystemResource(new File(imagePath));
        messageHelper.addInline(i + "", img);
        i++;
    }

    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);

    // 
    senderImpl.send(mailMessage);
}

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

@Async
public void sendEmail(final String subject, final String templateName, String emailTo, String emailFrom,
        final Context ctx) {
    try {/*from  ww  w  .j a  v a 2s . c om*/
        // Prepare message using a Spring helper
        final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
        final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
        message.setSubject(subject);
        message.setFrom(emailFrom);
        message.setTo(emailTo);
        ctx.setVariable("baseUrl", this.baseUrl);
        // Create the HTML body using Thymeleaf
        final String htmlContent = this.templateEngine.process(templateName, ctx);

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Sending email body: " + htmlContent);
        }
        message.setText(htmlContent, true /* isHtml */);

        // Send email
        if (StringUtils.isNotBlank(ConfigurationFactory.getConfiguration().getString("mail.server.host"))) {
            this.mailSender.send(mimeMessage);
        } else {
            LOGGER.warn("Skipped sending email as mail.server.host property is empty");
        }
    } catch (Exception e) {
        LOGGER.error("Failed to send email: ", e);
    }

}

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

public void sendMail(final MailTask mt) {
    try {/*from  w w  w. j  a  v  a  2s.  c om*/
        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);
    }
}

From source file:com.ushahidi.swiftriver.core.mail.EmailHelper.java

private MimeMessagePreparator getMimeMessagePreparator(final User user, final String subject,
        final String mailBody) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper mimeHelper = new MimeMessageHelper(mimeMessage, true);
            mimeHelper.setFrom(senderAddress);
            mimeHelper.setTo(user.getEmail());
            mimeHelper.setReplyTo(senderAddress);
            mimeHelper.setSubject(subject);
            mimeHelper.setText(mailBody, true);
        }//w ww . ja v  a 2s.c o m
    };

    return preparator;
}