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

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

Introduction

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

Prototype

public void setCc(String[] cc) throws MessagingException 

Source Link

Usage

From source file:com.glaf.mail.MailSenderImpl.java

public void send(JavaMailSender javaMailSender, MailMessage mailMessage) throws Exception {
    if (StringUtils.isEmpty(mailMessage.getMessageId())) {
        mailMessage.setMessageId(UUID32.getUUID());
    }/*from  w  ww.j  av  a 2 s . c o  m*/

    mailHelper = new MxMailHelper();
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();

    MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);

    if (StringUtils.isNotEmpty(mailMessage.getFrom())) {
        messageHelper.setFrom(mailMessage.getFrom());
        mailFrom = mailMessage.getFrom();
    } else {
        if (StringUtils.isEmpty(mailFrom)) {
            mailFrom = MailProperties.getString("mail.mailFrom");
        }
        messageHelper.setFrom(mailFrom);
    }

    logger.debug("mailFrom:" + mailFrom);

    if (mailMessage.getTo() != null) {
        messageHelper.setTo(mailMessage.getTo());
    }

    if (mailMessage.getCc() != null) {
        messageHelper.setCc(mailMessage.getCc());
    }

    if (mailMessage.getBcc() != null) {
        messageHelper.setBcc(mailMessage.getBcc());
    }

    if (mailMessage.getReplyTo() != null) {
        messageHelper.setReplyTo(mailMessage.getReplyTo());
    }

    String mailSubject = mailMessage.getSubject();
    if (mailSubject == null) {
        mailSubject = "";
    }

    if (mailSubject != null) {
        // mailSubject = MimeUtility.encodeText(new
        // String(mailSubject.getBytes(), encoding), encoding, "B");
        mailSubject = MimeUtility.encodeWord(mailSubject);
    }

    mimeMessage.setSubject(mailSubject);

    Map<String, Object> dataMap = mailMessage.getDataMap();
    if (dataMap == null) {
        dataMap = new java.util.HashMap<String, Object>();
    }

    String serviceUrl = SystemConfig.getServiceUrl();

    logger.debug("mailSubject:" + mailSubject);
    logger.debug("serviceUrl:" + serviceUrl);

    if (serviceUrl != null) {
        String loginUrl = serviceUrl + "/mx/login";
        String mainUrl = serviceUrl + "/mx/main";
        logger.debug("loginUrl:" + loginUrl);
        dataMap.put("loginUrl", loginUrl);
        dataMap.put("mainUrl", mainUrl);
    }

    mailMessage.setDataMap(dataMap);

    if (StringUtils.isEmpty(mailMessage.getContent())) {
        Template template = TemplateContainer.getContainer().getTemplate(mailMessage.getTemplateId());
        if (template != null) {
            String templateType = template.getTemplateType();
            logger.debug("templateType:" + templateType);
            // logger.debug("content:" + template.getContent());
            if (StringUtils.equals(templateType, "eml")) {
                if (template.getContent() != null) {
                    Mail m = mailHelper.getMail(template.getContent().getBytes());
                    String content = m.getContent();
                    if (StringUtils.isNotEmpty(content)) {
                        template.setContent(content);
                        try {
                            Writer writer = new StringWriter();
                            TemplateUtils.evaluate(mailMessage.getTemplateId(), dataMap, writer);
                            String text = writer.toString();
                            writer.close();
                            writer = null;
                            mailMessage.setContent(text);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                            throw new RuntimeException(ex);
                        }
                    }
                }
            } else {
                try {
                    String text = TemplateUtils.process(dataMap, template.getContent());
                    mailMessage.setContent(text);
                } catch (Exception ex) {
                    ex.printStackTrace();
                    throw new RuntimeException(ex);
                }
            }
        }
    }

    if (StringUtils.isNotEmpty(mailMessage.getContent())) {
        String text = mailMessage.getContent();
        if (StringUtils.isNotEmpty(callbackUrl)) {
            String href = callbackUrl + "?messageId=" + mailMessage.getMessageId();
            text = mailHelper.embedCallbackScript(text, href);
            mailMessage.setContent(text);
            logger.debug(text);
            messageHelper.setText(text, true);
        }
        messageHelper.setText(text, true);
    }

    logger.debug("mail body:" + mailMessage.getContent());

    Collection<Object> files = mailMessage.getFiles();

    if (files != null && !files.isEmpty()) {
        Iterator<Object> iterator = files.iterator();
        while (iterator.hasNext()) {
            Object object = iterator.next();
            if (object instanceof java.io.File) {
                java.io.File file = (java.io.File) object;
                FileSystemResource resource = new FileSystemResource(file);
                String name = file.getName();
                name = MailTools.chineseStringToAscii(name);
                messageHelper.addAttachment(name, resource);
                logger.debug("add attachment:" + name);
            } else if (object instanceof DataSource) {
                DataSource dataSource = (DataSource) object;
                String name = dataSource.getName();
                name = MailTools.chineseStringToAscii(name);
                messageHelper.addAttachment(name, dataSource);
                logger.debug("add attachment:" + name);
            } else if (object instanceof DataFile) {
                DataFile dataFile = (DataFile) object;
                if (StringUtils.isNotEmpty(dataFile.getFilename())) {
                    String name = dataFile.getFilename();
                    name = MailTools.chineseStringToAscii(name);
                    InputStreamSource inputStreamSource = new MxMailInputSource(dataFile);
                    messageHelper.addAttachment(name, inputStreamSource);
                    logger.debug("add attachment:" + name);
                }
            }
        }
    }

    mimeMessage.setSentDate(new java.util.Date());

    javaMailSender.send(mimeMessage);

    logger.info("-----------------------------------------");
    logger.info("????");
    logger.info("-----------------------------------------");
}

