Tomcat - autenticar smtp.gmail.com

 
Vista:

autenticar smtp.gmail.com

Publicado por Enrique Ochoa (4 intervenciones) el 13/09/2008 22:21:16
Hola

tengo instalado javaEE, tomcat 6.0 y un servlet con el que deseo enviar correos con javamail y utilizando como host a gmail

debo configurar algo especial en tomcat? en standalone funciona perfectamente

verificando el log encuentro que se conecta perfectamente a gmail pero cuando autentica usuario-password no funciona

por su valiosa ayuda muchas gracias....

Properties p = new Properties();
p.setProperty("mail.smtp.host", "smtp.gmail.com");
p.setProperty("mail.smtp.starttls.enable", "true");
p.setProperty("mail.smtp.port", "587");
p.setProperty("mail.smtp.user", "[email protected]");
p.setProperty("mail.smtp.auth", "true");

Session session = Session.getInstance(p);
session.setDebug(true);

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
message.setSubject("correo de prueba");
message.setContent("contenido de prueba", "text/html");

Transport t = session.getTransport("smtp");
t.connect("[email protected]", "password");
message.saveChanges();
t.sendMessage(message, message.getAllRecipients());
t.close();
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:autenticar smtp.gmail.com

Publicado por Enrique Ochoa (4 intervenciones) el 14/09/2008 00:17:47
analizando el log anterior mostrado encontre el problema y la solucion.


private void enviarMail(String email, String titulo, String contenido) throws Exception {
ResultSet correo = connection.createStatement().executeQuery("select * from base_de_datos");
correo.next();

Properties p = new Properties();
p.setProperty("mail.smtp.host", "smtp.gmail.com");
p.setProperty("mail.smtp.starttls.enable", "true");
p.setProperty("mail.smtp.port", "587");
p.setProperty("mail.smtp.auth", "true");

Session session = Session.getInstance(p, new Usuario("[email protected]", "password");
session.setDebug(true);

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
message.setSubject(titulo);
message.setContent(contenido, "text/html");

Transport.send (message);
}

class Usuario extends Authenticator{
private String usuario = null;
private String password = null;

public Usuario(String usuario, String password){
this.usuario = usuario;
this.password = password;
}

@Override
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(usuario, password);
}
}

Nota: este codigo abre la session y la cierra automaticamente por lo que no se requiere ni se recomienda crear una instancia (objeto) de la clase Transport sino utiizar tal cual el metodo estatico send.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:autenticar smtp.gmail.com

Publicado por Enrique Ochoa (4 intervenciones) el 14/09/2008 00:20:21
perdon se me fue un pedazo de codigo

ResultSet correo = connection.createStatement().executeQuery("select * from base_de_datos");
correo.next();

que utilizo para parametrizar el host, usuario, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:autenticar smtp.gmail.com

Publicado por rey (1 intervención) el 15/12/2009 20:36:53
regdfgfd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar