Tests de l’envoi de mails sur une application en développement

Tests de l’envoi de mails sur une application en développement

Lorsque l’on travaille sur une application/site web en développement, il est souvent assez difficile de tester l’envoi de mails, en particulier si l’email doit partir à des destinataires différents suivants telle ou telle conditions.

Heureusement, en .NET, il existe une astuce assez rapide à mettre en œuvre. Il s’agit uniquement de changer le mode de distribution SMTP sur SpecifiedPickupDirectory. Cette méthode va permettre, au lieu d’envoyer directement les emails, créer des fichier .EML dans un répertoire spécifié.

Dim mail As New System.Net.Mail.MailMessage("moi@ndrou.fr", "toi@ndrou.fr")
mail.Subject = "Ndrou is the best !"
mail.IsBodyHtml = True
mail.Body = "Mon corps..."

Dim smtp As New System.Net.Mail.SmtpClient("smtp.ndrou.fr", 25)
' Nous définissons une condition permettant de compiler cette partie
' uniquement en mode DEBUG
#If DEBUG Then
' Nous définissons la méthode d'envoi de mails
smtp.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory

' Si le dossier dans lequel nous allons stocker les mails n'existe pas,
' alors nous le créons
If Not IO.Directory.Exists("C:\debug-mail\") Then
IO.Directory.CreateDirectory("C:\debug-mail\")
End If

' Nous définissons le repertoire de sorties des mails
smtp.PickupDirectoryLocation = "C:\debug-mail\"
#End If
' Nous envoyons le mail
smtp.Send(mail)

 

Cette astuce est aussi possible directement dans votre fichier de configuration web.config ou app.config

<configuration>
   <system.net>
      <mailSettings>
         <smtp deliveryMethod="SpecifiedPickupDirectory">
            <specifiedPickupDirectory pickupDirectoryLocation="c:\debug-mail" />
         </smtp>
      </mailSettings>
   </system.net>
</configuration>

Et voila, adieu le spam accidentel de vos clients! 🙂

1Commentaire

Écrire un commentaire