From source file:alfio.manager.system.SmtpMailer.java

@Override
public void send(Event event, String to, List<String> cc, String subject, String text, Optional<String> html,
        Attachment... attachments) {/* www .j a va2  s .c  o  m*/
    MimeMessagePreparator preparator = (mimeMessage) -> {
        MimeMessageHelper message = html.isPresent() || !ArrayUtils.isEmpty(attachments)
                ? new MimeMessageHelper(mimeMessage, true, "UTF-8")
                : new MimeMessageHelper(mimeMessage, "UTF-8");
        message.setSubject(subject);
        message.setFrom(
                configurationManager.getRequiredValue(
                        Configuration.from(event.getOrganizationId(), event.getId(), SMTP_FROM_EMAIL)),
                event.getDisplayName());
        String replyTo = configurationManager.getStringConfigValue(
                Configuration.from(event.getOrganizationId(), event.getId(), MAIL_REPLY_TO), "");
        if (StringUtils.isNotBlank(replyTo)) {
            message.setReplyTo(replyTo);
        }
        message.setTo(to);
        if (cc != null && !cc.isEmpty()) {
            message.setCc(cc.toArray(new String[cc.size()]));
        }
        if (html.isPresent()) {
            message.setText(text, html.get());
        } else {
            message.setText(text, false);
        }

        if (attachments != null) {
            for (Attachment a : attachments) {
                message.addAttachment(a.getFilename(), new ByteArrayResource(a.getSource()),
                        a.getContentType());
            }
        }

        message.getMimeMessage().saveChanges();
        message.getMimeMessage().removeHeader("Message-ID");
    };
    toMailSender(event).send(preparator);
}

From source file:info.jtrac.mail.MailSender.java

public void send(Item item) {
    if (sender == null) {
        logger.debug("mail sender is null, not sending notifications");
        return;//from w w  w  .  ja  v a2  s .  c  o  m
    }
    // TODO make this locale sensitive per recipient        
    logger.debug("attempting to send mail for item update");
    // prepare message content
    StringBuffer sb = new StringBuffer();
    String anchor = getItemViewAnchor(item, defaultLocale);
    sb.append(anchor);
    sb.append(ItemUtils.getAsHtml(item, messageSource, defaultLocale));
    sb.append(anchor);
    if (logger.isDebugEnabled()) {
        logger.debug("html content: " + sb);
    }
    // prepare message
    MimeMessage message = sender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");
    try {
        helper.setText(addHeaderAndFooter(sb), true);
        helper.setSubject(getSubject(item));
        helper.setSentDate(new Date());
        helper.setFrom(from);
        // set TO            
        if (item.getAssignedTo() != null) {
            helper.setTo(item.getAssignedTo().getEmail());
        } else {
            helper.setTo(item.getLoggedBy().getEmail());
        }
        // set CC
        if (item.getItemUsers() != null) {
            String[] cc = new String[item.getItemUsers().size()];
            int i = 0;
            for (ItemUser itemUser : item.getItemUsers()) {
                cc[i++] = itemUser.getUser().getEmail();
            }
            helper.setCc(cc);
        }
        // send message
        sendInNewThread(message);
    } catch (Exception e) {
        logger.error("failed to prepare e-mail", e);
    }
}

From source file:MailSender.java

