Come posso fare in modo che la posta elettronica vada in una cartella locale durante il test?
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?
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