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

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

Introduction

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

Prototype

public void addAttachment(String attachmentFilename, InputStreamSource inputStreamSource)
        throws MessagingException 

Source Link

Document

Add an attachment to the MimeMessage, taking the content from an org.springframework.core.io.InputStreamResource .

Usage

From source file:edu.mum.emailservice.EmailService.java

public void sendOrderReceivedMail(final String recipientName, final String recipientEmail, Order order,
        String documentName, 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("Order Details");

    // could have CC, BCC, will also take an array of Strings
    message.setTo(recipientEmail);//  w ww  .  j  a  v a 2 s . c o  m

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

    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:gov.nih.nci.cabig.caaers.tools.mail.CaaersJavaMailSender.java

/**
 * This method is used to send an email/*from w w  w  . j a  va2  s. com*/
 */
public void sendMail(String[] to, String[] cc, String subject, String content, String[] attachmentFilePaths) {
    if (to == null || to.length == 0 || to[0] == null) {
        return;
    }
    try {
        MimeMessage message = createMimeMessage();
        message.setSubject(subject);

        // use the true flag to indicate you need a multipart message
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setTo(to);
        if (cc != null && cc.length > 0) {
            helper.setCc(cc);
        }
        helper.setText(content);

        for (String attachmentPath : attachmentFilePaths) {
            if (StringUtils.isNotEmpty(attachmentPath)) {
                File f = new File(attachmentPath);
                FileSystemResource file = new FileSystemResource(f);
                helper.addAttachment(file.getFilename(), file);
            }
        }
        send(message);

    } catch (Exception e) {
        if (SUPRESS_MAIL_SEND_EXCEPTION)
            return; //supress the excetion related to email sending
        throw new CaaersSystemException("Error while sending email to " + to[0], e);
    }
}

From source file:net.maritimecloud.identityregistry.utils.EmailUtil.java

public void sendBugReport(BugReport report) throws MailException, MessagingException {
    MimeMessage message = this.mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setTo(bugReportEmail);/*from  ww w . j  a  v a 2 s  .c o  m*/
    helper.setFrom(from);
    helper.setSubject(report.getSubject());
    helper.setText(report.getDescription());
    if (report.getAttachments() != null) {
        for (BugReportAttachment attachment : report.getAttachments()) {
            // Decode base64 encoded data
            byte[] data = Base64.getDecoder().decode(attachment.getData());
            ByteArrayDataSource dataSource = new ByteArrayDataSource(data, attachment.getMimetype());
            helper.addAttachment(attachment.getName(), dataSource);
        }
    }
    this.mailSender.send(message);
}

From source file:org.appverse.web.framework.backend.api.services.integration.impl.live.MailIntegrationServiceImpl.java

@SuppressWarnings("unchecked")
@Override/*from  w w w. j  a  v  a 2s.co m*/
public void sendMail(String from, String[] to, String[] copyTo, String subject, String templateLocation,
        Map model, ArrayList<AttachmentDTO> attachments) throws Exception {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setFrom(from);
    helper.setTo(to);
    if (copyTo != null) {
        helper.setCc(copyTo);
    }
    helper.setSubject(subject);
    String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, ENCODING, templateLocation,
            model);
    helper.setText(text, true);
    for (AttachmentDTO attachmentDTO : attachments) {
        helper.addAttachment(attachmentDTO.getAttachmentName(), attachmentDTO.getAttachment());
    }
    try {
        this.mailSender.send(message);
    } catch (MailSendException sendMailException) {
        Exception[] messageExceptions = sendMailException.getMessageExceptions();
        for (Exception messageException : messageExceptions) {
            if (messageException instanceof SendFailedException) {
                SendFailedException sendFailedException = (SendFailedException) messageException;
                if (sendFailedException.getMessage().equals(INVALID_ADDRESSES)) {
                    Address[] invalidAddresses = sendFailedException.getInvalidAddresses();
                    List<String> invalidAddressList = new ArrayList<String>();
                    for (Address invalidAddress : invalidAddresses) {
                        String invalidAddressString = invalidAddress.toString();
                        invalidAddressList.add(invalidAddressString);
                    }
                    List<String> validToAdressesList = new ArrayList<String>();
                    if (to != null && to.length > 0) {
                        for (String address : to) {
                            if (!invalidAddressList.contains(address)) {
                                validToAdressesList.add(address);
                            }
                        }
                    }

                    List<String> validCopyToAdressesList = new ArrayList<String>();
                    if (copyTo != null && copyTo.length > 0) {
                        for (String address : copyTo) {
                            if (!invalidAddressList.contains(address)) {
                                validCopyToAdressesList.add(address);
                            }
                        }
                    }

                    String[] validToAdressesArray = new String[validToAdressesList.size()];
                    validToAdressesList.toArray(validToAdressesArray);
                    helper.setTo(validToAdressesList.toArray(validToAdressesArray));

                    String[] validCopyToAdressesArray = new String[validCopyToAdressesList.size()];
                    validCopyToAdressesList.toArray(validCopyToAdressesArray);
                    helper.setCc(validCopyToAdressesList.toArray(validCopyToAdressesArray));
                    for (String invalidAddress : invalidAddressList) {
                        logger.error("Mail not sended to " + invalidAddress + "due its a invalid address");
                    }
                    this.mailSender.send(message);
                }
            }
        }
    }
}

From source file:net.bafeimao.umbrella.web.test.MailTests.java