public void send(Item item) {

    // 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 notifications");
        return;/*from w  ww. jav a 2s.  c  o m*/
    }

    // TODO make this locale sensitive per recipient
    // major: don't use the comment to explain what the code is doing, just wrap the function in a
    // method with a talking name. This apply to all comments in this method.
    logger.debug("attempting to send mail for item update");
    // prepare message content
    StringBuffer sb = new StringBuffer();
    String anchor = getItemViewAnchor(item, defaultLocale);
    sb.append(anchor);
    // minor: why is not important here the user's locale like in the sendUserPassword method?
    sb.append(ItemUtils.getAsHtml(item, messageSource, defaultLocale));
    sb.append(anchor);
    if (logger.isDebugEnabled()) {
        logger.debug("html content: " + sb);
    }
    // prepare message
    MimeMessage message = sender.createMimeMessage();
    // minor: I would use StandardCharsets.UTF_8.name() that return the canonical name
    // major: how do you test the use cases about the message?
    // the message is in the local stack so it can't be tested
    // better to implement a bridge pattern to decouple the messageHelper and pass it as
    // a collaborator. Although keep in mind that building the message is not a responsibility
    // of this class so this class should just send the message and not building it.
    MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");

    // Remember the TO person email to prevent duplicate mails
    // minor: recipient would be a better name for this variable
    // major: catching a general Exception is a bad idea. You are telling me
    // we could have a problem but when I'm reading it and I don't understand
    // what could go wrong (and, also, the try block is too long so that's one of
    // the reason I can't see what could go wrong)
    String toPersonEmail;
    try {
        helper.setText(addHeaderAndFooter(sb), true);
        helper.setSubject(getSubject(item));
        helper.setSentDate(new Date());
        helper.setFrom(from);
        // set TO
        if (item.getAssignedTo() != null) {
            helper.setTo(item.getAssignedTo().getEmail());
            toPersonEmail = item.getAssignedTo().getEmail();
        } else {
            helper.setTo(item.getLoggedBy().getEmail());
            toPersonEmail = item.getLoggedBy().getEmail();
        }
        // set CC
        List<String> cclist = new ArrayList<String>();
        if (item.getItemUsers() != null) {
            for (ItemUser itemUser : item.getItemUsers()) {
                // Send only, if person is not the TO assignee
                if (!toPersonEmail.equals(itemUser.getUser().getEmail())) {
                    cclist.add(itemUser.getUser().getEmail());
                }
            }

            // sounds complicated but we have to ensure that no null
            // item will be set in setCC(). So we collect the cc items
            // in the cclist and transform it to an stringarray.
            if (cclist.size() > 0) {
                String[] cc = cclist.toArray(new String[0]);
                helper.setCc(cc);
            }
        }
        // send message
        // workaround: Some PSEUDO user has no email address. Because email
        // address
        // is mandatory, you can enter "no" in email address and the mail
        // will not
        // be sent.

        // major: this check is too late, we created everything and then we
        // won't use it.
        if (!"no".equals(toPersonEmail))
            sendInNewThread(message);
    } catch (Exception e) {
        logger.error("failed to prepare e-mail", e);
    }
}

From source file:ome.services.mail.MailUtil.java

/**
 * Main method which takes typical email fields as arguments, to prepare and
 * populate the given new MimeMessage instance and send.
 *
 * @param from//from  www.  j  ava 2  s. c o m
 *            email address message is sent from
 * @param to
 *            email address message is sent to
 * @param topic
 *            topic of the message
 * @param body
 *            body of the message
 * @param html
 *            flag determines the content type to apply.
 * @param ccrecipients
 *            list of email addresses message is sent as copy to
 * @param bccrecipients
 *            list of email addresses message is sent as blind copy to
 */
public void sendEmail(final String from, final String to, final String topic, final String body,
        final boolean html, final List<String> ccrecipients, final List<String> bccrecipients) {

    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception {

            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setText(body, html);
            message.setFrom(from);
            message.setSubject(topic);
            message.setTo(to);
            if (ccrecipients != null && !ccrecipients.isEmpty()) {
                message.setCc(ccrecipients.toArray(new String[ccrecipients.size()]));
            }

            if (bccrecipients != null && !bccrecipients.isEmpty()) {
                message.setCc(bccrecipients.toArray(new String[bccrecipients.size()]));
            }
        }

    };

    this.mailSender.send(preparator);
}

From source file:org.broadleafcommerce.common.email.service.message.MessageCreator.java

