2011-02-02 42 views
6

Tôi đang phát triển một ứng dụng Java EE 6 được triển khai trên glassfish, tôi tiếp tục đọc hướng dẫn về cách gửi email nhưng chúng dường như đã lỗi thời hoặc quá phức tạp. Tôi đã hy vọng rằng có thể trong đặc điểm kỹ thuật này có một cách khá đơn giản để gửi thư vì rất nhiều thứ đã trở nên đơn giản hơn rất nhiều. Bạn có thể chỉ cho tôi đúng hướng hoặc có thể chỉ cho tôi một số mã mẫu không?Gửi e-mail trong JAVA EE 6

Trả lời

11

Bạn có thể sử dụng apache commons email hoặc nếu bạn đang sử dụng Mùa xuân thì sử dụng spring mail. Luôn có JavaMail nếu bạn không muốn sử dụng bất kỳ thư viện trình bao bọc nào và code sample trên đó.

Tất cả các liên kết này đều có ví dụ về mã.

+0

glassfish có bao gồm máy chủ SMTP hoặc bất kỳ dịch vụ nào để gửi thư không? Hoặc tôi có phải thiết lập một cách riêng biệt không? – arg20

+0

Bạn sẽ cần phải sử dụng trường học hoặc làm việc máy chủ SMTP. Tôi chưa bao giờ sử dụng Dumbster nhưng âm thanh như một cái tốt để sử dụng. Kudos cho James để cung cấp liên kết đó. – CoolBeans

0

Máy chủ ứng dụng JEE sẽ cung cấp tài nguyên email. Chỉ nghĩ rằng bạn cần làm là tra cứu tài nguyên (tôi cho rằng nó được cấu hình) và gửi email.

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

Trên Wildfly 10.1.0.final, Mail resource Injection hoạt động hoàn hảo bằng cách sử dụng các thuộc tính tra cứu hoặc tên –

Các vấn đề liên quan