Example usage for org.springframework.mail SimpleMailMessage setCc

List of usage examples for org.springframework.mail SimpleMailMessage setCc

Introduction

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

Prototype

@Override
    public void setCc(String... cc) 

Source Link

Usage

From source file:com.springstudy.utils.email.SimpleMailService.java

/**
 * ??.// w ww. j av a 2s  .  co  m
 */
public boolean sendNotificationMail(com.gmk.framework.common.utils.email.Email email) {
    SimpleMailMessage msg = new SimpleMailMessage();
    msg.setFrom(Global.getConfig("mailFrom"));
    msg.setTo(email.getAddress());
    if (StringUtils.isNotEmpty(email.getCc())) {
        String cc[] = email.getCc().split(";");
        msg.setCc(cc);//?
    }
    msg.setSubject(email.getSubject());

    // ????
    //      String content = String.format(textTemplate, userName, new Date());
    String content = email.getContent();
    msg.setText(content);
    try {
        mailSender.send(msg);
        if (logger.isInfoEnabled()) {
            logger.info("??{}", StringUtils.join(msg.getTo(), ","));
        }
        return true;
    } catch (Exception e) {
        logger.error(email.getAddressee() + "-" + email.getSubject() + "-" + "??", e);
    }
    return false;
}

From source file:org.gbif.portal.service.impl.LogManagerImpl.java

/**
 * Sends a log message to the appropriate recipient
 * /*from ww w  . j a va  2s  .c  o m*/
 * TODO Should really make use of velocity templating
 *  
 * @param message GbifLogMessage 
 */
