Acabo de ver un artículo sobre el envío de correos electrónicos en .NET "Envío de correos electrónicos desde páginas asp.net" y vi que las clases bajo el espacio de nombres System.Web.Mail todavía se usan. Todos sabemos que en .NET 1.1, la mayoría de las clases en este espacio de nombres se usan para enviar correos electrónicos. El método estático Enviar de SmtpMail puede enviar correos electrónicos fácilmente, pero dado que esta clase llama a operaciones en Windows 2000 y versiones posteriores, el componente CDO del sistema. se utiliza para enviar correos electrónicos, no importa cuál sea el error, indicará que no se puede acceder al objeto CDO.Message u otras excepciones de CDO.Message. No podemos obtener información de excepción muy detallada, lo que trae grandes inconvenientes para nuestra depuración. Especialmente cuando necesitamos verificación Smtp, tenemos que agregar tres definiciones de encabezado de correo a MailMessage, lo cual es relativamente problemático. Bueno, bajo .NET 2.0, la función de envío de correos electrónicos ha sido diseñada muy bien. Usar las clases en el espacio System.Net.Mail nos permite enviar varios correos electrónicos de manera muy sencilla. Sin embargo, para ser compatible con la versión original, el espacio System.Web.Mail no se ha eliminado y las clases en este espacio también se han marcado como Obsoletas. Si utiliza clases .NET 2.0 para compilar, quedará obsoleto. se le solicitará que utilice la clase de espacio System.Web.Mail.
Ahora echemos un vistazo a lo que se debe hacer para enviar correos electrónicos. Aquí también encontré un artículo en el jardín sobre el envío de correos electrónicos de .NET 2.0, "Componente de envío de correo electrónico basado en el espacio de nombres System.Net.Mail de .NET 2.0". enviar y recibir correo. En este artículo, solo discutimos cómo enviarlo. Siento que realmente no usa el archivo de configuración. También necesitamos especificar cierta información de la cuenta Stmp para SmtpClient. De hecho, solo necesitamos configurar la cuenta Smtp que usaremos a través de web.config (o app.config):
<configuración>
<system.net>
<mailSettings>
<. smtp de =" [email protected] ">
<host de red="smtp.tom.com" contraseña=" " puerto="25" nombre de usuario="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
</system.net>
</configuration>
El sistema de configuración de .NET 2.0 es tan poderoso que podemos escribir la configuración anterior de manera muy simple sin consultar ninguna información. Como se indicó anteriormente, el atributo de es el buzón desde el que enviará el correo electrónico y el host es la dirección del servidor SMTP. No hace falta decir que se debe tener en cuenta la contraseña, el puerto y el nombre de usuario. En cuanto a las credenciales predeterminadas, debe prestar atención. Cuando no necesitemos que el servidor SMTP verifique al usuario emisor, configúrelo en falso; de lo contrario, configúrelo en verdadero. La mayoría de los servidores SMTP actuales requieren autenticación de usuario, por lo que generalmente configúrelo en verdadero y permita que use el nombre de usuario y la contraseña. Lo configuramos para verificar si es un usuario legítimo.
Después de escribir el archivo de configuración, el siguiente paso es cómo llamar al programa. Después de escribir lo siguiente para enviar el correo electrónico, se sentirá muy extraño. ¿Es realmente así de simple? Sí, es así de simple, echemos un vistazo:
MailMessage m_message = new MailMessage();
m_message.From =MailAddress(" [email protected] ");
"));
m_message.Subject = "Enviar correo usando .NET 2.0";
m_message.Body = "Muy simple";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
Ni siquiera tenemos uno extra línea de código, eso es Construir un objeto MailMessage, luego construir un SmtpClient y usarlo para enviar correos electrónicos directamente. En comparación con el método estático original, no hay más código. ¿Es posible que algunos amigos aquí quieran preguntar? ¿De dónde proviene la información de la cuenta SMTP? De hecho, puede depurarlo. En este momento, los atributos en el objeto m_smtpClient son los valores configurados en nuestro archivo de configuración anterior. Al reconfigurar un SmtpClient, el valor en la sección de configuración de system.net se leerá automáticamente. Si el usuario ha configurado la información smtp, se transferirá automáticamente al objeto SmtpClient actual y luego se usará para enviar correos electrónicos. Enviar correo electrónico en .NET 2.0 requiere mucho trabajo y es muy estable.
Resumen: aunque en .NET 2.0, es muy sencillo usar System.Web.Mail para enviar correos electrónicos y puede obtener información de excepción más detallada cuando ocurren errores, pero a veces los problemas pueden confundirlo. Lo más común que sucede es que cuando su máquina tiene un firewall antivirus instalado, es posible que no pueda enviar correos electrónicos, pero el mensaje le impide diagnosticar el problema. El efecto principal es que el correo electrónico es rechazado. Esta situación ocurre porque el firewall rechaza nuestro uso del puerto 25, lo que resulta en la imposibilidad de comunicarnos normalmente con el servidor SMTP. La solución es cerrarlo. Creo que hay muchos casos en Internet. Otro punto al que hay que prestar especial atención es que la máquina para enviar correos electrónicos debe estar conectada directamente a la red externa, ya que la empresa accede a Internet a través de un proxy, esto es particularmente impresionante. Hay una cosa más a tener en cuenta en el código anterior. El valor De del objeto MailMessage debe ser el mismo que el valor De en el archivo de configuración. Parece que no es necesario configurarlo aquí.
Bien, aquí está el código, espero que pueda serte útil http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html