Créer des messages MIME en utilisant C#

Lors de l’envoi d’un e-mail, vous pourriez avoir besoin d’envoyer du contenu multimédia tel que des images, de l’audio et de la vidéo. C’est là que les messages MIME (Multipurpose Internet Mail Extensions) entrent en jeu. Dans cet article, nous allons explorer comment créer des messages EML de manière programmatique en C#. À la fin de l’article, vous aurez une compréhension de comment créer des messages MIME, ajouter des images au contenu HTML de l’e-mail et enregistrer l’e-mail au format EML.

.NET API pour créer des messages MIME

Avant de créer votre premier message MIME, la première étape consiste à installer Aspose.Email pour .NET dans votre projet. C’est une bibliothèque puissante pour les développeurs C# qui fournit un ensemble complet d’outils pour travailler avec des messages e-mail, y compris la possibilité de créer des messages MIME de manière programmatique. La bibliothèque aide les développeurs à manipuler facilement divers aspects des messages MIME, tels que les pièces jointes, le corps, l’en-tête, l’encodage, et plus encore. Vous pouvez soit installer la bibliothèque via NuGet, soit télécharger sa DLL.

PM> Install-Package Aspose.Email

Créer un fichier EML à partir de zéro

Puisque votre API a été installée, il est temps de créer votre premier eml à partir de zéro. L’une des façons les plus simples de le faire est d’utiliser la classe MailMessage d’Aspose.Email. La classe MailMessage vous permet de créer un objet message e-mail avec diverses propriétés et méthodes qui vous permettent de définir l’expéditeur, les destinataires, le sujet, le corps, les pièces jointes, les en-têtes et d’autres détails de votre e-mail.

Les étapes suivantes et un extrait de code vous aideront à créer un EML à partir de zéro :

  • Créez un nouvel objet MailMessage en utilisant le constructeur par défaut.
  • Définissez les propriétés de l’objet MailMessage selon vos besoins.
  • Enregistrez l’objet MailMessage dans un fichier EML en utilisant la méthode Save.

La méthode Save de la classe MailMessage prend deux paramètres : le chemin du fichier et les options d’enregistrement. Les options d’enregistrement spécifient le format du fichier de sortie.

Ajouter une image au contenu HTML

Pour effectuer cette fonction, vous devez intégrer l’image dans le corps HTML. Vous pouvez utiliser la balise “img” pour cela.

L’extrait de code suivant montre comment ajouter une image au corps HTML d’un message.

  • Le corps HTML contient une balise d’image avec un attribut source défini sur cid:image1.
  • La classe AlternateView est utilisée pour obtenir une vue alternative du corps du message qui contient l’image intégrée.
  • La classe LinkedResource est utilisée pour représenter l’image intégrée et son ID de contenu est défini sur image1.
  • Enfin, la vue alternative est ajoutée à la collection des vues alternatives du message.

Créer un fichier EML à partir d’un fichier HTML

Une façon de le faire est de commencer par un fichier HTML et de le convertir en EML. Cela peut être utile si vous avez un HTML que vous souhaitez envoyer en tant que message e-mail. Pour cela, nous devons d’abord avoir le contenu HTML. Appelons ce fichier content.html. Voici un exemple :

<!DOCTYPE html>
<html>
<head>
	<title>Mon E-mail</title>
</head>
<body>
	<h1>Bonjour,</h1>
	<img src="logo.png" alt="Logo">
	<p>Ceci est mon premier e-mail créé à partir de HTML.</p>
</body>
</html>

De plus, vous devez préparer à l’avance toutes les images qui contiennent HTML et spécifier le chemin correct vers elles dans le fichier HTML.

Maintenant, nous pouvons facilement créer un MailMessage en définissant le corps HTML à partir de content.html.

  • Tout d’abord, créez un nouvel objet HtmlLoadOptions.
  • Définissez une chaîne qui contient le chemin vers les images dans PathToResources.
  • Définissez la propriété ShouldAddPlainTextView sur true si l’EML doit contenir une VueAlternative avec texte brut.
  • Créez un objet MailMessage en chargeant le fichier HTML et en passant l’objet HtmlLoadOptions en paramètre.
  • Définissez des propriétés supplémentaires du message.
  • Enfin, enregistrez l’objet MailMessage dans un fichier EML en utilisant la méthode Save.

Conseils pour améliorer l’affichage du message HTML dans Outlook

Pour voir votre message HTML dans Outlook, vous devez vous assurer que son code est compatible avec le moteur de rendu d’Outlook, qui est différent de la plupart des navigateurs web. Certains des problèmes courants qui peuvent affecter votre e-mail HTML dans Outlook sont :

  • Outlook ne prend pas en charge certaines de ses balises et propriétés CSS, telles que les images de fond, les flottants, les marges, le remplissage, etc. Vous devrez peut-être utiliser des styles en ligne, des tableaux ou des commentaires conditionnels pour obtenir la mise en page et le formatage souhaités.
  • Outlook peut ajouter des espaces ou des lignes supplémentaires entre les éléments ou supprimer certains éléments complètement. Vous devrez peut-être utiliser des espaces insécables, des espaces à largeur nulle ou des cellules de tableau vides pour empêcher cela.
  • Outlook peut changer l’encodage ou l’ensemble de caractères de votre fichier HTML, ce qui peut entraîner un affichage incorrect de certains caractères. Vous devrez peut-être spécifier l’encodage et l’ensemble de caractères dans celui-ci à l’aide d’une balise meta.

Conclusion

Dans cet article de blog, vous avez appris comment créer des messages MIME de manière programmatique en C# en utilisant Aspose.Email. Le tutoriel étape par étape et les exemples de code ont montré comment créer un fichier eml à partir de zéro et à partir d’un fichier HTML, ajouter une image au contenu HTML du message e-mail, et supporter tout ce qui précède avec des conseils utiles sur la façon d’améliorer l’affichage de votre message HTML dans Outlook.

  • Vous pouvez explorer davantage Aspose.Email pour .NET et l’essayer gratuitement.
  • Vous pouvez également consulter d’autres fonctionnalités et fonctionnalités d’Aspose.Email dans la documentation.
  • Vos questions sont les bienvenues sur notre forum.

Voir aussi