UtilBean.java 2.04 KB
package fi.insomnia.bortal.beans;

import java.io.UnsupportedEncodingException;

import javax.annotation.Resource;
import javax.ejb.Local;
import javax.ejb.Stateless;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceUnit;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.utilities.I18n;

/**
 * Session Bean implementation class UtilBean
 */
@Stateless
@Local
public class UtilBean implements UtilBeanLocal {

    private static final Logger logger = LoggerFactory.getLogger(UtilBean.class);

    @Resource(name = "mail/lanbortal")
    private Session mailSession;

    @PersistenceContext
    private EntityManager em;

    @PersistenceUnit
    private EntityManagerFactory emf;

    /**
     * Default constructor.
     */
    public UtilBean() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public boolean sendMail(User user, String subject, String message) {
        boolean ret = true;
        Message msg = new MimeMessage(mailSession);
        try {
            msg.setSubject(subject);
            msg.setFrom(new InternetAddress("info@insomnia.fi", "Insomnia lippukauppa"));
            msg.setRecipient(RecipientType.TO, new InternetAddress(user.getEmail(),
                            user.getFirstnames() + " " + user.getLastname()));
            msg.setText(message);
            Transport.send(msg);
        } catch (MessagingException me) {
            logger.info("Error sending email!", me);
            ret = false;
        } catch (UnsupportedEncodingException uee) {
            logger.info("Error sending email!", uee);
            ret = false;
        }
        return ret;
    }
}