在JAVA EE 6中发送电子邮件

时间:2011-02-02 22:53:38

标签: java email java-ee-6

我正在开发部署在glassfish上的Java EE 6应用程序,我一直在阅读有关如何发送电子邮件的教程,但它们似乎已过时或过于复杂。我希望可能在这个规范中有一种相当简单的发送邮件的方式,因为很多东西变得如此简单。 你能指出我正确的方向还是可以给我看一些示例代码?

2 个答案:

答案 0 :(得分:12)

您可以使用apache commons email,或者如果您使用的是Spring,请使用spring mail。如果您不想使用任何包装器库和JavaMail,则总是code sample

所有这些链接都有代码示例。

答案 1 :(得分:0)

JEE App Server应提供电子邮件资源。您需要做的唯一考虑是查找资源(我认为它已配置)并发送电子邮件。

//Mail  Resource injection not working on wildfly 10
//@Resource(lookup = "java:/futuramail")
private Session mailSession;

@Asynchronous
@Lock(LockType.READ)
    public void sendMail(String recipient, String subject, String text) {
        try {

            InitialContext ic = new InitialContext();
            mailSession = (Session) ic.lookup("java:/futuramail");
            MimeMessage message = new MimeMessage(mailSession);
            Address[] to = new InternetAddress[]{new InternetAddress(recipient)};
            message.setRecipients(Message.RecipientType.TO, to);
            message.setSubject(subject);
            message.setSentDate(new Date());
            message.setContent(text, "text/html");
            //message.setText(text);
            Transport.send(message);
            System.out.println("mail sent");
        } catch (MessagingException me) {
            me.printStackTrace();
        } catch (NamingException ex) {
            Logger.getLogger(MailProcessor.class.getName()).log(Level.SEVERE, null, ex);
        }
    }