Creación y configuración del contenido de correos electrónicos

Crear nuevo mensaje de correo electrónico

Aspose.Email para Java permite a los desarrolladores crear mensajes MIME (Multipurpose Internet Mail Extensions) desde cero. La clase principal para este propósito en la API de Aspose.Email para Java es la MailMessage clase. Este tema explica los pasos necesarios para crear mensajes de correo electrónico en formatos de archivo EML, MSG y MTH utilizando Aspose.Email para Java.

Para crear un mensaje de correo electrónico desde cero:

  1. Cree una instancia de la clase MailMessage.
  2. Establezca el asunto del mensaje usando el setSubject() método.
  3. Establezca el cuerpo del mensaje usando el setHtmlBody() método.
  4. Establezca el remitente del correo electrónico usando el setFrom() método.
  5. Establezca el destinatario en el campo TO utilizando el getTo().add() método.
  6. Establezca el destinatario en el campo CC utilizando el getCC().add() método.
  7. Llame al Save() método para guardar el archivo del mensaje en disco en formatos MSG, EML y MHT.  

Especificar múltiples destinatarios

El MailMessage representa un mensaje de correo electrónico. Las instancias de la clase MailMessage se utilizan para construir mensajes que se transmiten a un servidor SMTP usando el SmtpClient clase. Este tema demuestra cómo especificar más de una dirección de correo electrónico. Las direcciones de correo pueden especificarse usando la clase MailMessage. Las direcciones de correo usadas en la clase MailMessage son:

  • To - Las direcciones de los destinatarios pueden especificarse en el campo ‘To’. Los destinatarios del campo ‘To’ son la audiencia principal del mensaje. Puede haber más de una dirección de destinatario.
  • Cc - CC significa "copia de carbón" o "copia de cortesía", y le permite añadir destinatarios de correo que necesitan ver el correo pero que no se espera que actúen al respecto. Por ejemplo, gerentes o miembros de su equipo que deben estar al tanto de una conversación. Con Aspose.Email, las direcciones CC pueden especificarse en su código. De esta manera, los correos electrónicos automatizados, o todos los correos a una dirección específica, pueden copiarse al personal relevante.
  • Bcc - Bcc, copia de carbón oculta, le permite enviar un correo a un destinatario que está oculto para los demás destinatarios. Mientras que una CC aparece en la información del correo que los destinatarios principales ven, una Bcc no. Está destinada a notificaciones ocultas. 

Para especificar varias direcciones de correo electrónico en un mensaje, siga estos pasos:

  1. Cree una instancia de la clase MailMessage.
  2. Especifique el remitente (From) y múltiples direcciones To, Cc y Bcc usando la instancia de MailMessage.
  3. Cree una instancia de la clase SmtpClient y envíe el correo electrónico usando el método Send.

El siguiente ejemplo de código muestra cómo se pueden especificar múltiples direcciones To, CC y BCC.

Cambiar direcciones de correo a un nombre amigable

Los ejemplos de programación a continuación demuestran cómo cambiar direcciones de correo a nombres amigables en un mensaje. Un nombre amigable es un nombre más comprensible para humanos que la dirección de correo, por ejemplo John Smith en lugar de js346@domain.com. Al enviar un correo, podemos asociar un nombre amigable con una dirección de correo en el MailMessage constructor de clase.

Para cambiar direcciones de correo a nombres amigables en un mensaje de correo, siga estos pasos:

  • Cree una instancia de la clase MailMessage y especifique direcciones de correo en los campos To y From junto con nombres amigables.
  • Especifique las direcciones de correo Cc y Bcc junto con nombres amigables llamando al constructor de la clase MailMessage en la instancia de MailMessage.
  • Cree una instancia de la clase SmtpClient y envíe el correo electrónico usando el método Send.

El siguiente fragmento de código le muestra cómo mostrar nombres para direcciones de correo electrónico.

Establecer cuerpo del correo

