Как я могу отправить электронную почту в локальную папку во время тестирования?

Как я могу проверить отправку электронной почты из моего приложения, не наводя свой почтовый ящик?

Есть ли способ сообщить IIS/ASP.NET, как отправлять электронную почту в локальную папку для проверки?

Ответы

Ответ 1

Да, есть способ.

Вы можете изменить файл web.config таким образом что при отправке вместо этого создается как .EML файл в C:\LocalDir.

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

Вы также можете создать экземпляр класса SmtpClient с этими же настройками, если вы не хотите/не можете измените файл web.config. В С#, который выглядит примерно так:

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

Ответ 2

Настроить правила в вашем почтовом клиенте для перемещения сообщений на основе адреса электронной почты субъекта/отправителя?