2011-02-02 27 views
6

Cam balıklara dağıtılan bir Java EE 6 uygulaması geliştiriyorum, e-postaların nasıl gönderileceğiyle ilgili eğitimlerini okudum, ancak eski veya çok karmaşık görünüyorlar. Bu şartnamede olabileceğini umduğumda, birçok şey çok daha kolay hale geldiğinden, posta göndermek için oldukça basit bir yol var. Bana doğru yönde işaret edebilir misin yoksa bana örnek kod gösterebilir misin?JAVA EE 6'da e-posta gönderme

cevap

11

apache commons email veya Spring'i kullanıyorsanız spring mail kullanın. Herhangi bir sarmalayıcı kitaplığı ve bir code sample kullanmak istemiyorsanız, her zaman JavaMail vardır.

Bu bağlantıların hepsinde kod örnekleri vardır.

+0

glassfish bir smtp sunucusu veya posta göndermek için herhangi bir servis içerir mi? Yoksa ayrı bir tane mi kurmak zorundayım? – arg20

+0

Okulunuzu kullanmanız veya smtp sunucusunu çalıştırmanız gerekecek. Hiç Dumbster kullanmadım ama kullanmak için iyi bir ses gibi geliyor. Bu bağlantıyı sağlamak için James'e Kudos. – CoolBeans

0

JEE App Server, e-posta kaynağını sağlamalıdır. Yapmanız gereken tek şey kaynağı aramak (varsayalım) ve e-postayı göndermek.

//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

Benim Wildfly 10.1.0.final üzerinde, Posta kaynak Enjeksiyon ya arama veya isim niteliklerini kullanarak mükemmel çalışır –