Comment puis-je faire en sorte que les courriers électroniques soient placés dans un dossier local pendant les tests?

StackOverflow https://stackoverflow.com/questions/177974

  •  05-07-2019
  •  | 
  •  

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?

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top