Envoyer un email avec ASP.NET
Envoyer un email avec ASP .NET
Au cours de ce tutoriel .net, nous allons voir comment envoyer un email avec ASP.Net.
Pour envoyer un email, il vous faut dans un premier temps ajouter le namespace System.Net.Mail utilisé par .Net pour l'envoi d'e-mail dans les applications. Il contient 3 principales classes permettant la gestion de l'envoi d'un email :
- MailMessage : permet de créer un e-mail et d'en définir les différentes propriétés
- MailAttachement : permet de créer des pièces jointes aux e-mails
- SmtpMail : permet la communication avec le serveur SMTP et l'expédition de l'e-mail
Configuration du protocole SMTP
Avant de vous montrer comment envoyer un email, nous allons dans un premier temps regarder comment configurer le protocole SMTP.
Si vous ne précisez rien en configuration SMTP, par defaut le framework .net utilisera l'adresse localhost et le port 25. Si vous souhaitez changer le paramétrage SMTP, il vous suffit d'ajouter les informations suivantes dans votre Web.Config dans la partie
<system.net> <mailSettings> <smtp from="test@foo.com"> <network host="smtpserver1" port="25" userName="username" password="secret" defaultCredentials="true" /> </smtp> </mailSettings> </system.net>
Code pour l'envoi d'un email
Avant de passer par la méthode permettant d'envoyer un email, il nous faut créer l'email. La création d'un email passe par l'utilisation de la classe MailMessage. Une fois un objet MailMessage créé, il est possible d'affecter plusieurs données :
- Pièces jointes
- Destinataires en Copies carbone invisibles (CCI)
- Destinataires en Copies carbone (CC)
- Content-Type
- Encodage pour les en-têtes personnalisés
- Corps du message
- Priority
- Destinataires
- Reply-To
- Expéditeur
- Objet
Pour ensuite envoyer l'email, il faut utiliser la classe SmtpClient pour envoyer l'objet MailMessage via le protocole SMTP.
Exemple de création d'un simple email :
MaiMessage email = new MailMessage() ;</br /> // Expéditeur</br /> email.From = new MailAddress("expediteur@tutoriel.fr");</br /> // Destinataire</br /> email.To.Add(new MailAddress("destinataire@tutoriel.fr"));</br /> // Destinataire en copie</br /> email.CC.Add(new MailAddress("destinataire@tutoriel.fr"));</br /> // Destinataire en copie cache</br /> email.Bcc.Add(new MailAddress("destinataire@tutoriel.fr"));</br /> // Sujet de l'email</br /> email.subject = "Email de démonstration" ;</br /> // Corps de l'email en texte</br /> email.Body = "Contenu de l'email au format texte" ;</br /> Il ne nous reste plus qu'à envoyer notre email SmtpClient smtp = new SmtpClient();</br /> smtp.Send(email);</br />
Ajouter une pièce jointe à un email
Il est parfois intéressant de mettre une pièce jointe à votre email, pour cela il suffit de créer un fichier et de l'attacher à notre email.
// Création du fichier à attacher à l'email</br /> Attachment pieceJointe = new Attachment(fichier, MediaTypeNames.Application.Octet);</br /> // Ajout des informations du fichier</br /> ContentDisposition disposition = pieceJointe.ContentDisposition;</br /> disposition.CreationDate = System.IO.File.GetCreationTime(fichier);</br /> disposition.ModificationDate = System.IO.File.GetLastWriteTime(fichier);</br /> disposition.ReadDate = System.IO.File.GetLastAccessTime(fichier);</br /> // Ajout du fichier à l'email</br /> email.Attachments.Add(data);</br />