Autenticación SMTP que utiliza System.Web.mail
El espacio de nombres System.Web.Mail proporciona un API que le permite crear y enviar mensajes está utilizando el componente de mensaje CDOSYS (Objetos de datos de colaboración para Windows 2000). El mensaje de correo se entrega a través de un servidor SMTP.
Las más muchas instalaciones de servidor SMTP requieren autenticación. Es decir, motiva principal como esto es debido a personas que abusan servidor SMTP para Spaming (envía correo no deseado no solicitado).
Las clases de espacio de nombres System.Web.Mail no exponen que un API proporciona credenciales a un servidor SMPT. Puede lograr esto de cualquier modo definiendo valor de configuración para el Configuration object asociado al Message CDO. Las configuraciones están compuestas de un conjunto de campos (propiedades) que es simplemente pares de nombre. Es la mayoría de campos de configuración utilizados para mensajería http://schemas.microsoft.com/cdo/configuration/ espacio de nombres.
Puede establecer campos al mensaje agregándolos a la colección System.Web.Mail.MailMesage.Fields.
CDO Campa para configurar autenticación SMTP < BR. / > objeta que modifica campos en el objeto asociado Configuration </B> para configurar Mensaje. Residen mayorías de los nombres de campo http://schemas.microsoft.com/cdo/configuration/ espacio de nombres:
- smtpserver: Nombre de servidor SMTP.
- smtpserverport : ( configuración predeterminada : 25 ) puerto de servidor SMTP.
- sendusing: CdoSendUsingPort, valor 2 para enviar el mensaje utilizando la red.
- smtpauthenticate: Especifica el mecanismo utilizado al autenticarse a un servicio SMTP a través de la red. El valor posible es:
CdoAnonymous <B>- </B> valora 0. No autentique.
CdoBasic <B>- </B> valora 1. Utilice autenticación texto simple básico. Cuando utiliza esta opción, tiene que proporcionar el nombre de usuario y la contraseña a través de los campos sendusername y sendpassword.
CdoNTLM <B>- </B> valora 2. El current process security context se utiliza para autenticación con el servicio. - sendusername: Nombre de usuario
- sendpassword: Contraseña
Example
En el ejemplo siguiente muestra cómo enviar un mensaje de correo electrónico a través de un servidor SMTP que requiere servidor de autenticación a través de la red proporcionando credenciales en texto simple.
using System;
using System.Web.Mail;
namespace SMTPAuthentication
{
public class SMTPAuthenticationExample
{
public static void SendMail()
{
string smtpServer = "smtp.domain.com";
string userName = "johnDoe";
string password = "pass";
int cdoBasic = 1;
int cdoSendUsingPort = 2;
MailMessage msg = new MailMessage();
if (userName.Length > 0)
{
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", smtpServer);
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25) ;
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", cdoSendUsingPort) ;
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", cdoBasic);
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
}
msg.To = "someone@domain.com";
msg.From = "me@domain.com";
msg.Subject = "Subject";
msg.Body = "Message";
SmtpMail.SmtpServer = smtpServer;
SmtpMail.Send(msg);
}
}
}
Observa : <EM> de que las clases del espacio de nombres System.Web.Mail System.Web.Mail namespace se pueden utilizar <EM> de ASP.NET o cualquier aplicación. administrado Asegurarse de que su proyecto hace referencia al assembly. System.Web.dll System.Web.dll </EM>
Referencias :
Para más información acerca de visita de objeto de datos de colaboración:
http://msdn.microsoft.com/library/en-us/exchanchor/htms/msexchsvr_cdo_top.asp
Para más información acerca del System.Web.Mail, se visita el espacio de nombres:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmail.asp
Great site, will you publish regularly?