2010-09-14 16 views
5

que tienen algo de código en mi asp.net que envía un correo electrónico:Cómo probar de correo electrónico está siendo enviado asp.net

public void SendEmail(string message) 
{ 
    var body = message; 

    var email = new MailMessage(ConfigurationManager.AppSettings["SenderEmail"], 
          ConfigurationManager.AppSettings["RecipientEmail"], 
          "Email Test", body); 

    var client = new SmtpClient(); 
    client.Host = Properties.Settings.Default.smtp; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.Credentials = CredentialCache.DefaultNetworkCredentials; 

    client.Send(email); 
} 

estoy queriendo saber cómo probar esto. Ya sea una prueba de unidad o una prueba de integración, realmente no me importa. NO estoy queriendo burlarme de esto. De hecho, quiero escribir una prueba de que se envía un correo electrónico con el mensaje correcto.

¿Alguien me puede ayudar con esto?

Respuesta

0

¿No puede colocar esto dentro de un módulo y llamarlo desde una prueba y configurar el destinatario para que diga que es la dirección de correo electrónico. si recibes el correo electrónico, diría que está funcionando.

2

¿Se envía un correo electrónico y ve si lo recibió?

Si no sabes cómo hacerlo, probablemente quieras volver a lo básico.

0

Para configurar una prueba automatizada, querrá tener una dirección de correo electrónico de prueba en un servidor que pueda consultar (dado que el tema es asp.net, asumiremos que es servidor de intercambio), luego consulte el buzón de correo re buscando usando:

opt 1: SDK de Exchange

opt 2: a través de las peticiones web (si el conector HTTP del servidor de Exchange está habilitada

opt 3: escribir su propio cliente sencillo POP3/cli/API

ref para opt 3: http://www.codeproject.com/KB/IP/popapp.aspx

12

Basta con crear una carpeta llamada "MailDrop" en su unidad C:/y utilizar lo siguiente en el archivo Web.config:

<mailSettings> 
    <smtp deliveryMethod='SpecifiedPickupDirectory'> 
     <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop" /> 
    </smtp> 
</mailSettings> 

Más información:

http://weblogs.asp.net/gunnarpeipman/archive/2010/05/27/asp-net-using-pickup-directory-for-outgoing-e-mails.aspx

+1

+1 Esto tiene la clara ventaja de que no necesita utilizar código diferente entre su aplicación de lanzamiento y la aplicación de prueba. – Brian

+0

Sé que esta es una publicación anterior, pero ¿alguien intentó usar esto con Selenium/SeleniumWebDriver? – khorvat

+1

Tuve que agregar una etiqueta ficticia "de" para que esto funcione, o de lo contrario se generaría una excepción diciendo que me faltaba el campo de. Ver [aquí] (http://www.singular.co.nz/2007/11/using-an-smtp-pickup-directory-delivery-method-for-asp-net-development/) para más detalles. – julealgon

0

Hay una manera muy simple de probar el correo electrónico resultante en los tests de aprobación. Debe separar el método en 2 métodos, uno que crea el correo electrónico y otro que envía el correo electrónico. Entonces puedes llamar.

EmailApprovals.Verify(mail) 

Hay un video que muestra el proceso aquí: http://www.youtube.com/watch?v=Sf16dPq2n3w

0

Puede utilizar SMTP4Dev

http://smtp4dev.codeplex.com/

Sólo tienes que instalar (es un pequeño programa que se ejecuta en la barra de tareas). No se requiere ninguna configuración desde el final de su programa de desarrollo ...

De manera predeterminada, creo que funcionará con su código sin modificaciones, ya que escucha en su host local.

Al enviar correos electrónicos, recibirá una notificación emergente de la barra de tareas ... ¡simplemente haga clic en la notificación para ver el contenido real del correo electrónico!

Cuestiones relacionadas