Usando un documento Microsoft Word como cuerpo del mensaje y enviando correo electrónico

Este artículo le muestra cómo usar un documento de Microsoft Word como cuerpo del correo electrónico y enviarlo a los destinatarios. El documento de ejemplo es una factura de ventas de la base de datos de ejemplo Northwind, exportada al formato Microsoft Word. Aspose.Email para Java se ocupa de los protocolos de red y las funciones de Microsoft Outlook y no puede manejar documentos de Microsoft Word. Para superar esto, los ejemplos en este artículo utilizan Aspose.Words for Java para cargar el documento Word y convertirlo a formato MHTML. Aspose.Email para Java usa el documento MHTML en el cuerpo del correo.

Usar documentos Microsoft Word como cuerpo del correo

Los ejemplos de programación a continuación ilustran cómo enviar un documento Word como cuerpo de correo usando Aspose.Words para Java y Aspose.Email para Java:

  1. Cargue un documento Microsoft Word usando Aspose.Word para Java Document clase.
  2. Guárdelo en formato MHTML.
  3. Cargue el documento MHTML usando Aspose.Email para Java MailMessage clase para establecer el cuerpo del correo.
  4. Establezca otras propiedades del mensaje usando diferentes MailMessage propiedades y métodos de la clase.
  5. Envíe el correo usando Aspose.Email para Java SMTPClient clase.

El documento fuente, una factura de ventas exportada a Microsoft Word desde el ejemplo Northwind de Microsoft, se muestra a continuación.

todo:image_alt_text

Cuando el mensaje se ha enviado y recibido en Microsoft Outlook, se ve como el mensaje a continuación.

todo:image_alt_text

El formato HTML y las imágenes se conservan como en el documento fuente original al visualizarse en Outlook o en un cliente de correo web como Gmail o Hotmail. A continuación se muestra una captura de pantalla del mensaje abierto con Gmail en un navegador Chrome.

todo:image_alt_text

El siguiente fragmento de código muestra cómo usar un documento Microsoft Word como cuerpo del mensaje y enviar un correo electrónico usando SmtpClient instancia de clase.

// The path to the File directory
String dataDir = "data/";

// Load a Word document from disk and save it to stream as MHTML
Document wordDocument = new Document(dataDir + "Test.doc");
ByteArrayOutputStream mhtmlStream = new ByteArrayOutputStream();
wordDocument.save(mhtmlStream, SaveFormat.MHTML);

// Load the MHTML in a MailMessage object
MailMessage message = MailMessage.load(new ByteArrayInputStream(mhtmlStream.toByteArray()), new MhtmlLoadOptions());
message.setSubject("Sending Invoice in Email");
message.setFrom(new MailAddress("sender@gmail.com"));
message.setTo(MailAddressCollection.to_MailAddressCollection("recipient@gmail.com"));

// Save the message in MSG format to disk
message.save(dataDir + "WordDocAsEmailBody_out.msg", SaveOptions.getDefaultMsgUnicode());

    // Send the email message
try (SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd")) {
    client.setSecurityOptions(SecurityOptions.SSLExplicit);
    client.send(message);
}