public MimeMessagePreparator buildMimeMessagePreparator(final Map<String, Object> props) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {

        @Override/*from  w w w.  j a va  2 s.co m*/
        public void prepare(MimeMessage mimeMessage) throws Exception {
            EmailTarget emailUser = (EmailTarget) props.get(EmailPropertyType.USER.getType());
            EmailInfo info = (EmailInfo) props.get(EmailPropertyType.INFO.getType());
            boolean isMultipart = CollectionUtils.isNotEmpty(info.getAttachments());
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, info.getEncoding());
            message.setTo(emailUser.getEmailAddress());
            message.setFrom(info.getFromAddress());
            message.setSubject(info.getSubject());
            if (emailUser.getBCCAddresses() != null && emailUser.getBCCAddresses().length > 0) {
                message.setBcc(emailUser.getBCCAddresses());
            }
            if (emailUser.getCCAddresses() != null && emailUser.getCCAddresses().length > 0) {
                message.setCc(emailUser.getCCAddresses());
            }
            String messageBody = info.getMessageBody();
            if (messageBody == null) {
                messageBody = buildMessageBody(info, props);
            }
            message.setText(messageBody, true);
            for (Attachment attachment : info.getAttachments()) {
                ByteArrayDataSource dataSource = new ByteArrayDataSource(attachment.getData(),
                        attachment.getMimeType());
                message.addAttachment(attachment.getFilename(), dataSource);
            }
        }
    };
    return preparator;

}

From source file:org.craftercms.commons.mail.impl.EmailFactoryImpl.java

protected MimeMessage createMessage(String from, String[] to, String[] cc, String[] bcc, String replyTo,
        String subject, String body, boolean html, File... attachments) throws EmailException {
    boolean addAttachments = ArrayUtils.isNotEmpty(attachments);
    MimeMessageHelper messageHelper;

    try {/*www  .  j  a  va 2s .  c  o  m*/
        if (addAttachments) {
            messageHelper = new MimeMessageHelper(mailSender.createMimeMessage(), true);
        } else {
            messageHelper = new MimeMessageHelper(mailSender.createMimeMessage());
        }

        messageHelper.setFrom(from);
        if (to != null) {
            messageHelper.setTo(to);
        }
        if (cc != null) {
            messageHelper.setCc(cc);
        }
        if (bcc != null) {
            messageHelper.setBcc(bcc);
        }
        if (replyTo != null) {
            messageHelper.setReplyTo(replyTo);
        }
        messageHelper.setSubject(subject);
        messageHelper.setText(body, html);

        if (addAttachments) {
            for (File attachment : attachments) {
                messageHelper.addAttachment(attachment.getName(), attachment);
            }
        }
    } catch (AddressException e) {
        throw new EmailAddressException(e);
    } catch (MessagingException e) {
        throw new EmailPreparationException(e);
    }

    logger.debug(LOG_KEY_MIME_MSG_CREATED, from, StringUtils.join(to, ','), StringUtils.join(cc, ','),
            StringUtils.join(bcc, ','), subject, body);

    return messageHelper.getMimeMessage();
}

From source file:org.emmanet.controllers.requestsUpdateInterfaceFormController.java

@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws ServletException, Exception {
    model.put("BASEURL", BASEURL);
    System.out.println("BASEURL VALUE FROM MODEL IS::" + model.get("BASEURL"));
    WebRequestsDAO webRequest = (WebRequestsDAO) command;

    if (!request.getParameter("noTAinfo").equals("true")) {
        String panelDecision = webRequest.getTa_panel_decision();

        String applicationType = webRequest.getApplication_type();

        if (panelDecision.equals("yes") || panelDecision.equals("no") && applicationType.contains("ta")) {
            //check if mail already sent by checking notes for string
            if (!webRequest.getNotes().contains("TA mail sent")) {

                //Decision has been made therefore decision mails should be triggered
                //SimpleMailMessage msg = getSimpleMailMessage();
                MimeMessage msg = getJavaMailSender().createMimeMessage();
                MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8");
                String content = "";
                String toAddress = webRequest.getSci_e_mail();
                // msg.setTo(toAddress);
                helper.setTo(toAddress);
                helper.setFrom(getFromAddress());

                String[] ccs = getCc();
                List lCc = new ArrayList();
                for (int i = 0; i < ccs.length; i++) {
                    //add configurated cc addresses to list
                    String CcElement = ccs[i];
                    lCc.add(CcElement);//  w w w . j a  v a 2s.  c o m
                }
                lCc.add(webRequest.getCon_e_mail());
                List ccCentre = wr.ccArchiveMailAddresses("" + webRequest.getStr_id_str(), "strains");

                Object[] o = null;
                Iterator it = ccCentre.iterator();
                while (it.hasNext()) {
                    o = (Object[]) it.next();
                    lCc.add(o[1].toString());
                }
                String[] ar = new String[lCc.size()];
                for (int i = 0; i < lCc.size(); i++) {
                    Object oo = lCc.get(i);
                    ar[i] = oo.toString();
                    System.out.println(oo.toString());
                }

                String[] bccs = getBcc();
                //msg.
                helper.setBcc(bccs);

                //msg.
                helper.setCc(ar);

                /*  format date string */
                String date = webRequest.getTimestamp().toString();
                String yyyy = date.substring(0, 4);
                String MM = date.substring(5, 7);
                String dd = date.substring(8, 10);

                date = dd + "-" + MM + "-" + yyyy;
                model.put("name", webRequest.getSci_firstname() + " " + webRequest.getSci_surname());
                model.put("emmaid", webRequest.getStrain_id().toString());
                model.put("strainname", webRequest.getStrain_name());
                model.put("timestamp", date);
                model.put("sci_title", webRequest.getSci_title());
                model.put("sci_firstname", webRequest.getSci_firstname());
                model.put("sci_surname", webRequest.getSci_surname());
                model.put("sci_e_mail", webRequest.getSci_e_mail());
                model.put("strain_id", webRequest.getStrain_id());
                model.put("strain_name", webRequest.getStrain_name());
                model.put("common_name_s", webRequest.getCommon_name_s());
                model.put("req_material", webRequest.getReq_material());
                //new mta file inclusion
                model.put("requestID", webRequest.getId_req());
                model.put("BASEURL", BASEURL);
                StrainsManager sm = new StrainsManager();
                StrainsDAO sd = sm.getStrainByID(webRequest.getStr_id_str());
                if (!webRequest.getLab_id_labo().equals("4")) {
                    /*
                     * FOR LEGAL REASONS MTA FILE AND USAGE TEXT SHOULD NOT BE SHOWN FOR MRC STOCK.
                     * MRC WILL SEND MTA SEPARATELY (M.FRAY EMMA IT MEETING 28-29 OCT 2010)
                     */
                    model.put("mtaFile", sd.getMta_file());
                }
                //########################################################            

                String rtoolsID = "";
                List rtools = wr.strainRToolID(webRequest.getStr_id_str());
                it = rtools.iterator();
                while (it.hasNext()) {
                    Object oo = it.next();
                    rtoolsID = oo.toString();
                }

                model.put("rtoolsID", rtoolsID);
                //TEMPLATE SELECTION

                if (panelDecision.equals("yes")) {
                    //we need to send a mail
                    if (webRequest.getApplication_type().contains("ta_")) {
                        System.out.println(getTemplatePath() + getTaOrRequestYesTemplate());
                        content = VelocityEngineUtils.mergeTemplateIntoString(getVelocityEngine(),
                                getTemplatePath() + getTaOrRequestYesTemplate(), model);
                    }
                }
                /* webRequest.getTa_panel_decision().equals("no") */
                if (panelDecision.equals("no")) {
                    System.out.println("panel decision == no ==");
                    if (applicationType.equals("ta_or_request")) {
                        System.out.println("path to template for ta_or_req and no==" + getTemplatePath()
                                + getTaOrRequestNoTemplate());
                        content = VelocityEngineUtils.mergeTemplateIntoString(getVelocityEngine(),
                                getTemplatePath() + getTaOrRequestNoTemplate(), model);
                    }
                    if (applicationType.equals("ta_only")) {
                        //TODO IF NO AND TA_ONLY THEN REQ_STATUS=CANC
                        webRequest.setReq_status("CANC");
                        System.out.println("path to template for ta_only and no==" + getTemplatePath()
                                + getTaOnlyNoTemplate());
                        content = VelocityEngineUtils.mergeTemplateIntoString(getVelocityEngine(),
                                getTemplatePath() + getTaOnlyNoTemplate(), model);
                    }
                }

                //send message
                //msg.
                helper.setSubject(
                        msgSubject + webRequest.getStrain_name() + "(" + webRequest.getStrain_id() + ")");
                //msg.
                helper.setText(content);

                //###/add mta file if associated with strain id
                String mtaFile = "";
                mtaFile = (new StringBuilder()).append(mtaFile).append(sd.getMta_file()).toString();

                if (mtaFile != null || model.get("mtaFile").toString().equals("")) {
                    FileSystemResource fileMTA = new FileSystemResource(new File(getPathToMTA() + mtaFile));
                    //need to check for a valid mta filename use period extension separator, all mtas are either .doc or .pdf
                    if (fileMTA.exists() && fileMTA.toString().contains(".")) {
                        //M Hagn decided now to not send an MTA at this point as users should have already received one. Was confusing users to receive another philw@ebi.ac.uk 05042011
                        //helper.addAttachment(model.get("mtaFile").toString(), fileMTA);
                    }
                }
                System.out.println("Rtools=" + model.get("rtoolsID") + " and labID=" + model.get("labID"));
                if (request.getParameter("TEST") != null) {
                    // TESTER SUBMITTED EMAIL ADDRESS
                    //msg.
                    helper.setTo(request.getParameter("TEST"));
                    //msg.
                    helper.setCc(request.getParameter("TEST"));
                    String Ccs = "";
                    for (int i = 0; i < ar.length; i++) {
                        Ccs = Ccs + ", " + ar[i];
                    }
                    //msg.
                    helper.setText("TEST EMAIL, LIVE EMAIL SENT TO " + toAddress + " CC'D TO :\n\n " + Ccs
                            + " LIVE MESSAGE TEXT FOLLOWS BELOW::\n\n" + content);
                }
                if (!toAddress.equals("")) {
                    //Set notes to contain ta mail sent trigger
                    String notes = webRequest.getNotes();
                    notes = notes + "TA mail sent";
                    webRequest.setNotes(notes);
                }
                getJavaMailSender().send(msg);
            }
        }
    }

    if (request.getParameter("fSourceID") != null || !request.getParameter("fSourceID").equals("")) {
        //save requestfunding source ID
        boolean saveOnly = false;
        int sour_id = Integer.parseInt(request.getParameter("fSourceID"));
        int srcID = Integer.parseInt(webRequest.getId_req());
        System.out.println("fSourceID==" + srcID);
        srd = wr.getReqSourcesByID(srcID);//sm.getSourcesByID(srcID);

        //  
        try {
            srd.getSour_id();//ssd.getSour_id();
            srd.setSour_id(sour_id);
        } catch (NullPointerException np) {
            srd = new Sources_RequestsDAO();
            int reqID = Integer.parseInt(webRequest.getId_req());

            srd.setReq_id_req(reqID);

            srd.setSour_id(sour_id);
            //save only here not save or update
            saveOnly = true;

        }

        if (saveOnly) {
            wr.saveOnly(srd);
            System.out.println("THIS IS NOW SAVED:: SAVEONLY");
        } else if (!saveOnly) {
            //save or update
            System.out.println("SAVEORUPDATEONLY + value is.." + srd);
            wr.save(srd);
            System.out.println("THIS IS NOW SAVED:: SAVEORUPDATEONLY");
        }

    }

    wr.saveRequest(webRequest);
    request.getSession().setAttribute("message",
            getMessageSourceAccessor().getMessage("Message", "Your update submitted successfully"));

    if (webRequest.getProjectID().equals("3") && webRequest.getLab_id_labo().equals("1961")) {
        //OK this is a Sanger/Eucomm strain and could be subject to charging so may need to send xml
        if (request.getParameter("currentReqStatus").contains("PR")
                && webRequest.getReq_status().equals("SHIP")) {

            //status changed to shipped from a non cancelled request so subject to a charge
            model.put("name", webRequest.getSci_firstname() + " " + webRequest.getSci_surname());
            model.put("emmaid", webRequest.getStrain_id().toString());
            model.put("strainname", webRequest.getStrain_name());
            model.put("timestamp", webRequest.getTimestamp());
            model.put("ftimestamp", webRequest.getFtimestamp());
            model.put("sci_title", webRequest.getSci_title());
            model.put("sci_firstname", webRequest.getSci_firstname());
            model.put("sci_surname", webRequest.getSci_surname());
            model.put("sci_e_mail", webRequest.getSci_e_mail());
            model.put("sci_phone", webRequest.getSci_phone());
            model.put("sci_fax", webRequest.getSci_fax());
            model.put("con_title", webRequest.getCon_title());
            model.put("con_firstname", webRequest.getCon_firstname());
            model.put("con_surname", webRequest.getCon_surname());
            model.put("con_e_mail", webRequest.getCon_e_mail());
            model.put("con_phone", webRequest.getCon_phone());
            model.put("con_fax", webRequest.getCon_fax());
            model.put("con_institution", webRequest.getCon_institution());
            model.put("con_dept", webRequest.getCon_dept());
            model.put("con_addr_1", webRequest.getCon_addr_1());
            model.put("con_addr_2", webRequest.getCon_addr_2());
            model.put("con_province", webRequest.getCon_province());
            model.put("con_town", webRequest.getCon_town());
            model.put("con_postcode", webRequest.getCon_postcode());
            model.put("con_country", webRequest.getCon_country());

            //billing details

            if (!webRequest.getRegister_interest().equals("1")) {
                model.put("PO_ref", webRequest.getPO_ref());
                model.put("bil_title", webRequest.getBil_title());
                model.put("bil_firstname", webRequest.getBil_firstname());
                model.put("bil_surname", webRequest.getBil_surname());
                model.put("bil_e_mail", webRequest.getBil_e_mail());
                model.put("bil_phone", webRequest.getBil_phone());
                model.put("bil_fax", webRequest.getBil_fax());
                model.put("bil_institution", webRequest.getBil_institution());
                model.put("bil_dept", webRequest.getBil_dept());
                model.put("bil_addr_1", webRequest.getBil_addr_1());
                model.put("bil_addr_2", webRequest.getBil_addr_2());
                model.put("bil_province", webRequest.getBil_province());
                model.put("bil_town", webRequest.getBil_town());
                model.put("bil_postcode", webRequest.getBil_postcode());
                model.put("bil_country", webRequest.getBil_country());
                model.put("bil_vat", webRequest.getBil_vat());
            }
            //end biling details

            model.put("strain_id", webRequest.getStrain_id());
            model.put("strain_name", escapeXml(webRequest.getStrain_name()));
            model.put("common_name_s", webRequest.getCommon_name_s());
            model.put("req_material", webRequest.getReq_material());
            model.put("live_animals", webRequest.getLive_animals());
            model.put("frozen_emb", webRequest.getFrozen_emb());
            model.put("frozen_spe", webRequest.getFrozen_spe());
            // TA application details
            model.put("application_type", webRequest.getApplication_type());
            model.put("ta_eligible", webRequest.getEligible_country());

            if (webRequest.getApplication_type().contains("ta")) {
                model.put("ta_proj_desc", webRequest.getProject_description());
                model.put("ta_panel_sub_date", webRequest.getTa_panel_sub_date());
                model.put("ta_panel_decision_date", webRequest.getTa_panel_decision_date());
                model.put("ta_panel_decision", webRequest.getTa_panel_decision());
            } else {
                model.put("ta_proj_desc", "");
                model.put("ta_panel_sub_date", "");
                model.put("ta_panel_decision_date", "");
                model.put("ta_panel_decision", "");
            }
            model.put("ROI", webRequest.getRegister_interest());

            model.put("europhenome", webRequest.getEurophenome());
            model.put("wtsi_mouse_portal", webRequest.getWtsi_mouse_portal());

            //now create xml file

            String xmlFileContent = VelocityEngineUtils.mergeTemplateIntoString(getVelocityEngine(),
                    "org/emmanet/util/velocitytemplates/requestXml-Template.vm", model);

            File file = new File(Configuration.get("sangerLineDistribution"));
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"));
            out.write(xmlFileContent);
            out.close();

            //email file now
            MimeMessage message = getJavaMailSender().createMimeMessage();

            try {
                MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
                helper.setReplyTo("emma@infrafrontier.eu");
                helper.setFrom("emma@infrafrontier.eu");
                helper.setBcc(bcc);
                helper.setTo(sangerLineDistEmail);
                helper.setSubject("Sanger Line Distribution " + webRequest.getStrain_id());
                helper.addAttachment("sangerlinedistribution.xml", file);
                getJavaMailSender().send(message);
            } catch (MessagingException ex) {
                ex.printStackTrace();
            }
        }
    }
    System.out.println("BASEURL VALUE FROM MODEL IS::" + model.get("BASEURL"));
    return new ModelAndView(
            "redirect:requestsUpdateInterface.emma?Edit=" + request.getParameter("Edit").toString()
                    + "&strainID=" + request.getParameter("strainID").toString() + "&archID="
                    + request.getParameter("archID").toString());
}