El MailMessage clase representa un mensaje de correo electrónico. Las instancias de la clase MailMessage se utilizan para construir mensajes que se transmiten a un servidor SMTP para su entrega usando el SmtpClient clase. Un cuerpo de correo puede especificarse usando la clase MailMessage. Un cuerpo de correo electrónico puede especificarse usando setHtmlBody método en MailMessage.

Además de HtmlBody, Aspose.Email tiene otro método relacionado con el cuerpo del correo:

  • isBodyHtml: indica al usuario si el cuerpo es HTML o texto plano.

Este tema muestra cómo definir el texto del cuerpo HTML y establecer texto alternativo.

Establecer cuerpo HTML

HtmlBody se usa para especificar el contenido HTML del cuerpo de un mensaje. HtmlBody debe estar entre las etiquetas . El siguiente fragmento de código muestra cómo establecer el cuerpo HTML.

Establecer texto alternativo

Utilice el AlternateView clase para especificar copias de un mensaje de correo en diferentes formatos. Por ejemplo, si envía un mensaje en HTML, también podría proporcionar una versión de texto plano en caso de que algunos destinatarios usen lectores de correo que no pueden mostrar contenido HTML. Esta clase tiene dos propiedades, LinkedResources y BaseUri, que se usan para resolver URLs dentro del contenido del correo.

  • LinkedResources es una colección de objetos LinkedResources. Cuando se renderiza, las URLs dentro del contenido del correo se comparan primero con las URLs en el Content Link de cada objeto LinkedResources en la colección LinkedResources, y se resuelven.
  • BaseUri es usado por el lector de correo para resolver URLs relativas dentro del cuerpo, y también para resolver URLs relativas de Content Link, en la colección LinkedResources.

El siguiente fragmento de código le muestra cómo establecer texto alternativo.

Especificar codificación del cuerpo del correo

El tipo de contenido define el formato del contenido del correo: el conjunto de caracteres. Por ejemplo, algunos conjuntos de caracteres comunes provistos en java.nio.Charset son:

  • US-ASCII - ASCII de siete bits, también conocido como ISO646-US, o el bloque Latin Básico del conjunto de caracteres Unicode
  • ISO-8859-1 - Alfabeto latino ISO No. 1, también conocido como ISO-LATIN-1
  • UTF-8 - Formato de Transformación UCS de ocho bits
  • UTF-16BE - Formato de Transformación UCS de dieciséis bits, orden de bytes big-endian
  • UTF-16LE - Formato de Transformación UCS de dieciséis bits, orden de bytes little-endian
  • UTF-16 - Formato de Transformación UCS de dieciséis bits, orden de bytes identificado por una marca de orden de bytes opcional

Aspose.Email usa el BodyEncoding propiedad de la clase MailMessage para especificar la codificación del cuerpo del correo. Para codificar el cuerpo de un mensaje de correo, siga los pasos que se indican a continuación:

  1. Cree una instancia de la clase MailMessage.
  2. Especifique el remitente, receptor y el cuerpo HTML del correo en la instancia de MailMessage.
  3. Especifique el valor de la propiedad BodyEncoding.
  4. Cree una instancia de la SmtpClient clase y envíe el correo usando el método Send.

Características de MailMessage

El MailMessage clase representa el contenido de un mensaje de correo. Las instancias de la clase MailMessage se usan para construir un mensaje que se transmite a un servidor SMTP para su entrega usando el SmtpClient clase. Este artículo muestra cómo usar las funcionalidades utilitarias de la clase MailMessage para controlar las siguientes características del correo:

  • Fecha y hora - A través de la clase MailMessage setDate método con el que establecemos la fecha y hora de un correo.
  • Prioridad del mensaje - La MailPriority clase especifica los niveles de prioridad para el envío de un mensaje de correo. Puede ser baja, normal o alta. La prioridad influye en la velocidad de transmisión y la entrega.
  • Sensibilidad del mensaje - El MailSensitivity clase especifica cinco niveles de sensibilidad.
  • Notificación de entrega - Las notificaciones de entrega informan a los remitentes que el correo que enviaron ha sido entregado a la bandeja de entrada del destinatario.

