Comment puis-je faire en sorte que les courriers électroniques soient placés dans un dossier local pendant les tests?
Question
Comment puis-je tester l'envoi d'e-mails depuis mon application sans saturer ma boîte de réception?
Existe-t-il un moyen d'indiquer à IIS / ASP.NET comment remettre un courrier électronique dans un dossier local pour inspection?
La solution
Oui, il y a un moyen.
Vous pouvez modifier web.config comme ceci pour que lorsque vous envoyez un email, il sera être créé à la place en tant que fichier .EML dans c: \ LocalDir.
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\LocalDir"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Vous pouvez également créer une instance du SmtpClient
avec les mêmes paramètres, si vous ne voulez pas / ne pouvez pas changer le fichier web.config. En C #, cela ressemble à quelque chose comme ceci:
var smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
var emailPickupDirectory = HostingEnvironment.MapPath("~/EmailPickup");
if (!Directory.Exists(emailPickupDirectory)) {
Directory.CreateDirectory(emailPickupDirectory)
}
smtpClient.PickupDirectoryLocation = emailPickupDirectory;
Autres conseils
Configurez des règles dans votre client de messagerie pour déplacer les messages en fonction de l'adresse électronique du sujet / de l'expéditeur?