Envoi d’email en .NET

Envoi d’email en .NET

Premièrement, il faut commencer par importer la librairie System.Mail.Net

Imports System.Web.Mail

Nous allons maintenant créer un objet de type MailMessage.

Dim emailMsg As New MailMessage()

Une fois que cela est fait, nous allons remplir les propriétés principales (destinataire / emetteur / sujet du mail) de l’objet.

emailMsg.From = "emetteur@domaine.com"
emailMsg.To = "destinataire@domaine.com"
emailMsg.Subject = "sujet du mail"

Pour ce qui du contenu du mail, deux type de contenu sont possibles, texte ou html, nous allons pour l’exemple utiliser un format HTML.

emailMsg.BodyFormat = MailFormat.Html
emailMsg.Body = "<html><body><strong>Mon texte en gras et en HTML</strong></body></html>"

Pour aller un peu plus loin, nous allons créer un fichier html de modèle dans lequel nous allons placer des variables entre accolades.

<html>
<body>
Mon modèle<br />
Utilisateur: {utilisateur}
Site internet: {siteweb}
</body>
</html>

Maintenant nous allons lire ce fichier et remplacer les variables.

Dim contenuDuMail as String = IO.File.ReadAllText("modele.html")
contenuDuMail = contenuDuMail.Replace("{utilisateur}", "Ndrou")
contenuDuMail = contenuDuMail.Replace("{siteweb}", "http://www.ndrou.fr")

Nous avons maintenant notre modèle dans lequel nous avons juste remplacé les variables, il ne nous reste maintenant plus qu’à passer ce modèle rempli au contenu du mail.

emailMsg.Body = contenuDuMail

Si l’on veut rajouter une pièce jointe, il nous suffit de rajouter ce petit bout de code :

emailMsg.Attachments.Add(New MailAttachment("c:\ndrou.pdf"))

Tout est maintenant prêt pour l’envoi du mail, il ne nous reste plus qu’à configurer le serveur SMTP et envoyer le mail.

SmtpMail.SmtpServer = "smtp.mondomaine.fr"
'Si votre serveur sortant requiert une authentification, rajoutez les lignes ci dessous
emailMsg.Fields.Add( _
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1")
emailMsg.Fields.Add( _
"http://schemas.microsoft.com/cdo/configuration/sendusername", "utilisateur")
emailMsg.Fields.Add( _
"http://schemas.microsoft.com/cdo/configuration/sendpassword", "motdepasse")

'Envoi du mail
Try
SmtpMail.Send(emailMsg)
Catch ex As Exception
'Ici on récupère l'erreur pour l'afficher quelque part, par exemple admettons que l'on a un contrôle se nommant LblErreur
LblErreur.Text = ex.Message
End Try

Et voila, fin de ce premier article 🙂

Pas de commentaire

Écrire un commentaire