Använda ett Microsoft Word‑dokument som meddelandekropp och skicka e‑post

Denna artikel visar hur du använder ett Microsoft Word-dokument som e‑postens kropp och skickar det till mottagare. Exempeldokumentet är en försäljningsfaktura från Northwind‑databassamplen, exporterat till Microsoft Word‑format. Aspose.Email för Java hanterar nätverksprotokoll och Microsoft Outlook‑funktioner och kan inte hantera Microsoft Word‑dokument. För att övervinna detta använder exemplen i denna artikel Aspose.Words for Java för att läsa in Word‑dokumentet och konvertera det till MHTML‑format. Aspose.Email för Java använder MHTML‑dokumentet i e‑postkroppen.

Använda Microsoft Word‑dokument som e‑postkropp

Programmeringsexemplen nedan illustrerar hur du skickar ett Word‑dokument som e‑postkropp med Aspose.Words för Java och Aspose.Email för Java:

  1. Läs in ett Microsoft Word‑dokument med Aspose.Word för Java:s Document klass.
  2. Spara det i MHTML‑format.
  3. Läs in MHTML‑dokumentet med Aspose.Email för Java:s MailMessage klass för att sätta e‑postkroppen.
  4. Ställ in andra meddelandeegenskaper med olika MailMessage klassens egenskaper och metoder.
  5. Skicka e‑posten med Aspose.Email för Java:s SMTPClient klass.

Källdokumentet, en försäljningsfaktura exporterad till Microsoft Word från Microsoft Northwind‑exemplet, visas nedan.

todo:image_alt_text

När meddelandet har skickats och mottagits i Microsoft Outlook ser det ut som meddelandet nedan.

todo:image_alt_text

HTML‑formateringen och bilderna bevaras som i originaldokumentet när det visas i Outlook eller en webb‑e‑postklient som Gmail eller Hotmail. Nedan är en skärmbild av meddelandet när det öppnas i Gmail i en Chrome‑webbläsare.

todo:image_alt_text

Följande kodsnutt visar hur du använder ett Microsoft Word‑dokument som meddelandekropp och skickar ett e‑postmeddelande genom att använda SmtpClient klassinstans.

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