Použití dokumentu Microsoft Word jako těla zprávy a odeslání e‑mailu

Tento článek vám ukazuje, jak použít dokument Microsoft Word jako tělo e‑mailu a odeslat jej příjemcům. Vzorek dokumentu je faktura z ukázkové databáze Northwind, exportovaná do formátu Microsoft Word. Aspose.Email pro Java pracuje s síťovými protokoly a funkcemi Microsoft Outlook a nemůže zpracovávat dokumenty Microsoft Word. Pro překonání tohoto omezení používají ukázky v tomto článku Aspose.Words for Java pro načtení dokumentu Word a jeho konverzi do formátu MHTML. Aspose.Email pro Java používá dokument MHTML v těle e‑mailu.

Použití dokumentů Microsoft Word jako těla e‑mailu

Níže uvedené programové ukázky ilustrují, jak odeslat dokument Word jako tělo e‑mailu pomocí Aspose.Words pro Java a Aspose.Email pro Java:

  1. Načtěte dokument Microsoft Word pomocí Aspose.Word pro Java Document třída.
  2. Uložte jej ve formátu MHTML.
  3. Načtěte dokument MHTML pomocí Aspose.Email pro Java MailMessage třídy pro nastavení těla e‑mailu.
  4. Nastavte další vlastnosti zprávy pomocí různých MailMessage vlastnosti a metody třídy.
  5. Odešlete e‑mail pomocí Aspose.Email pro Java SMTPClient třída.

Zdrojový dokument, proforma faktura exportovaná do Microsoft Word z ukázky Microsoft Northwind, lze vidět níže.

todo:image_alt_text

Když je zpráva odeslána a přijata v Microsoft Outlook, vypadá jako následující zpráva.

todo:image_alt_text

Formátování HTML a obrázky jsou zachovány stejně jako v původním zdrojovém dokumentu při zobrazení v Outlooku nebo ve webovém e‑mailovém klientu jako Gmail nebo Hotmail. Níže je snímek obrazovky zprávy otevřené v Gmailu v prohlížeči Chrome.

todo:image_alt_text

Následující úryvek kódu ukazuje, jak použít dokument Microsoft Word jako tělo zprávy a odeslat e‑mail pomocí SmtpClient instance třídy.

// 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);
}