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 :