edu.cornell.mannlib.vitro.webapp.utils.MailUtil.java Source code

Java tutorial

Introduction

Here is the source code for edu.cornell.mannlib.vitro.webapp.utils.MailUtil.java

Source

/* $This file is distributed under the terms of the license in /doc/license.txt$ */

package edu.cornell.mannlib.vitro.webapp.utils;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory;

public class MailUtil {
    private static final Log log = LogFactory.getLog(MailUtil.class);
    private final HttpServletRequest req;

    public MailUtil(HttpServletRequest req) {
        this.req = req;
    }

    public void sendMessage(String messageText, String subject, String from, String to, List<String> deliverToArray)
            throws IOException {

        Session s = FreemarkerEmailFactory.getEmailSession(req);

        try {

            int recipientCount = (deliverToArray == null) ? 0 : deliverToArray.size();
            if (recipientCount == 0) {
                log.error("To establish the Contact Us mail capability the system administrators must  "
                        + "specify at least one email address in the current portal.");
            }

            MimeMessage msg = new MimeMessage(s);
            // Set the from address
            msg.setFrom(new InternetAddress(from));

            // Set the recipient address

            if (recipientCount > 0) {
                InternetAddress[] address = new InternetAddress[recipientCount];
                for (int i = 0; i < recipientCount; i++) {
                    address[i] = new InternetAddress(deliverToArray.get(i));
                }
                msg.setRecipients(Message.RecipientType.TO, address);
            }

            // Set the subject and text
            msg.setSubject(subject);

            // add the multipart to the message
            msg.setContent(messageText, "text/html");

            // set the Date: header
            msg.setSentDate(new Date());
            Transport.send(msg); // try to send the message via smtp - catch error exceptions
        } catch (Exception ex) {
            log.error("Exception sending message :" + ex.getMessage(), ex);
        }
    }

}