Como posso fazer e-mail ir para uma pasta local durante os testes?
Pergunta
Como posso testar o envio de e-mail do meu aplicativo sem inundar minha caixa de entrada?
Existe uma maneira de dizer IIS / ASP.NET como entregar e-mail para uma pasta local para a inspeção?
Solução
Sim, há um caminho.
Você pode alterar web.config assim tão que quando você envia e-mail que vai ao invés, ser criado como um arquivo .eml em c: \ localdir
.
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\LocalDir"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Você também pode criar uma instância da SmtpClient
classe com essas mesmas configurações, se você não quer / não pode mudar o web.config. Em C #, que é algo como isto:
var smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
var emailPickupDirectory = HostingEnvironment.MapPath("~/EmailPickup");
if (!Directory.Exists(emailPickupDirectory)) {
Directory.CreateDirectory(emailPickupDirectory)
}
smtpClient.PickupDirectoryLocation = emailPickupDirectory;
Outras dicas
Configurar regras em seu cliente de e-mail para mover as mensagens com base no endereço de e-mail do assunto / remetente?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow