Envoyer un email grâce à un template en ASP.NET et C#

Dans un article précédent, j’expliquais comment envoyer un email en C#, un autre aspect intéressant de l’envoi de mail est de pouvoir utiliser un fichier texte comme template. Cette fonctionnalité est utilisée notamment par le contrôle _**CreateUserWizard avec le _MailDefinition : **

<MailDefinition BodyFileName="~/Skels/template.txt" Subject="Sujet du mail">
</MailDefinition>

Le code ci-dessus permet donc d’utiliser le contenu du fichier _template.txt _comme corps de notre email.

Pour reproduire ce comportenant en C#, il faut utiliser la classe **MailDefinition **comme exposé dans l’exemple suivant.

Namespaces :

using System;
using System.Net.Mail;
using System.Collections.Generic;
using System.Web.UI.WebControls;

Code C# :

MailDefinition def = new MailDefinition();
def.BodyFileName = "/template.txt";
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("var1", "Contenu de ma variable 1");
data.Add("var2", "Contenu de ma variable 2");

MailMessage email = def.CreateMailMessage("aymeric.lagier@gmail.com", data, this);
email.From = new MailAddress("no-reply@aymericlagier.com");
email.Subject = "Sujet de mon mail";

SmtpClient client = new SmtpClient();
client.Send(email);

Contenu de template.txt :

ma var 1 : var1
ma var 2 : var2

Résultat :

mailrecu

.NET  ASP.NET  C# 

Voir également