Invia documento word in email c#

La presentazione del corpo delle email è uno dei fattori importanti per coinvolgere i lettori. Pertanto, le e-mail sono ben formattate utilizzando intestazioni, sottotitoli, tabelle, immagini e così via. Tuttavia, la maggior parte degli editor di posta elettronica integrati non fornisce opzioni di formattazione avanzate. Per affrontare questa limitazione, questo articolo spiega come comporre le tue e-mail utilizzando documenti Word come corpo e-mail in C#.

API C# per importare documenti Word in e-mail

Per importare il contenuto da un documento Word, utilizzeremo l’API Aspose.Words for .NET. Considerando che, per comporre e inviare l’e-mail, sfrutteremo le capacità di Aspose.Email for .NET. Entrambe le API sopra menzionate possono essere scaricate come DLL o installate tramite NuGet.

Scarica DLL

Installa tramite NuGet

PM> Install-Package Aspose.Words
PM> Install-Package Aspose.Email

Invia documento Word nel corpo dell’e-mail utilizzando C#

  1. Carica il documento Word utilizzando la classe Aspose.Words.Document e salvalo come MHTML in un oggetto MemoryStream.
// Carica un documento di Word dal disco
Document wordDocument = new Document("Word.docx");

// Salva il documento come MHTML nel flusso di memoria
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);
  1. Caricare l’MHTML dall’oggetto MemoryStream all’oggetto Aspose.Email.MailMessage e impostare l’oggetto, da e verso i campi dell’e-mail.
// Imposta la posizione a 0
mhtmlStream.Position = 0;

// Crea un messaggio di posta elettronica da MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Imposta i campi e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";
  1. Configurare il client SMTP utilizzando la classe Aspose.Email.Clients.Smtp.SmtpClient e inviare l’e-mail.
// Invia e-mail tramite SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Codice sorgente

Di seguito è riportato il codice sorgente completo dell’importazione di documenti MS Word come corpo di posta elettronica utilizzando C#.

// Carica un documento di Word dal disco
Document wordDocument = new Document("Word.docx");

// Salva il documento come MHTML nel flusso di memoria
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Imposta la posizione a 0
mhtmlStream.Position = 0;

// Crea un messaggio di posta elettronica da MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Imposta i campi e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";

// Invia e-mail tramite SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Ottieni una licenza API gratuita

Puoi provare l’API senza limitazioni di valutazione gratuitamente. Ottieni una licenza temporanea gratuita ora.

Conclusione

In questo articolo, hai imparato come importare un documento Word come corpo di posta elettronica usando C#. Inoltre, l’esempio di codice ha mostrato come inviare il messaggio di posta elettronica composto utilizzando un client SMTP. Puoi esplorare di più sulle API utilizzate nell’articolo visitando la documentazione seguente.

Guarda anche