2011-02-02 105 views
6

我正在开发部署在glassfish上的Java EE 6应用程序,我一直在阅读有关如何发送电子邮件的教程,但看起来不是过时就是太复杂。我希望在这个规范中可能有一个相当简单的发送邮件的方式,因为很多事情变得如此简单。 你能指出我的方向是正确的吗?或者可以给我看一些示例代码?用JAVA EE发送电子邮件6

回答

11

您可以利用apache commons email或者如果您使用的是Spring,然后使用spring mail。如果您不想使用任何包装库和code sample,总是会有JavaMail

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

+0

玻璃鱼包括一个smtp服务器或任何服务发送邮件?或者我必须单独设置一个? – arg20 2011-02-02 23:08:27

+0

您将需要使用您的学校或工作smtp服务器。我从来没有使用过Dumbster,但听起来很不错。荣誉给詹姆斯提供这种联系。 – CoolBeans 2011-02-02 23:19:30

0

JEE应用程序服务器应提供电子邮件资源。唯一需要做的就是查找资源(我认为它已配置)并发送电子邮件。

//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); 
     } 
    }