2011-01-16 10 views

Respuesta

12
using (var client = new SmtpClient("somehost")) 
{ 
    client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; 
    client.PickupDirectoryLocation = @"C:\somedirectory"; 
    client.Send(message); 
} 

o utilizando el archivo de configuración:

<configuration> 
    <system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
</configuration> 
+1

Definitivamente recomendaría utilizar el enfoque del archivo de configuración sobre el del código. Es probable que durante el desarrollo desee escribir los correos electrónicos en el disco, pero en la implementación, querrá transformar sus configuraciones de correo para usar un servidor Smtp real. –

0

Supongo que está utilizando SmtpClient ya que es bastante estándar.

Escriba su propia implementación de SMTP (es muy fácil) que escribe los mensajes que se envían a través de ella al disco en lugar de enviarlos por correo electrónico.

Entonces

// mailMessage is MailMessage 
var client = new SmtpClient("address.of.your.smtp.implementation"); 
client.Send(mailMessage); 

Ahora su servidor interceptará esta solicitud de envío y escribir en el disco.

5

Puede configurar el SmtpClient para poner mensajes de correo electrónico en un directorio configurado en lugar de enviarlos. Para ello, es necesario establecer el DeliveryMethod a SpecifiedPickupDirectory y establecer el PickupDirectoryLocation:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
      <specifiedPickupDirectory pickupDirectoryLocation="C:\emails" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

Al enviar mensajes de correo electrónico utilizando el estándar SmtpClient, que ahora se salva en el directorio especificado en lugar de realmente ser enviado.

Cuestiones relacionadas