2011-02-02 20 views
6

Estoy desarrollando una aplicación Java EE 6 implementada en glassfish, sigo leyendo tutoriales sobre cómo enviar correos electrónicos pero parecen obsoletos o demasiado complicados. Tenía la esperanza de que en esta especificación haya una forma bastante simple de enviar correo, ya que muchas cosas se han vuelto mucho más simples. ¿Puede señalarme en la dirección correcta o puede mostrarme algún código de muestra?Envío de correos electrónicos en JAVA EE 6

Respuesta

11

Puede utilizar apache commons email o si está utilizando Spring y luego usa spring mail. Siempre hay JavaMail si no desea utilizar ninguna de las bibliotecas contenedoras y un code sample en él.

Todos estos enlaces tienen ejemplos de código.

+0

¿Glassfish incluye un servidor smtp o algún servicio para enviar correos? ¿O tengo que configurar uno por separado? – arg20

+0

Tendrá que utilizar su servidor smtp de la escuela o del trabajo. Nunca he usado Dumbster, pero suena como uno bueno para usar. Felicitaciones a James por proporcionar ese enlace. – CoolBeans

0

El Servidor de aplicaciones JEE debe proporcionar el recurso de correo electrónico. Lo único que debes hacer es buscar el recurso (supongo que está configurado) y enviar el correo electrónico.

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

En mi Wildfly 10.1.0.final, Inyección de recursos de correo funciona perfectamente ya sea usando los atributos de búsqueda o nombre –

Cuestiones relacionadas