"Soy yo, otra vez. Y otra vez, tengo una pequeña sorpresa para ti".

"Hoy les voy a enseñar cómo enviar correos electrónicos usando Java " .

"Comencemos con las buenas noticias: Java tiene una biblioteca nativa para trabajar con correo electrónico " .

"La mala noticia es que esta biblioteca es parte de Java EE , no de Java SE ".

" Java EE es una versión extendida de JavaSE , que incluye clases necesarias para aplicaciones más ingeniosas. Por ejemplo, una aplicación para trabajar con correo electrónico".

"Entendido, entonces, ¿qué se puede hacer?"

"Bueno, te sugiero que descargues esta biblioteca y eso es todo".

"Use IntelliJ IDEA sabiamente".

"Cree una clase y agregue las bibliotecas javax.mail.* y javax.mail.internet.* a la sección de importación.

Luego presione Alt+Enter y deje que IDEA haga todo por usted:

"Así es como se ve la oferta para descargar las bibliotecas que faltan:"

Enviar correo electrónico - 1

"Así es como se ve la ventana de descarga:"

Enviar correo electrónico - 2

"O puedes descargarlo aquí "

"Descargado. ¿Qué sigue?"

"Debe ir a la configuración del proyecto (Abrir configuración del módulo) a la sección Bibliotecas y agregar archivos JAR del archivo descargado".

Enviar correo electrónico - 3

"Hecho."

"¿Las siguientes líneas ya no son rojas?"

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

"Sí."

"Genial, entonces continuemos".

"Hay tres pasos para enviar un correo electrónico".

1) Establecer una conexión con el servidor de correo que se utilizará para enviar el correo electrónico

2) Cree el correo electrónico y, si es necesario, agregue archivos adjuntos

3) Enviar el correo electrónico.

"Vamos a empezar desde el principio."

"Para enviar un correo electrónico en Java, primero debe establecer una conexión con el servidor de correo".

"Es mejor si ya tiene una cuenta de correo electrónico en el servidor. Preocupados por el spam, los servidores de correo modernos no quieren enviar mensajes de usuarios anónimos " .

"Puede conectarse al servidor con una sola llamada al método javax.mail.Session.getDefaultInstance:"

Crear una conexión con el servidor de correo
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

"Pero debe pasar la configuración del servidor de correo a este método".

"Por ejemplo, puede crear un archivo Mail.properties y completarlo con la configuración deseada, por ejemplo, algo como esto:"

Correo.propiedades
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

"Lo más importante es especificar el protocolo y el host, pero es posible que necesite configuraciones adicionales, según cómo funcione el servidor de correo".

"Simplemente puede agregar estos datos a un objeto de propiedades directamente en su código Java".

"Por ejemplo:"

Crear una conexión con el servidor de correo"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

"Genial, tenemos una sesión. Ahora vamos a crear un correo electrónico".

"Esto es más fácil de hacer de lo que parece a primera vista. Por ejemplo:"

Crear un mensaje de correo
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

"¿Puedo especificar cualquier dirección de correo electrónico como destinatario?"

"Sí. Además, también puede especificar cualquier dirección de correo electrónico como remitente".

"¡Genial! Lo tendré en cuenta".

"Ahora solo tenemos que enviar este mensaje".

"Primero, iniciamos sesión en el servidor y luego enviamos nuestro mensaje. Solo dos líneas de código:"

Enviar un mensaje
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

"¡Qué interesante! Tendré que probarlo".

"Si se pregunta cómo enviar un mensaje con archivos adjuntos, puede leer sobre eso aquí ".

"Si también desea saber cómo recibir correo, por favor mire aquí ".

"Holy moly. ¡Qué enlaces tan útiles!"

"Sí, voy a hacer mi propio cliente de correo electrónico ahora. ¡Genial!"

"¡Gracias, Ellie!"