Crear y enviar correos electrónicos de Outlook Java

Aspose.Email for Java es una poderosa API de procesamiento de correo electrónico que proporciona todas las funciones básicas y avanzadas para la administración de correo electrónico. Le permite crear mensajes de correo electrónico de Outlook, leer correos electrónicos existentes y convertir mensajes MSG, EML, PST, OST, MBOX y MHT a otros formatos desde sus aplicaciones Java. En este artículo, demostraré algunas funciones básicas pero importantes sobre cómo crear y enviar correos electrónicos de Outlook usando Java.

Voy a cubrir las siguientes características de creación y envío de correos electrónicos en este artículo:

API de correo electrónico de Java - Instalación

Aspose.Email for Java puede descargarse desde la sección Descargas o instalarse usando las siguientes configuraciones de Maven.

Repositorio:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependencia:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>20.3</version>
    <classifier>jdk16</classifier>
</dependency>

Crear mensajes de correo electrónico de Outlook usando Java

Aspose.Email for Java le permite crear mensajes de correo electrónico y guardarlos en el formato de correo electrónico que desee, incluidos EML, EMLX, MSG y MHTML. Los siguientes son los pasos para crear un mensaje de correo electrónico y guardarlo como un archivo.

  • Cree una instancia de la clase MailMessage.
  • Configure las propiedades del mensaje, como Asunto, Cuerpo, Para, CC, etc.
  • Agregue archivos adjuntos si es necesario.
  • Guarde el mensaje de correo electrónico en el formato que desee utilizando el método MailMessage.save().

El siguiente ejemplo de código muestra cómo crear un mensaje de correo electrónico de Outlook mediante Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setBody("This is the body of the email.");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Agregar a destinatarios y destinatarios de CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Agregar archivos adjuntos
message.getAttachments().addItem(new Attachment("word.docx"));

// Guarde el mensaje en formatos EML, EMLX, MSG y MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml());
message.save("EmailMessage.emlx", SaveOptions.createSaveOptions(MailMessageSaveType.getEmlxFormat()));
message.save("EmailMessage.msg", SaveOptions.getDefaultMsgUnicode());
message.save("EmailMessage.mhtml", SaveOptions.getDefaultMhtml());

Crear un correo electrónico con cuerpo HTML usando Java

En el ejemplo anterior, simplemente creamos un correo electrónico de texto sin formato y lo guardamos como un archivo de correo electrónico. Sin embargo, la mayoría de los correos electrónicos de hoy en día se crean con cuerpo HTML para organizar y presentar bien el contenido del correo electrónico. En este caso, las etiquetas HTML se utilizan para especificar el diseño del correo electrónico. Veamos cómo crear un correo electrónico con un cuerpo HTML utilizando Aspose.Email for Java.

  • Utilice la clase MailMessage para crear un nuevo mensaje de correo electrónico.
  • Configure Asunto, Para, CC y otras propiedades.
  • Configure el cuerpo del correo electrónico usando el método MailMessage.setHtmlBody(string).
  • Guarde el mensaje de correo electrónico usando el método MailMessage.save().

El siguiente ejemplo de código muestra cómo crear un correo electrónico con un cuerpo HTML utilizando Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Agregar a destinatarios y destinatarios de CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Guarde el mensaje en formatos EML, EMLX, MSG y MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Crear un correo electrónico con una codificación particular usando Java

Aspose.Email for Java también le permite establecer la codificación de texto deseada para los mensajes de correo electrónico. El estándar de codificación se usa para decirle a la aplicación de correo electrónico o al navegador cómo interpretar los caracteres en el cuerpo del correo electrónico. Los siguientes son los pasos para crear un correo electrónico con un estándar de codificación particular.

El siguiente ejemplo de código muestra cómo crear un correo electrónico con un estándar de codificación particular utilizando Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Especificar codificación 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Agregar a destinatarios y destinatarios de CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Guarde el mensaje en formatos EML, EMLX, MSG y MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Enviar correos electrónicos de Outlook usando Java