From source file:org.jasig.ssp.service.impl.MessageServiceImpl.java

@Override
@Transactional(readOnly = false)//  w  ww  .  ja v  a2  s.  co m
public boolean sendMessage(@NotNull final Message message)
        throws ObjectNotFoundException, SendFailedException, UnsupportedEncodingException {

    LOGGER.info("BEGIN : sendMessage()");
    LOGGER.info(addMessageIdToError(message) + "Sending message: {}", message.toString());

    try {
        final MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        final MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);

        // process FROM addresses
        InternetAddress from;
        String appName = configService.getByName("app_title").getValue();

        //We used the configured outbound email address for every outgoing message
        //If a message was initiated by an end user, their name will be attached to the 'from' while
        //the configured outbound address will be the actual address used for example "Amy Aministrator (SSP) <myconfiguredaddress@foobar.com>"
        String name = appName + " Administrator";
        if (message.getSender() != null && !message.getSender().getEmailAddresses().isEmpty()
                && !message.getSender().getId().equals(Person.SYSTEM_ADMINISTRATOR_ID)) {
            InternetAddress[] froms = getEmailAddresses(message.getSender(), "from:", message.getId());
            if (froms.length > 0) {
                name = message.getSender().getFullName() + " (" + appName + ")";
            }
        }

        from = new InternetAddress(configService.getByName("outbound_email_address").getValue(), name);
        if (!this.validateEmail(from.getAddress())) {
            throw new AddressException("Invalid from: email address [" + from.getAddress() + "]");
        }

        mimeMessageHelper.setFrom(from);
        message.setSentFromAddress(from.toString());
        mimeMessageHelper.setReplyTo(from);
        message.setSentReplyToAddress(from.toString());

        // process TO addresses
        InternetAddress[] tos = null;
        if (message.getRecipient() != null && message.getRecipient().hasEmailAddresses()) { // NOPMD by jon.adams         
            tos = getEmailAddresses(message.getRecipient(), "to:", message.getId());
        } else {
            tos = getEmailAddresses(message.getRecipientEmailAddress(), "to:", message.getId());
        }
        if (tos.length > 0) {
            mimeMessageHelper.setTo(tos);
            message.setSentToAddresses(StringUtils.join(tos, ",").trim());
        } else {
            StringBuilder errorMsg = new StringBuilder();

            errorMsg.append(addMessageIdToError(message) + " Message " + message.toString()
                    + " could not be sent. No valid recipient email address found: '");

            if (message.getRecipient() != null) {
                errorMsg.append(message.getRecipient().getPrimaryEmailAddress());
            } else {
                errorMsg.append(message.getRecipientEmailAddress());
            }
            LOGGER.error(errorMsg.toString());
            throw new MessagingException(errorMsg.toString());
        }

        // process BCC addresses
        try {
            InternetAddress[] bccs = getEmailAddresses(getBcc(), "bcc:", message.getId());
            if (bccs.length > 0) {
                mimeMessageHelper.setBcc(bccs);
                message.setSentBccAddresses(StringUtils.join(bccs, ",").trim());
            }
        } catch (Exception exp) {
            LOGGER.warn("Unrecoverable errors were generated adding carbon copy to message: " + message.getId()
                    + "Attempt to send message still initiated.", exp);
        }

        // process CC addresses
        try {
            InternetAddress[] carbonCopies = getEmailAddresses(message.getCarbonCopy(), "cc:", message.getId());
            if (carbonCopies.length > 0) {
                mimeMessageHelper.setCc(carbonCopies);
                message.setSentCcAddresses(StringUtils.join(carbonCopies, ",").trim());
            }
        } catch (Exception exp) {
            LOGGER.warn("Unrecoverable errors were generated adding bcc to message: " + message.getId()
                    + "Attempt to send message still initiated.", exp);
        }

        mimeMessageHelper.setSubject(message.getSubject());
        mimeMessageHelper.setText(message.getBody());
        mimeMessage.setContent(message.getBody(), "text/html");

        send(mimeMessage);

        message.setSentDate(new Date());
        messageDao.save(message);
    } catch (final MessagingException e) {
        LOGGER.error("ERROR : sendMessage() : {}", e);
        handleSendMessageError(message);
        throw new SendFailedException(addMessageIdToError(message) + "The message parameters were invalid.", e);
    }

    LOGGER.info("END : sendMessage()");
    return true;
}

From source file:org.openvpms.web.component.mail.AbstractMailer.java

/**
 * Populates the mail message./* w w w  .  j  av a  2  s. c  om*/
 *
 * @param helper the message helper
 * @throws MessagingException           for any messaging error
 * @throws UnsupportedEncodingException if the character encoding is not supported
 */
protected void populateMessage(MimeMessageHelper helper)
        throws MessagingException, UnsupportedEncodingException {
    helper.setFrom(getFrom());
    String[] to = getTo();
    if (to != null && to.length != 0) {
        helper.setTo(to);
    }
    String[] cc = getCc();
    if (cc != null && cc.length != 0) {
        helper.setCc(cc);
    }
    String[] bcc = getBcc();
    if (bcc != null && bcc.length != 0) {
        helper.setBcc(bcc);
    }
    helper.setSubject(getSubject());
    if (body != null) {
        helper.setText(body);

    } else {
        helper.setText("");
    }
    for (Document attachment : attachments) {
        addAttachment(helper, attachment);
    }
}