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:
- Načtěte dokument Microsoft Word pomocí Aspose.Word pro Java Document třída.
- Uložte jej ve formátu MHTML.
- Načtěte dokument MHTML pomocí Aspose.Email pro Java MailMessage třídy pro nastavení těla e‑mailu.
- Nastavte další vlastnosti zprávy pomocí různých MailMessage vlastnosti a metody třídy.
- 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.

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

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.

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