Por defecto, la fecha es la fecha real en que se envió el mensaje, y la hora es la hora en que se envió, tal como la muestra Microsoft Outlook. Sin embargo, el tiempo real de entrega del correo lo agrega el propio servidor SMTP en el encabezado del mensaje. Por ejemplo, a continuación se muestra un encabezado de correo típico, donde el campo Date se estableció usando MailMessage.setDate.

El fragmento de código a continuación ilustra cómo puede usarse cada una de las características discutidas anteriormente.

Solicitar una confirmación de lectura

Los ejemplos de programación a continuación muestran cómo puede solicitar una confirmación de lectura. La clase MailMessage DeliveryNotificationOptions La propiedad de enumeración describe el opciones de notificación de entrega para un correo electrónico. Para solicitar una confirmación de lectura después de enviar un correo electrónico, siga estos pasos:

  1. Cree una instancia de la clase MailMessage.
  2. Especifique el remitente, receptor y el cuerpo HTML del correo en la instancia de MailMessage.
  3. Especifique las DeliveryNotificationOptions en otras instancias de MailMessage.
  4. Cree una instancia de la clase SmtpClient y envíe el correo usando el método Send.

Las solicitudes de confirmación de lectura pueden no ser siempre aceptadas porque:

  • Un cliente de correo puede no implementar esa funcionalidad.
  • El usuario final puede tener esa funcionalidad desactivada.
  • El usuario final puede elegir no enviar una.

El siguiente fragmento de código le muestra cómo solicitar una confirmación de lectura.

Establecer encabezados de correo electrónico

Los encabezados de correo electrónico representan un estándar de Internet y los RFC definen campos de encabezado que se incluyen en los mensajes de correo electrónico de Internet. Un encabezado de correo electrónico puede especificarse usando el MailMessage clase. Los tipos de encabezado comunes se definen en el HeaderType clase. Es una clase sellada que funciona como una enumeración normal.

Normalmente un encabezado de correo electrónico contiene estos campos:

  • To: Las direcciones de los destinatarios pueden especificarse en el campo To. Los destinatarios del campo To son la audiencia principal del mensaje. Puede haber más de una dirección de destinatario.
  • From: Este campo muestra la dirección de correo electrónico del remitente del mensaje.
  • Cc: Permite a los usuarios enviar un mensaje como "Copia de carbón" o "Copia de cortesía". Es decir, no se espera que el receptor responda o actúe. Normalmente, el personal de supervisión se notifica mediante CC.
  • Bcc: Significa Copia de carbón oculta (Blind Carbon Copy), se refiere a la práctica de enviar un mensaje a varios destinatarios de manera que lo que reciben no contiene la lista completa de destinatarios. Sirve para notificaciones ocultas.
  • ReplyTo: Este campo de encabezado indica a dónde quiere que lleguen las respuestas el remitente.
  • Subject: Título, encabezado, asunto. A menudo se usa como indicador de conversación para mensajes que responden o comentan a otros mensajes.
  • Date: Este encabezado especifica una fecha (y hora). Normalmente es la fecha en que el mensaje fue redactado y enviado.
  • XMailer: Información sobre el software cliente del remitente. Ejemplo: X-Mailer: Aspose.Email. XMailer es utilizado por los clientes de correo. Diferentes clientes de correo tendrán diferentes valores de XMailer. El valor de XMailer de MS Outlook es Microsoft Office Outlook, Build 11.0.5510. Es ignorado por el receptor o lector de correo.

Normalmente, un encabezado de correo electrónico se ve algo como esto:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

Para personalizar un encabezado de correo electrónico, siga estos pasos:

  • Cree una instancia de la MailMessage clase.
  • Especifique To, From, CC, Bcc, ReplyTo, Subject, Date y XMailer utilizando una instancia de la clase MailMessage.
  • Cree una instancia de la MimeHeader clase y especifique el encabezado secreto.
  • Agregue el encabezado secreto a la instancia de MailMessage.

