2009-05-11 21 views
10

Estoy usando Apache Commons Email library para enviar correos electrónicos, pero no puedo enviarlos a través del servidor GMail SMTP.
¿Alguien puede proporcionar un código de muestra que funcione con el servidor GMail SMTP y otros?Enviando correo electrónico en Java utilizando Apache Commons email libs

estoy usando el siguiente código que no funciona:

String[] recipients = {"[email protected]"}; 

SimpleEmail email = new SimpleEmail(); 
email.setHostName("smtp.gmail.com"); 
email.setAuthentication("[email protected]", "mypasswd"); 
email.setDebug(true); 
email.setSmtpPort(465); 

for (int i = 0; i < recipients.length; i++) 
{ 
    email.addTo(recipients[i]); 
} 

email.setFrom("[email protected]", "Me"); 
email.setSubject("Test message"); 
email.setMsg("This is a simple test of commons-email"); 
email.send(); 

Respuesta

10

envío de correos electrónicos en el servidor SMTP de Gmail requiere autenticación y SSL. El nombre de usuario y la contraseña son bastante sencillos. Asegúrese de tener las siguientes propiedades configuradas para habilitar la autenticación y SSL, y debería funcionar.

mail.smtp.auth=true 
mail.smtp.starttls.enable=true 

Para el código de ejemplo, agregue lo siguiente a TLS habilitado.

Para API-Versiones 1.3 < uso:
email.setTSL(true);
el método es obsoleto para las versiones> = 1.3, y en su lugar se debe utilizar: email.setStartTLSEnabled(true);

2

utilizando commons.email trabajó para mí.

HtmlEmail email = new HtmlEmail(); 
email.setHostName("smtp.gmail.com"); 
email.setSmtpPort(465); 
email.setSSL(true); 
8

Por favor, encuentre abajo un código que funciona. Obviamente, debe agregar el jar de apache a la ruta de compilación de su proyecto.

public static void sendSimpleMail() throws Exception { 
    Email email = new SimpleEmail(); 
    email.setSmtpPort(587); 
    email.setAuthenticator(new DefaultAuthenticator("your gmail username", 
      "your gmail password")); 
    email.setDebug(false); 
    email.setHostName("smtp.gmail.com"); 
    email.setFrom("[email protected]"); 
    email.setSubject("Hi"); 
    email.setMsg("This is a test mail ... :-)"); 
    email.addTo("[email protected]"); 
    email.setTLS(true); 
    email.send(); 
    System.out.println("Mail sent!"); 
} 

Saludos, Sergiu

Cuestiones relacionadas