C# puede enviar correos electrónicos con .NET Framework con bastante facilidad, especialmente a través del protocolo SMTP. El protocolo SMTP es una forma común de enviar correos electrónicos.
Dado que los correos electrónicos SMTP requieren un servidor SMTP para ser enviados, probablemente lo más sencillo sea utilizar el servidor Gmail de Google. Por lo tanto, necesitarás una cuenta de Gmail, que es sencilla y gratuita de crear. Una vez que tengas una cuenta de Gmail enviar correos SMTP con C# es pan comido. El truco está en utilizar el namespace System.Net.Mail en lugar de System.Web.Mail. El segundo espacio de nombres fue sustituido por System.Net a partir de .NET Framework 2.0.
Pero, ¿qué hay que hacer para conectarse al servidor de Google? Necesitas algunos datos. La primera es que la dirección del servidor SMTP de Gmail es smtp.gmail.com. La segunda cosa que necesitas saber es que la aplicación C# debe conectarse a través del puerto 587. ¿Cómo sabemos esto? Google proporciona la información a los desarrolladores de forma gratuita. Otros servidores SMTP también proporcionan su propia dirección y puerto para conectarse.
Sin embargo, todavía hay una cosa más, la mayoría de los servidores SMTP necesitan autenticación para enviar sus correos electrónicos. Aquí es donde entra en juego la cuenta de Gmail. Utilizando la clase NetworkCredential .NET, especifica tu nombre de usuario y contraseña. Esto autenticará tu conexión con el servidor. Asegúrate de que tu nombre de usuario incluye @gmail.com.
Todo se maneja a través de la clase SmtpClient. La clase encapsula algunas funciones bastante potentes, incluyendo la adición de archivos adjuntos y el envío de correos electrónicos HTML. Los emails HTML son emails que están escritos con código HTML y se muestran como páginas web. Aunque depende del cliente de correo electrónico, la mayoría de los clientes pueden leer correos HTML sin problema, permitiendo a su aplicación C# enviar correos electrónicos con imágenes y texto formateado. La clase SmtpClient también permite a los desarrolladores añadir cabeceras, que pueden ajustar el comportamiento de los correos electrónicos. Sin embargo, tenga en cuenta que algunos servidores SMTP, como el de Google, ignorarán ciertas cabeceras y sólo utilizarán la información de su cuenta. Por ejemplo, GMail no tendrá en cuenta el campo "De", ya que automáticamente utilizará tu dirección de correo electrónico.
Por último, asegúrate de que SSL está activado en la aplicación C#. SSL es un protocolo de encriptación y es absolutamente necesario o el servidor de Gmail no aceptará tu conexión.