En el código que se muestra a continuación, hemos personalizado un encabezado de correo electrónico.

El fragmento de código anterior produce un encabezado de correo electrónico en el siguiente formato. Esto se puede observar abriendo el archivo MsgHeaders.msg en Microsoft Outlook y luego viendo sus propiedades.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

Insertar encabezado en ubicación específica

El Agregar el método de HeadersCollection inserta el encabezado al final de la colección. Sin embargo, a veces puede ser necesario insertar un encabezado en una ubicación específica. En tal caso, el método Add no será útil. Para lograrlo, use el Insert método de HeadersCollection. Si la colección contiene encabezados con el mismo nombre, este encabezado se insertará antes que los otros encabezados con el mismo nombre. A continuación se muestra la firma del método Insert y un ejemplo de código para su uso.


 Method Signature

HeaderCollection.insert(String name, String value)

Agregar encabezados personalizados al correo electrónico

Los ejemplos de programación a continuación demuestran cómo especificar un encabezado personalizado en un mensaje de correo electrónico. Un encabezado de correo electrónico puede especificarse usando la clase MailMessage. Para especificar un encabezado personalizado en un mensaje de correo electrónico, siga estos pasos:

  1. Cree una instancia de la clase MailMessage.
  2. Especifique los valores de to, from y subject usando la instancia de MailMessage.
  3. Agregue el encabezado secreto a la instancia de MailMessage.
  4. Cree una instancia de la clase SmtpClient y envíe el correo electrónico usando el método Send.

El siguiente fragmento de código muestra cómo agregar encabezados personalizados al correo electrónico.

Firmar correos electrónicos con DKIM

Aspose.Email permite firmar correos electrónicos con DKIM (DomainKeys Identified Mail). Esto permite a una organización asumir la responsabilidad de un mensaje que está en tránsito (sobre DKIM). DKIM agrega una firma digital a los encabezados del mensaje de correo electrónico que puede ser validada por los destinatarios. La clave pública del remitente permite al receptor verificar que la firma coincide con el contenido del mensaje. La clase MailMessage dKIMSign el método se utiliza para establecer la información criptográfica y de firma para firmar el mensaje. El siguiente fragmento de código muestra cómo firmar correos electrónicos con DKIM.

Realizando combinación de correspondencia

Las combinaciones de correspondencia le ayudan a crear y enviar un lote de mensajes de correo electrónico similares. El núcleo de los correos es el mismo, pero el contenido puede personalizarse. Normalmente, los datos de contacto del destinatario (nombre, segundo nombre, empresa, etc.) se usan para personalizar el correo.

|todo:image_alt_text| | :- | |Figura: Ilustración de cómo funciona una combinación de correspondencia|

Para realizar una combinación de correspondencia con Aspose.Email, siga los siguientes pasos:

  1. Cree una función con la firma de nombre
  2. Cree una instancia de la MailMessage clase.
  3. Especifique el remitente, receptor, asunto y cuerpo.
  4. Cree una firma para el final del correo electrónico.
  5. Cree una instancia de la TemplateRoutine clase y pásela al MailMessage instancia.
  6. Obtenga la firma en el TemplateRoutine instancia.
  7. Cree una instancia de la DataTable clase.
  8. Agregue las columnas Receipt, FirstName y LastName como fuentes de datos en la clase DataTable
  9. Cree una instancia de la DataRow clase
  10. Especifique la dirección de recibo, nombres y apellidos en el objeto DataRow
  11. Cree una instancia de la MailMessageCollection clase
  12. Especifique el TemplateRoutine e instancias de DataTable en el MailMessageCollection instancia.
  13. Cree una instancia de la SmtpClient clase y especifique el servidor, puerto, nombre de usuario y contraseña
  14. Enviar correos electrónicos usando el SmtpClient método BulkSendAsync de la clase

El código a continuación envía un correo electrónico a una persona desde tres otras.