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 />

 

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.