Envoyer un document Word par e-mail c#

La présentation du corps des e-mails est l’un des facteurs importants pour engager les lecteurs. Par conséquent, les e-mails sont bien formatés à l’aide d’en-têtes, de sous-titres, de tableaux, d’images, etc. Cependant, la plupart des éditeurs d’e-mails intégrés ne fournissent pas d’options de formatage avancées. Afin de remédier à cette limitation, cet article explique comment composer vos e-mails en utilisant des documents Word comme corps d’e-mail en C#.

API C# pour importer un document Word dans un e-mail

Pour importer le contenu d’un document Word, nous utiliserons l’API Aspose.Words for .NET. Alors que, pour composer et envoyer l’e-mail, nous tirerons parti des capacités de Aspose.Email for .NET. Les deux API mentionnées ci-dessus peuvent être téléchargées en tant que DLL ou installées via NuGet.

Télécharger les DLL

Installer via NuGet

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

Envoyer un document Word dans le corps de l’e-mail à l’aide de C#

  1. Chargez le document Word à l’aide de la classe Aspose.Words.Document et enregistrez-le au format MHTML dans un objet MemoryStream.
// Charger un document Word à partir du disque
Document wordDocument = new Document("Word.docx");

// Enregistrer le document au format MHTML dans le flux de mémoire
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);
  1. Chargez le MHTML de l’objet MemoryStream dans l’objet Aspose.Email.MailMessage et définissez l’objet, vers et depuis les champs de l’e-mail.
// Mettre la position à 0
mhtmlStream.Position = 0;

// Créer un message électronique à partir de MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Définir les champs d'e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";
  1. Configurez le client SMTP à l’aide de la classe Aspose.Email.Clients.Smtp.SmtpClient et envoyez l’e-mail.
// Envoyer un e-mail via SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Code source

Voici le code source complet de l’importation d’un document MS Word en tant que corps d’e-mail à l’aide de C#.

// Charger un document Word à partir du disque
Document wordDocument = new Document("Word.docx");

// Enregistrer le document au format MHTML dans le flux de mémoire
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Mettre la position à 0
mhtmlStream.Position = 0;

// Créer un message électronique à partir de MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Définir les champs d'e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";

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

Obtenez une licence API gratuite

Vous pouvez essayer gratuitement l’API sans limitations d’évaluation. Obtenez une licence temporaire gratuite maintenant.

Conclusion

Dans cet article, vous avez appris à importer un document Word en tant que corps d’e-mail à l’aide de C#. De plus, l’exemple de code a montré comment envoyer le message électronique composé à l’aide d’un client SMTP. Vous pouvez en savoir plus sur les API utilisées dans l’article en visitant les documentations suivantes.

Voir également