@Test
public void testSendMailWithAttachedImage() throws MessagingException {
    // ?,???html//from   ww w.j av a 2 s . c o m
    MimeMessage mailMessage = senderImpl.createMimeMessage();
    // ?boolean,?MimeMessageHelpertrue?
    // multipart? true?? ?html?
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");

    // 
    messageHelper.setTo("29283212@qq.com");
    messageHelper.setFrom("29283212@qq.com");
    messageHelper.setSubject("!?");
    // true ?HTML?
    messageHelper.setText(
            "<html><head></head><body><h1>?</h1></body></html>", true);

    FileSystemResource file = new FileSystemResource(new File(imagePath));
    // ???
    messageHelper.addAttachment("image", file);

    // ??
    senderImpl.send(mailMessage);

    System.out.println("???..");
}

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

public void sendHtmlMail(String from, String[] to, String subject, String text, String[] fileNames,
        File[] files) throws Exception {
    List<EmailSetting> emailSettings = baseService.getAllObjects(EmailSetting.class.getSimpleName());
    EmailSetting emailSetting = null;/*from ww  w  .  ja v  a 2 s . c om*/
    if (emailSettings != null && emailSettings.size() > 0) {
        emailSetting = emailSettings.get(0);
    } else {
        return;
    }
    if (from == null) {
        from = emailSetting.getFrom_address();
    }
    Session mailSession = createSmtpSession(emailSetting);

    if (mailSession != null) {
        Transport transport = mailSession.getTransport();
        MimeMessage msg = new MimeMessage(mailSession);
        MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(text, true);
        if (fileNames != null && files != null) {
            String fileName = null;
            File file = null;
            for (int i = 0; i < fileNames.length; i++) {
                fileName = fileNames[i];
                file = files[i];
                if (fileName != null && file != null) {
                    helper.addAttachment(fileName, file);
                }
            }
        }
        transport.connect();
        transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
    }

}

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

public void sendMail(final MailTask mt) {
    try {//  w w w  . ja  v  a2 s .  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);
    }
}

From source file:eu.openanalytics.rsb.component.EmailDepositHandler.java

public void handleResult(final MultiFilesResult result) throws MessagingException, IOException {
    final Serializable responseBody = result.getMeta().get(EMAIL_BODY_META_NAME);
    final String responseText = responseBody instanceof File ? FileUtils.readFileToString((File) responseBody)
            : responseBody.toString();// w ww.ja  v  a2 s . c  o m

    final MimeMessage mimeMessage = mailSender.createMimeMessage();
    final MimeMessageHelper mmh = new MimeMessageHelper(mimeMessage, true);

    mmh.setFrom((String) result.getMeta().get(EMAIL_ADDRESSEE_META_NAME));
    mmh.setTo((String) result.getMeta().get(EMAIL_REPLY_TO_META_NAME));
    mmh.setCc((String[]) result.getMeta().get(EMAIL_REPLY_CC_META_NAME));
    mmh.setSubject("RE: " + result.getMeta().get(EMAIL_SUBJECT_META_NAME));

    if (result.isSuccess()) {
        mmh.setText(responseText);
        for (final File resultFile : result.getPayload()) {
            mmh.addAttachment(resultFile.getName(), resultFile);
        }
    } else {
        mmh.setText(FileUtils.readFileToString(result.getPayload()[0]));
    }

    final Message<MimeMailMessage> message = new GenericMessage<MimeMailMessage>(new MimeMailMessage(mmh));
    outboundEmailChannel.send(message);
}

From source file:no.dusken.common.control.MailController.java

/**
 *
 * @param mail the mail part of the mail
 * @param model other things that should be in the mail.
 * @param template - the path to the velocitytemplate to use (mail/template.vm)
 *///from w  ww  .  j  a  va  2 s.c o  m
public void sendEmail(final Mail mail, final Map model, final String template) {
    final Map<String, Object> map = new HashMap<String, Object>();
    if (model != null) {
        map.putAll(model);
    }
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setTo(mail.getToAddress());
            if (mail.getFromAddress() == null || mail.getFromAddress().equals("")) {
                mail.setFromAddress(defaultSenderAddress);
            }
            message.setFrom(mail.getFromAddress());
            message.setSubject(mail.getSubject());

            map.put("mail", mail);
            String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, template, map);
            message.setText(text, false);
            if (mail.getAttachment() != null) {
                FileSystemResource res = new FileSystemResource(mail.getAttachment());
                message.addAttachment(mail.getAttachment().getName(), res);
            }
        }
    };
    this.mailSender.send(preparator);
}

From source file:mx.edu.um.mateo.rh.web.DependienteController.java

private void enviaCorreo(String tipo, List<Dependiente> dependientes, HttpServletRequest request)
        throws JRException, MessagingException {
    log.debug("Enviando correo {}", tipo);
    byte[] archivo = null;
    String tipoContenido = null;/* ww  w  . j a  v  a2s  . com*/
    switch (tipo) {
    case "PDF":
        archivo = generaPdf(dependientes);
        tipoContenido = "application/pdf";
        break;
    case "CSV":
        archivo = generaCsv(dependientes);
        tipoContenido = "text/csv";
        break;
    case "XLS":
        archivo = generaXls(dependientes);
        tipoContenido = "application/vnd.ms-excel";
    }

    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    String titulo = messageSource.getMessage("dependiente.lista.label", null, request.getLocale());
    helper.setSubject(messageSource.getMessage("envia.correo.titulo.message", new String[] { titulo },
            request.getLocale()));
    helper.setText(messageSource.getMessage("envia.correo.contenido.message", new String[] { titulo },
            request.getLocale()), true);
    helper.addAttachment(titulo + "." + tipo, new ByteArrayDataSource(archivo, tipoContenido));
    mailSender.send(message);
}