2011-03-10 21 views
5

Estoy tratando de usar el MailMessage class para construir mensajes de correo electrónico que se transmiten a un servidor SMTP para la entrega utilizando la clase SmtpClient. Mi correo electrónico está configurado en Outlook a través de un servidor de intercambio. Tuve las siguientes dudas con respecto a la implementación anterior:Diferencia entre el envío de un mensaje de correo a un servidor Exchange y el envío a un servidor SMTP

1) ¿Cuál es la diferencia entre un servidor de Exchange y un servidor SMTP?

2) En mi caso, mi perspectiva está configurada en un servidor de intercambio que usa mis credenciales. ¿Cómo encuentro la dirección SMTP para que pueda implementar la clase MailMessage?

3) ¿Alguna idea de enviar correos electrónicos a través de la aplicación basada en el servidor de intercambio si la técnica de implementación anterior no es factible?

Estoy usando Visual Studio 2008, framework 3.5 SP1, trabajando en la aplicación winforms con C# como idioma. Por favor, ayúdame a aclarar mis dudas.

EDITAR

estoy usando el siguiente código. No arroja ningún error, tampoco funciona. Estoy tratando de enviar un correo electrónico a mí mismo bu en vano

public static void CreateMessageWithAttachment(string server) 
    { 
     // Specify the file to be attached and sent. 
     // This example assumes that a file named Data.xls exists in the 
     // current working directory. 
     string file = "data.xls"; 
     // Create a message and set up the recipients. 
     MailMessage message = new MailMessage(
      "[email protected]", 
      "[email protected]", 
      "Quarterly data report.", 
      "See the attached spreadsheet."); 

     // Create the file attachment for this e-mail message. 
     Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); 
     // Add time stamp information for the file. 
     ContentDisposition disposition = data.ContentDisposition; 
     disposition.CreationDate = System.IO.File.GetCreationTime(file); 
     disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); 
     disposition.ReadDate = System.IO.File.GetLastAccessTime(file); 
     // Add the file attachment to this e-mail message. 
     message.Attachments.Add(data); 

     //Send the message. 
     SmtpClient client = new SmtpClient(server); 
     // Add credentials if the SMTP server requires them. 
     client.Credentials = CredentialCache.DefaultNetworkCredentials; 

    try { 
      client.Send(message); 
     } 
     catch (Exception ex) { 
      Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", 
       ex.ToString());    
     } 

     data.Dispose(); 
    } 
+0

@Phoenix: contoso.com es un ejemplo de dominio.Esos correos electrónicos no son reales. No es necesario que los mande. – BoltClock

Respuesta

5

1) ¿Cuál es la diferencia entre un servidor SMTP y Exchange Server?

El servidor de Exchange contiene más cosas.

2) En mi caso, mi perspectiva se configura en un servidor de intercambio usando mis credenciales. ¿Cómo encuentro la dirección SMTP para poder implementar la clase MailMessage?

Outlook -> Herramientas -> Cuentas -> Editar cuenta.

Es la misma dirección que el servidor de intercambio. El puerto 25 es el puerto SMTP estándar. El intercambio puede necesitar autenticación.

3) ¿Alguna idea de enviar correos electrónicos a través de la aplicación basada en el servidor de intercambio si la técnica de implementación anterior no es factible?

No puede usar MailMessage, también necesitará SmtpClient.

Ejemplo utilizando Exchange: Getting a sent MailMessage into the "Sent Folder"

+0

gracias por la respuesta rápida. He actualizado mi pregunta con el código que estoy usando para obtener la solución. Por favor, compruebe si puede encontrar algún error en mi código – reggie

+0

1. ¿Lo ha intentado sin el archivo adjunto? 2. ¿Estás seguro de que estás usando la dirección correcta del servidor? 3) ¿Has intentado manualmente especificar las credenciales? – jgauffin

+0

La respuesta a todas sus preguntas es sí. Sin embargo, la dirección de mi servidor de intercambio, por ejemplo, es abcd.abc.company.com, que no funciona. Así que en este momento lo he cambiado a abcd.abc.company.com:25, para especificar el número de puerto SMTP. pero eso tampoco funciona. – reggie

2

SMTP es un protocolo, un conjunto de reglas que rigen la comunicación entre dos sistemas. Este protocolo define las reglas para enviar correos.

Un servidor SMTP es un componente (principalmente software) que utiliza este protocolo para enviar correo.

MS Exchange usa SMTP para enviar correo, pero también gobierna usuarios y buzones de correo para los usuarios de un dominio.

Cuestiones relacionadas