protected void sendFeedbackMessage(GbifLogMessage message, User user, String url) {
    // for safety
    if (user == null) {
        return;
    }

    List<String> toEmailAddresses = new ArrayList<String>();
    toEmailAddresses.add("sib+dataportal@humboldt.org.co");
    List<String> ccEmailAddresses = new ArrayList<String>();

    if (message.getDataResourceId() != 0) {
        String dataResourceKey = new Long(message.getDataResourceId()).toString();
        List<DataResourceAgentDTO> agents = dataResourceManager.getAgentsForDataResource(dataResourceKey);

        if (agents != null) {
            for (DataResourceAgentDTO agent : agents) {
                if (agent.getAgentType() == AgentType.DATAADMINISTRATOR.getValue()) {
                    toEmailAddresses.add(processEmail(agent.getAgentEmail()));
                } else {
                    ccEmailAddresses.add(processEmail(agent.getAgentEmail()));
                }
            }

            if (toEmailAddresses.size() == 0 && ccEmailAddresses.size() > 0) {
                toEmailAddresses = ccEmailAddresses;
                ccEmailAddresses = new ArrayList<String>();
            }
        }

    }

    if (toEmailAddresses.size() == 0 && message.getDataProviderId() != 0) {
        String dataProviderKey = new Long(message.getDataProviderId()).toString();
        List<DataProviderAgentDTO> agents = dataResourceManager.getAgentsForDataProvider(dataProviderKey);
        if (agents != null) {
            for (DataProviderAgentDTO agent : agents) {
                if (agent.getAgentType() == AgentType.DATAADMINISTRATOR.getValue()) {
                    toEmailAddresses.add(processEmail(agent.getAgentEmail()));
                } else {
                    ccEmailAddresses.add(processEmail(agent.getAgentEmail()));
                }
            }

            if (toEmailAddresses.size() == 0 && ccEmailAddresses.size() > 0) {
                toEmailAddresses = ccEmailAddresses;
                ccEmailAddresses = new ArrayList<String>();
            }
        }
    }

    if (toEmailAddresses.size() != 0) {
        ccEmailAddresses.addAll(portalEmailAddresses);
        ccEmailAddresses.removeAll(toEmailAddresses);

        SimpleMailMessage providerMessage = new SimpleMailMessage(providerTemplateMessage);
        providerMessage.setTo(toEmailAddresses.toArray(new String[toEmailAddresses.size()]));
        //user that submitted feedback should also be CCed
        if (user.getEmail() != null) {
            ccEmailAddresses.add(processEmail(user.getEmail()));
        }
        providerMessage.setCc(ccEmailAddresses.toArray(new String[ccEmailAddresses.size()]));

        // TODO - NLS and portal URL
        StringBuffer subjectBuffer = new StringBuffer();

        SimpleMailMessage userMessage = new SimpleMailMessage(userTemplateMessage);
        userMessage.setTo(user.getEmail());

        subjectBuffer.append("Comentarios desde el Portal de Datos del SIB Colombia - ");

        StringBuffer textBuffer = new StringBuffer();
        textBuffer.append(
                "El siguiente mensaje ha sido enviado a travs del Portal del Datos del SIB Colombia.\n\n");

        if (user != null) {
            textBuffer.append("  Usuario: ");
            textBuffer.append(user.getName());
            textBuffer.append(" (");
            textBuffer.append(user.getEmail());
            textBuffer.append(")\n\n");
        }

        if (message.getDataProviderId() != null && message.getDataProviderId() != 0) {
            try {
                DataProviderDTO dto = dataResourceManager
                        .getDataProviderFor(new Long(message.getDataProviderId()).toString());
                textBuffer.append("  Publicador de datos: ");
                textBuffer.append(dto.getName());
                textBuffer.append("\n");
                String portalUrl = "  URL en el portal: " + url + "/datasets/provider/";
                //textBuffer.append("  Portal URL: http://data.gbif.org/datasets/provider/");
                textBuffer.append(portalUrl);
                textBuffer.append(dto.getKey());
                textBuffer.append("\n\n");
            } catch (Exception e) {
                // ignore
            }
        }

        if (message.getDataResourceId() != null && message.getDataResourceId() != 0) {
            try {
                DataResourceDTO dto = dataResourceManager
                        .getDataResourceFor(new Long(message.getDataResourceId()).toString());
                textBuffer.append("  Conjunto de datos: ");
                textBuffer.append(dto.getName());
                textBuffer.append("\n");
                String portalUrl = "  URL en el portal: " + url + "/datasets/resource/";
                //textBuffer.append("  Portal URL: http://data.gbif.org/datasets/resource/");
                textBuffer.append(portalUrl);
                textBuffer.append(dto.getKey());
                textBuffer.append("\n\n");
            } catch (Exception e) {
                // ignore
            }
        }

        if (message.getOccurrenceId() != null && message.getOccurrenceId() != 0) {
            try {
                OccurrenceRecordDTO dto = occurrenceManager
                        .getOccurrenceRecordFor(new Long(message.getOccurrenceId()).toString());

                subjectBuffer.append("catalogue number: ");
                subjectBuffer.append(dto.getCatalogueNumber());
                subjectBuffer.append(" ");

                textBuffer.append("  Occurrence record: ");
                textBuffer.append(dto.getInstitutionCode());
                textBuffer.append(" / ");
                textBuffer.append(dto.getCollectionCode());
                textBuffer.append(" / ");
                textBuffer.append(dto.getCatalogueNumber());
                textBuffer.append("\n");
                String portalUrl = "  URL en el portal: " + url + "/occurrences/";
                //textBuffer.append("  Portal URL: http://data.gbif.org/occurrences/");
                textBuffer.append(portalUrl);
                textBuffer.append(dto.getKey());
                textBuffer.append("\n\n");
            } catch (Exception e) {
                // ignore
            }
        }

        if (message.getTaxonConceptId() != null && message.getTaxonConceptId() != 0) {
            try {
                TaxonConceptDTO dto = taxonomyManager
                        .getTaxonConceptFor(new Long(message.getTaxonConceptId()).toString());

                subjectBuffer.append("taxon: ");
                subjectBuffer.append(dto.getTaxonName());

                textBuffer.append("  Taxon: ");
                textBuffer.append(dto.getTaxonName());
                textBuffer.append("\n");
                String portalUrl = "  URL en el portal: " + url + "/species/";
                //textBuffer.append("  Portal URL: http://data.gbif.org/species/");
                textBuffer.append(portalUrl);
                textBuffer.append(dto.getKey());
                textBuffer.append("\n\n");
            } catch (Exception e) {
                // ignore
            }
        }

        textBuffer.append(message.getMessage());

        providerMessage.setSubject(subjectBuffer.toString());
        providerMessage.setText(textBuffer.toString());

        userMessage.setSubject(subjectBuffer.toString());
        userMessage.setText("Gracias por su comentario.  El mensaje ha sido"
                + " enviado en su nombre, al publicador de datos apropiado.\n\n");

        try {
            mailSender.send(providerMessage);
            mailSender.send(userMessage);
        } catch (MailException e) {
            // simply log it and go on...
            logger.error("Couldn't send message", e);
        }
    }
}