Este equipo de trabajo ha estado por horas buscando soluciones a tu duda, te brindamos la solución y nuestro deseo es servirte de mucha ayuda.
Solución:
Intente crear un objeto javax.mail.Authenticator y envíelo con el objeto de propiedades al objeto de sesión.
Edición del autenticador:
Puede modificar esto para aceptar un nombre de usuario y contraseña y puede almacenarlos allí, o donde quiera.
public class SmtpAuthenticator extends Authenticator {
public SmtpAuthenticator()
super();
@Override
public PasswordAuthentication getPasswordAuthentication()
String username = "user";
String password = "password";
if ((username != null) && (username.length() > 0) && (password != null)
&& (password.length () > 0))
return new PasswordAuthentication(username, password);
return null;
En tu clase donde envías el correo electrónico:
SmtpAuthenticator authentication = new SmtpAuthenticator();
javax.mail.Message msg = new MimeMessage(Session
.getDefaultInstance(emailProperties, authenticator));
Debe agregar la autenticación de objetos como parámetro a la sesión. como
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator()
protected PasswordAuthentication getPasswordAuthentication()
return new PasswordAuthentication(
"[email protected]", "XXXXX");// Specify the Username and the PassWord
);
ahora no obtendrá este tipo de excepción….
javax.mail.AuthenticationFailedException: failed to connect, no password specified?
A su sesión de correo electrónico se le debe proporcionar una instancia de autenticación como se muestra a continuación
Session session = Session.getDefaultInstance(props,
new Authenticator()
protected PasswordAuthentication getPasswordAuthentication()
return new PasswordAuthentication(
"[email protected]", "password");
);
un ejemplo completo está aquí http://bharatonjava.wordpress.com/2012/08/27/sending-email-using-java-mail-api/
Comentarios y valoraciones del tutorial
Nos puedes añadir valor a nuestro contenido participando con tu veteranía en las observaciones.