Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Contraseña de aplicacion Gmail

BocaDePez
BocaDePez

Hola, estoy intentando hacer un programa para enviar emails en java.

El caso es que necesito la contraseña de aplicación de la cuenta de gmail origen ya que es requerida en el código.

Tengo varias cuentas de gmail y he seguido en todas ellas la guía de support.google pero en las tres me indica "este ajuste no está disponible para tu cuenta".

He buscado por internet y en youtube y no he encontrado respuesta satisfactoria al problema.

Me pregunto si alguno aquí podría indicarme cómo resolver el problema.

un saludo

BocaDePez
BocaDePez

Lo que requerirá es la clave SMTP, que será la misma que la de la cuenta, a no ser que tengas activada la autenticación en dos pasos.

BocaDePez
BocaDePez

Hola, he visto en "Configuración de la cuenta" que la "autenticación en dos pasos" está desactivada.

un saludo

🗨️ 2
BocaDePez
BocaDePez

Entonces debería funcionar la contraseña de la cuenta.

🗨️ 1
BocaDePez
BocaDePez

No si tiene desactivado pop3 e imap (no debería afectar al smtp, pero quien sabe lo que está haciendo).

Mira en la config de la cuenta en gmail

BocaDePez
BocaDePez

responder.

Tanto POP3 como IMAP están habilitados (al menos así figura en la configuración de la cuenta). Lo cierto es que le he dado mil vueltas y no he logrado nada. Descarté el código y busqué por internet otro muy sencillo que no necesitara contraseña de aplicación sino que bastara con la contraseña normal...pero tampoco va.

Este es el código (que encontré en internet) pero da la excepción :

excepción :
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 465;

el código es:

public static void main(String [] args)
{

String to = "xxx@gmail.com";

String from = "xxxxx@gmail.com";

String host = "localhost";

Properties properties = System.getProperties();

properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.port","465");

Session session = Session.getDefaultInstance(properties);

try{

MimeMessage message = new MimeMessage(session);

message.setFrom(new InternetAddress(from));

message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));

message.setSubject("This is the Subject Line!");

message.setText("This is actual message");

Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}

Probé con otro código más, aparte de los anteriores, y tomado también de internet pero no va tampoco ...da excepción de authentication unas veces, si modifico algo (por ejemplo el puerto) da otras excepciones como excepción Messagging, otras veces se queda como colgado...en fin. Supongo que debe tener que ver con las cuentas de gmail (al menos la de origen del email) que igual tengo que modificarla de algún modo (yo la tengo en forma predeterminada) pero bueno es lo que hay.

🗨️ 3
BocaDePez
BocaDePez

Queda bien claro el problema. Te diría que aprendieses a hacer cosas en lugar de copiar códigos de Internet... Y que si salen errores, al menos intentaras entenderlos... Pero te voy a dar la solución. Cambia:

String host = "localhost";

Por:

String host = "smtp.gmail.com";

🗨️ 2
BocaDePez
BocaDePez

HOla, lamentablemente no va.

Al correrlo aparece la barra de progreso con la palabra " running" ...y ahí me las den todas. Así se queda.

He probado con códigos muy sencillos que he ido encontrando para ver qué es lo que puede fallar.

Si no funciona veo la excepción, busco sobre ella en internet y hago cambios para aprender. Así he ido haciendo algunos programas de login, chats, etc. Luego los voy repitiendo en el netbeans hasta que aprendo. Hace unos días quise aprender a enviar emails programando java...pero está visto que no hay manera.

un saludo.

🗨️ 1