example enviar crear correo con autenticar archivo adjunto java email smtp gmail javamail

enviar - javamail netbeans



Necesita hacer que Javamail sea más seguro para la autenticación de Gmail (1)

He escrito un código para enviar un correo simple de java (javamail / jaf). después de ejecutar el programa, recibí un correo electrónico de Google en el que se indica que mi cuenta está siendo accedida por un dispositivo / aplicación no segura. Luego tuve que cambiar la configuración de mi cuenta de Gmail para permitir el inicio de sesión para la opción de "aplicaciones menos seguras". Luego recibí mi correo electrónico del programa.

Necesito enviar un correo electrónico sin cambiar la opción de permitir la opción de "aplicaciones menos seguras" en mi cuenta. Por favor ayuda.

Mi código es:

import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMailSSL { public static void main(String[] args) { Properties props = new Properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("*****@gmail.com","*******"); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("*****@gmail.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("*****@gmail.com")); message.setSubject("Testing Subject"); message.setText("Dear User," + "/n/n No spam to my email, please!"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { throw new RuntimeException(e); } } }