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() ;
// Expéditeur
email.From = new MailAddress("expediteur@tutoriel.fr");
// Destinataire
email.To.Add(new MailAddress("destinataire@tutoriel.fr"));
// Destinataire en copie
email.CC.Add(new MailAddress("destinataire@tutoriel.fr"));
// Destinataire en copie cache
email.Bcc.Add(new MailAddress("destinataire@tutoriel.fr"));
// Sujet de l'email
email.subject = "Email de démonstration" ;
// Corps de l'email en texte
email.Body = "Contenu de l'email au format texte" ;

Il ne nous reste plus qu'à envoyer notre email

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

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
Attachment pieceJointe = new Attachment(fichier, MediaTypeNames.Application.Octet);
// Ajout des informations du fichier
ContentDisposition disposition = pieceJointe.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(fichier);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(fichier);
disposition.ReadDate = System.IO.File.GetLastAccessTime(fichier);
// Ajout du fichier à l'email
email.Attachments.Add(data);

Recevez par email nos prochains conseils

Oseox sur Facebook Notifications via Facebook Oseox sur Twitter Notre actu sur twitter

Une question ? Venez la poser sur notre forum développement web !

A propos de l'auteur

Sébastien Houzet

Sébastien Houzet est un passionné d'internet depuis 1998. Il peut vous accompagner sur les projets Web.