API JavaMail: envío de un correo electrónico HTML

A continuación se muestra un ejemplo para enviar un correo electrónico HTML desde su máquina. Aquí hemos utilizado el servidor JangoSMPT a través del cual se envían correos electrónicos a nuestra dirección de correo electrónico de destino. La configuración se explica en el capítulo Configuración del entorno .

Este ejemplo es muy similar al envío de correo electrónico simple, excepto que, aquí estamos usando el método setContent () para establecer contenido cuyo segundo argumento es "texto / html" para especificar que el contenido HTML está incluido en el mensaje. Con este ejemplo, puede enviar contenido HTML tan grande como desee.

Para enviar un correo electrónico con contenido HTML, los pasos a seguir son:

  • Obtener una sesión

  • Cree un objeto MimeMessage predeterminado y establezca From, To, Subject en el mensaje.

  • Configure el mensaje real usando el método setContent () como se muestra a continuación:

    message.setContent("<h1>This is actual message embedded in 
       HTML tags</h1>", "text/html");
  • Envíe el mensaje utilizando el objeto Transporte.

Crear clase Java

Crea un archivo de clase java SendHTMLEmail, cuyo contenido es el siguiente:

package com.tutorialspoint;

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 SendHTMLEmail {
   public static void main(String[] args) {
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";
      final String username = "manishaspatil";//change accordingly
      final String password = "******";//change accordingly

      // Assuming you are sending email through relay.jangosmtp.net
      String host = "relay.jangosmtp.net";

      Properties props = new Properties();
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.starttls.enable", "true");
      props.put("mail.smtp.host", host);
      props.put("mail.smtp.port", "25");

      // Get the Session object.
      Session session = Session.getInstance(props,
         new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
               return new PasswordAuthentication(username, password);
            }
	});

      try {
            // Create a default MimeMessage object.
            Message message = new MimeMessage(session);

   	   // Set From: header field of the header.
	   message.setFrom(new InternetAddress(from));

	   // Set To: header field of the header.
	   message.setRecipients(Message.RecipientType.TO,
              InternetAddress.parse(to));

	   // Set Subject: header field
	   message.setSubject("Testing Subject");

	   // Send the actual HTML message, as big as you like
	   message.setContent(
              "<h1>This is actual message embedded in HTML tags</h1>",
             "text/html");

	   // Send message
	   Transport.send(message);

	   System.out.println("Sent message successfully....");

      } catch (MessagingException e) {
	   e.printStackTrace();
	   throw new RuntimeException(e);
      }
   }
}

Como usamos el servidor SMTP proporcionado por el proveedor de host JangoSMTP, necesitamos autenticar el nombre de usuario y la contraseña. La clase javax.mail.PasswordAuthentication se utiliza para autenticar la contraseña.

Compilar y ejecutar

Ahora que nuestra clase está lista, compilemos la clase anterior. He guardado la clase SendHTMLEmail.java en el directorio:/home/manisha/JavaMailAPIExercise. Necesitaríamos los jars javax.mail.jar y activación.jar en la ruta de clases. Ejecute el siguiente comando para compilar la clase (ambos frascos se colocan en el directorio / home / manisha /) desde el símbolo del sistema:

javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendHTMLEmail.java

Ahora que la clase está compilada, ejecute el siguiente comando para ejecutar:

java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendHTMLEmail

Verificar salida

Debería ver el siguiente mensaje en la consola de comandos:

Sent message successfully....

Como envío un correo electrónico a mi dirección de Gmail a través de JangoSMTP, se recibiría el siguiente correo en la bandeja de entrada de mi cuenta de Gmail: