Usare un documento Microsoft Word come corpo del messaggio e inviare email
Questo articolo mostra come utilizzare un documento Microsoft Word come corpo dell’e-mail e inviarlo ai destinatari. Il documento di esempio è una fattura di vendita dal campione di database Northwind, esportata in formato Microsoft Word. Aspose.Email per Java gestisce protocolli di rete e funzionalità di Microsoft Outlook e non può gestire documenti Microsoft Word. Per superare questo limite, i campioni in questo articolo utilizzano Aspose.Words for Java per caricare il documento Word e convertirlo in formato MHTML. Aspose.Email per Java usa il documento MHTML nel corpo dell’email.
Usare documenti Microsoft Word come corpo dell’email
Gli esempi di programmazione sotto illustrano come inviare un documento Word come corpo di un’email usando Aspose.Words per Java e Aspose.Email per Java:
- Carica un documento Microsoft Word usando Aspose.Word per Java Document classe.
- Salvalo in formato MHTML.
- Carica il documento MHTML usando Aspose.Email per Java MailMessage classe per impostare il corpo dell’email.
- Imposta altre proprietà del messaggio usando diversi MailMessage proprietà e metodi della classe.
- Invia l’email usando Aspose.Email per Java SMTPClient classe.
Il documento sorgente, una fattura di vendita esportata in Microsoft Word dal campione Microsoft Northwind, è mostrato qui sotto.

Quando il messaggio è stato inviato e ricevuto in Microsoft Outlook, appare come il messaggio qui sotto.

La formattazione HTML e le immagini sono preservate come nel documento sorgente originale quando visualizzate sia in Outlook sia in un client email web come Gmail o Hotmail. Di seguito è uno screenshot del messaggio aperto con Gmail in un browser Chrome.

Il seguente frammento di codice mostra come usare un documento Microsoft Word come corpo del messaggio e inviare un’email usando SmtpClient istanza di classe.
// 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);
}