API de Javamail - Enviar correo electrónico usando Java desde Gmail SMTP

API de Javamail - Enviar correo electrónico usando Java desde Gmail SMTP

API Javamail apoya el Javamail (Javax.correo) interfaz para enviar mensajes de correo electrónico. Proporciona clases para enviar correo electrónico desde el servidor SMTP remoto con autenticación como Gmail, SendGrid, etc.

En este artículo estamos utilizando la API de Javamail para enviar correos electrónicos utilizando el lenguaje de programación Java a través del servidor SMTP remoto. Este ejemplo de artículos está utilizando el servidor Gmail SMTP como servidor SMTP remoto para enviar correos electrónicos.

Paso 1: Configurar el entorno de Javamail

Primero necesitamos descargar el archivo JAR que contiene todas las clases en Javax.correo. Descargar jar (correo.frasco) Archivo desde el sitio web oficial de Oracle.

Ahora establezca la classpath en el entorno del sistema. Los usuarios de Windows se aseguran de haber configurado la variable de ruta para su instalación de Java.

Windows:

c:> establecer classpath = correo.frasco;.; 

Linux:

# Exportar java_home =/opt/jdk1.8.0_05/ # Export Path = $ Path: $ java_home/bin # exports classpath = $ java_home/jre/lib/ext: $ java_home/lib/herramientas.Jar: correo.frasco:. 

Paso 2: Escriba un programa Java para enviar correo electrónico

Crear un archivo java Enviar correo.Java con el siguiente contenido. En este script debe cambiar muchas configuraciones según su configuración. Este script se puede utilizar para enviar correo electrónico a través de la conexión TLS o SSL SMTP a través de servidores Gmail SMTP.

importar java.utilizar.Propiedades; Importar Javax.correo.Mensaje; Importar Javax.correo.MessioningException; Importar Javax.correo.Contraseña Autenticación; Importar Javax.correo.Sesión; Importar Javax.correo.Transporte; Importar Javax.correo.Internet.Dirección de Internet; Importar Javax.correo.Internet.Mimemessage; Importar Javax.correo.Internet.DirectionException; clase pública sendmail public static void main (string [] args) lanza la excepción String final smtp_host = "smtp.gmail.com "; cadena final smtp_username =" [email protected] "; String final Smtp_password =" _EMAIL_PASSWORD_ "; String final Smtp_connection =" TLS "; // usa 'TLS' o 'SSL' Conexión Final String ToEmail =" [email protected] "; String final fromemail =" [email protected] "; Propiedades props = new Properties (); Props.poner ("Correo.smtp.auth "," verdadero "); if (smtp_connection.igual ("tls")) accesorios.poner ("Correo.smtp.starttls.habilitar "," verdadero "); accesorios.poner ("Correo.smtp.puerto "," 587 "); else Props.poner ("Correo.smtp.fábrica de enchufes.puerto "," 465 "); accesorios.poner ("Correo.smtp.fábrica de enchufes.clase "," Javax.neto.ssl.Sslsocketfactory "); accesorios.poner ("Correo.smtp.puerto "," 465 "); Session Session = Session.GetInstance (accesorios, nuevo Javax.correo.Authenticator () PassionAuthentication protegido GetPasswordAuthentication () return New PasswordAuthentication (SMTP_USERNAME, SMTP_PASSWORD); ); intente Mensaje msg = new MimemEssage (sesión); machista.setFrom (nuevo InternetAddress (fromemail, "noreply")); machista.Adrecipiente (mensaje.Type de receptor.A, nuevo Internetaddress (Toemail ", Sr. Destinatario ")); msg.setSubject ("Bienvenido a Javamail API"); machista.setText ("Prueba de API de Javamail: envío de un ejemplo de correo electrónico a través del servidor SMTP remoto"); Transporte.enviar (msg); Sistema.afuera.println ("correo electrónico enviado correctamente ..."); catch (directionException e) tire new runtimeException (e); Catch (MessionGingException e) Throw New RuntimeException (e);
1234567891011121314151617181920212223252526272829303132333435363738394041424344444454444444955555354555557777importar java.utilizar.Propiedades; importar Javax.correo.Mensaje; import javax.correo.MessionGingException; importar Javax.correo.Contraseña Autenticación; importar Javax.correo.Sesión; importar Javax.correo.Transporte; importar Javax.correo.Internet.Internetaddress; importar Javax.correo.Internet.Mimemessage; importar Javax.correo.Internet.DirectionException; clase pública sendmail public static void main (string [] args) lanza la excepción String final smtp_host = "smtp.gmail.com "; cadena final smtp_username =" [email protected] "; String final Smtp_password =" _EMAIL_PASSWORD_ "; String final Smtp_connection =" TLS "; // usa 'TLS' o 'SSL' Conexión Final String ToEmail =" [email protected] "; String final fromemail =" [email protected] "; Propiedades props = new Properties (); Props.poner ("Correo.smtp.auth "," verdadero "); if (smtp_connection.igual ("tls")) accesorios.poner ("Correo.smtp.starttls.habilitar "," verdadero "); accesorios.poner ("Correo.smtp.puerto "," 587 "); else Props.poner ("Correo.smtp.fábrica de enchufes.puerto "," 465 "); accesorios.poner ("Correo.smtp.fábrica de enchufes.clase "," Javax.neto.ssl.Sslsocketfactory "); accesorios.poner ("Correo.smtp.puerto "," 465 "); Session Session = Session.GetInstance (accesorios, nuevo Javax.correo.Authenticator () PassionAuthentication protegido GetPasswordAuthentication () return New PasswordAuthentication (SMTP_USERNAME, SMTP_PASSWORD); ); intente Mensaje msg = new MimemEssage (sesión); machista.setFrom (nuevo InternetAddress (fromemail, "noreply")); machista.Adrecipiente (mensaje.Type de receptor.A, nuevo Internetaddress (Toemail ", Sr. Destinatario ")); msg.setSubject ("Bienvenido a Javamail API"); machista.setText ("Prueba de API de Javamail: envío de un ejemplo de correo electrónico a través del servidor SMTP remoto"); Transporte.enviar (msg); Sistema.afuera.println ("correo electrónico enviado correctamente..."); capt (direccionalException e) Throw New RuntimeException (E); Catch (MessionGingException e) Throw New RuntimeException (e);

Paso 3: Ejecutar el programa para enviar correo electrónico

Finalmente necesitamos ejecutar el programa Java para enviar correo electrónico. Como sabemos que esto sucede en dos pasos, primero para compilar el programa y el segundo para ejecutarlo.

# Javac Sendmail.java # java sendmail