/*
 * Copyright (c) 2006 Sun Microsystems, Inc.  All rights reserved.  U.S.
 * Government Rights - Commercial software.  Government users are subject
 * to the Sun Microsystems, Inc. standard license agreement and
 * applicable provisions of the FAR and its supplements.  Use is subject
 * to license terms.
 *
 * This distribution may include materials developed by third parties.
 * Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks
 * or registered trademarks of Sun Microsystems, Inc. in the U.S. and
 * other countries.
 *
 * Copyright (c) 2006 Sun Microsystems, Inc. Tous droits reserves.
 *
 * Droits du gouvernement americain, utilisateurs gouvernementaux - logiciel
 * commercial. Les utilisateurs gouvernementaux sont soumis au contrat de
 * licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions
 * en vigueur de la FAR (Federal Acquisition Regulations) et des
 * supplements a celles-ci.  Distribue par des licences qui en
 * restreignent l'utilisation.
 *
 * Cette distribution peut comprendre des composants developpes par des
 * tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE
 * sont des marques de fabrique ou des marques deposees de Sun
 * Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
 */


package confirmer.ejb;

import java.text.DateFormat;
import java.util.Date;
import java.util.logging.Logger;
import javax.annotation.Resource;
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;


@Stateless
public class ConfirmerBean implements Confirmer {
    private static final String mailer = "JavaMailer";
    private static Logger logger = Logger.getLogger(
                "confirmer.ejb.ConfirmerBean");
    @Resource(name = "mail/myMailSession")
    private Session session;

    /** Creates a new instance of ConfirmerBean */
    public ConfirmerBean() {
    }

    public void sendNotice(String recipient) {
        try {
            Message message = new MimeMessage(session);
            message.setFrom();
            message.setRecipients(
                    Message.RecipientType.TO,
                    InternetAddress.parse(recipient, false));
            message.setSubject("Test Message from ConfirmerBean");

            DateFormat dateFormatter = DateFormat.getDateTimeInstance(
                        DateFormat.LONG,
                        DateFormat.SHORT);
            Date timeStamp = new Date();

            String messageText = "Thank you for your order." + '\n'
                + "We received your order on "
                + dateFormatter.format(timeStamp) + ".";
            message.setText(messageText);
            message.setHeader("X-Mailer", mailer);
            message.setSentDate(timeStamp);

            // Send message
            Transport.send(message);

            logger.info("Mail sent to " + recipient + ".");
        } catch (MessagingException ex) {
            ex.printStackTrace();
            logger.info("Error in ConfirmerBean for " + recipient);
        }
    }
}
