Come posso fare in modo che la posta elettronica vada in una cartella locale durante il test?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Come posso testare l'invio di e-mail dalla mia applicazione senza inondare la mia casella di posta?

Esiste un modo per dire a IIS / ASP.NET come recapitare la posta elettronica in una cartella locale per l'ispezione?

È stato utile?

Soluzione

Sì, c'è un modo.

  

Puoi modificare web.config in questo modo così   che quando si invia e-mail lo farà   invece essere creato come file .EML in   c: \ LocalDir

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

Puoi anche creare un'istanza del < > SmtpClient con le stesse impostazioni, se non si desidera / non è possibile modificare web.config. In C # sembra qualcosa del genere:

var smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
var emailPickupDirectory = HostingEnvironment.MapPath("~/EmailPickup");
if (!Directory.Exists(emailPickupDirectory)) { 
    Directory.CreateDirectory(emailPickupDirectory)
}
smtpClient.PickupDirectoryLocation = emailPickupDirectory;

Altri suggerimenti

Configurare le regole nel client di posta elettronica per spostare i messaggi in base all'indirizzo e-mail dell'oggetto / mittente?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top