2011-02-15 11 views
7

Estoy buscando escribir una aplicación de consola C# que, en el proceso de ejecutar enviar correos electrónicos. Tengo los mensajes de correo electrónico de salir simplemente por hacer algo como:MailDefinition fuera de la aplicación ASP.Net

 MailMessage message = new MailMessage("[email protected]", "[email protected]", "Test message", "Test message content"); 
    message.IsBodyHtml = true; 
    message.Body = "<a href=\"http://www.daringfireball.net\">DaringFireball.net</a>"; 
    SmtpClient client = new SmtpClient("localhost"); // Your host here 

    try 
    { 
     client.Send(message); 
    } 
    catch (Exception e) 
    { 
     Console.WriteLine("There was an error trying to send the message: " + e.ToString()); 
    } 

yo estaba tratando de encontrar una manera de hacer esto con MailDefinition debido a que estos correos electrónicos pueden ser más largo, pero en el proceso de hacer que me encontré con un poco problema. El método CreateMailMessage requiere un System.Web.UI.Control que no tengo porque no soy una aplicación ASP.Net.

¿Alguien ha tenido este problema? ¿O encontraste una mejor manera de hacer esto?

Gracias

+1

¿Qué aporta 'MailDefinition' a la fiesta que' MailMessage' no puede hacer? –

+1

@JimMischel - El método 'CreateMailMessage' de 'MailDefinition' proporciona una manera ordenada de crear un mensaje de correo electrónico desde un archivo de texto. 'MailMessage' no tiene nada de eso. – Theophilus

Respuesta

0

no estoy familiarizado con MailDefinition ser superior de ninguna manera. De MSDN:.

"Utilice la clase MailDefinition a simplificar la creación predefinido correo electrónico mensajes para ser enviados por un mando Si que desea enviar correo electrónico no usar un control , ver el System.Net.Mail clase." (source here)

Pero supongamos que tiene buenas razones para preferir a MailDefinition regulares MailMessagea continuación, agregar la referencia de System.Web.dll a proyectar. No tiene que ejecutar en IIS para usar las clases en ese ensamblado.

1

Asegúrese de haber utilizado .Net Framework 4 correcto y no el cliente de .NET Framework 4 como el marco de destino. Agregue System.Web a las referencias de su proyecto.

A continuación, cree Mailmessage como: MailMessage msgHtml = message.CreateMailMessage (destinatarios, reemplazos, nuevo System.Web.UI.Control());

+0

Esta solución parece funcionar: http://stackoverflow.com/questions/7185105/wcf-service-fails-to-send-mail-through-maildefinition – russau

Cuestiones relacionadas