Una vez que haya creado un correo electrónico, puede enviarlo a sus destinatarios utilizando el Protocolo simple de transferencia de correo (SMTP). Los siguientes son los pasos para enviar un mensaje de correo electrónico utilizando Aspose.Email for Java.

  • Cree un nuevo mensaje de correo electrónico o cargue uno existente usando la clase MailMessage.
  • Cree una instancia de la clase SmtpClient y establezca su host, nombre de usuario, contraseña y puerto.
  • Envíe un correo electrónico utilizando el método SmtpClient.send().

El siguiente ejemplo de código muestra cómo enviar un correo electrónico a través del cliente SMTP en Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Especificar codificación 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Agregar a destinatarios y destinatarios de CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Crear una instancia de la clase SmtpClient
SmtpClient client = new SmtpClient();

// Especifique su servidor host de correo, nombre de usuario, contraseña, puerto
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enviará este mensaje
	client.send(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Enviar correos electrónicos de forma asíncrona usando Java

Aspose.Email for Java también le permite enviar correos electrónicos de forma asíncrona. Para ello, puede utilizar el método SmtpClient.beginSend(). El siguiente ejemplo de código muestra cómo enviar correos electrónicos de forma asincrónica mediante Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Especificar codificación 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Agregar a destinatarios y destinatarios de CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Crear una instancia de la clase SmtpClient
SmtpClient client = new SmtpClient();

// Especifique su servidor host de correo, nombre de usuario, contraseña, puerto
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend enviará este mensaje
	client.beginSend(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Envíe correos electrónicos con un recibo de lectura usando Java

También puede agregar una solicitud de confirmación de lectura a los mensajes de correo electrónico. Esta característica le permite recibir una notificación después de que se haya recibido el correo electrónico. Los siguientes son los pasos para crear y enviar un mensaje de correo electrónico que contenga una solicitud de confirmación de lectura.

  • Cree un nuevo mensaje de correo electrónico usando la clase MailMessage.
  • Configure la opción de notificación de entrega usando el método MailMessage.setDeliveryNotificationOptions().
  • Agregue información de recibo en los encabezados de correo electrónico.
  • Utilice la clase SmtpClient para enviar el correo electrónico.

El siguiente ejemplo de código muestra cómo enviar un correo electrónico que contiene una confirmación de lectura mediante Java.

MailMessage message = new MailMessage();

// Establezca el asunto del mensaje, el cuerpo y la información del remitente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Establecer opciones de notificación
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Agregar a destinatarios 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Crear una instancia de la clase SmtpClient
SmtpClient client = new SmtpClient();

// Especifique su servidor host de correo, nombre de usuario, contraseña, puerto
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enviará este mensaje
	client.send(message);
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Enviar correos electrónicos masivos usando Java

Puede darse el caso de que necesite enviar una gran cantidad de correos electrónicos diferentes. En ese caso, simplemente puede agregar todos los mensajes de correo electrónico a un objeto MailMessageCollection y pasarlo al cliente SMTP para su envío. El siguiente ejemplo de código muestra cómo enviar una gran cantidad de correos electrónicos mediante Java.

// Cree instancias de la clase MailMessage y especifique Para, De, Asunto y Mensaje
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Crear una instancia de MailMessageCollection y agregarle mensajes de correo electrónico
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Cree SmtpClient y especifique el servidor, el puerto, el nombre de usuario y la contraseña
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Enviar mensajes
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

demostraciones en vivo

Conclusión

En esta publicación, le mostré cómo crear mensajes de correo electrónico de Outlook y guardarlos como formatos EML, MSG y MTH usando Java. Además, también se analizan diferentes formas de enviar correos electrónicos en Java utilizando el cliente STMP. Puede obtener más información sobre la Biblioteca de correo electrónico de Java de Aspose utilizando la documentación.

Ver también