Enviar un correo electrónico utilizando SMTP con C# - Amazon Simple Email Service

Enviar un correo electrónico utilizando SMTP con C#

El siguiente procedimiento muestra cómo utilizar Microsoft Visual Studio para crear una aplicación de consola de C# que envía un correo electrónico a través de Amazon SES. Los procedimientos de esta sección se aplican a Visual Studio 2017, pero el proceso de creación de aplicaciones de la consola de C es similar en todas las ediciones de Microsoft Visual Studio.

Antes de realizar el procedimiento siguiente, complete las tareas de configuración descritas en Antes de comenzar con Amazon SES y Enviar un correo electrónico a través de Amazon SES mediante SMTP.

importante

En este tutorial de introducción, envíese un correo electrónico a usted mismo para poder comprobar si lo recibe. Para seguir experimentando o realizar pruebas de carga, utilice el simulador de bandeja de correo de Amazon SES. Los correos electrónicos que envíe al simulador de bandeja de correo no se contabilizan en su cuota de envío ni en sus tasas de rebotes y reclamaciones. Para obtener más información, consulte Probar el envío de correo electrónico en Amazon SES.

Para enviar un correo electrónico utilizando la interfaz de SMTP de Amazon SES con C#

  1. Cree un proyecto de consola en Visual Studio realizando los pasos siguientes:

    1. Abra Microsoft Visual Studio.

    2. En el menú File, elija New, Project.

    3. En la ventana New Project, en el panel izquierdo, expanda Installed, expanda Templates y, a continuación, expanda Visual C#.

    4. En Visual C#, elija Windows Classic Desktop.

    5. En el menú de la parte superior de la ventana, elija .NET Framework 4.5, tal y como se muestra en la siguiente imagen.

      
                            El menú de selección de .NET Framework en la ventana New Project.
      nota

      Puede seleccionar una versión posterior de .NET Framework si es necesario.

    6. Elija Console App (.NET Framework).

    7. En el campo Name, escriba AmazonSESSample.

    8. Seleccione OK.

  2. En su proyecto de Visual Studio, reemplace todo el contenido de Program.cs por el siguiente código:

    using System; using System.Net; using System.Net.Mail; namespace AmazonSESSample { class Program { static void Main(string[] args) { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. String FROM = "sender@example.com"; String FROMNAME = "Sender Name"; // Replace recipient@example.com with a "To" address. If your account // is still in the sandbox, this address must be verified. String TO = "recipient@amazon.com"; // Replace smtp_username with your Amazon SES SMTP user name. String SMTP_USERNAME = "smtp_username"; // Replace smtp_password with your Amazon SES SMTP user name. String SMTP_PASSWORD = "smtp_password"; // (Optional) the name of a configuration set to use for this message. // If you comment out this line, you also need to remove or comment out // the "X-SES-CONFIGURATION-SET" header below. String CONFIGSET = "ConfigSet"; // If you're using Amazon SES in a region other than EE.UU. Oeste (Oregón), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate AWS Region. String HOST = "email-smtp.us-west-2.amazonaws.com"; // The port you will connect to on the Amazon SES SMTP endpoint. We // are choosing port 587 because we will use STARTTLS to encrypt // the connection. int PORT = 587; // The subject line of the email String SUBJECT = "Amazon SES test (SMTP interface accessed using C#)"; // The body of the email String BODY = "<h1>Amazon SES Test</h1>" + "<p>This email was sent through the " + "<a href='https://aws.amazon.com/ses'>Amazon SES</a> SMTP interface " + "using the .NET System.Net.Mail library.</p>"; // Create and build a new MailMessage object MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.From = new MailAddress(FROM, FROMNAME); message.To.Add(new MailAddress(TO)); message.Subject = SUBJECT; message.Body = BODY; // Comment or delete the next line if you are not using a configuration set message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET); using (var client = new System.Net.Mail.SmtpClient(HOST, PORT)) { // Pass SMTP credentials client.Credentials = new NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD); // Enable SSL encryption client.EnableSsl = true; // Try to send the message. Show status in console. try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } } } }
  3. En Program.cs, reemplace las siguientes direcciones de correo electrónico por sus propios valores:

    importante

    Las direcciones de correo electrónico distinguen entre mayúsculas y minúsculas. Asegúrese de que las direcciones sean exactamente las mismas que las que haya verificado.

    • SENDER@EXAMPLE.COM — Sustitúyalo por su dirección de correo electrónico de remitente ("From"). Debe verificar esta dirección antes de ejecutar este programa. Para obtener más información, consulte Verificación de identidades en Amazon SES.

    • RECIPIENT@EXAMPLE.COM — Sustitúyalo por su dirección de correo electrónico de destinatario ("To"). Si su cuenta está todavía en el entorno de pruebas, debe verificar esta dirección antes de utilizarla. Para obtener más información, consulte Salida del entorno de pruebas de Amazon SES.

  4. En Program.cs, reemplace las siguientes credenciales de SMTP por los valores que ha obtenido en Obtención de las credenciales de SMTP de Amazon SES:

    importante

    Sus credenciales de SMTP son distintas de las credenciales de AWS. Para obtener más información acerca de las credenciales, consulte Uso de credenciales con Amazon SES.

    • YOUR_SMTP_USERNAME — Sustitúyalo por su nombre de usuario de SMTP. Tenga en cuenta que la credencial de nombre de usuario de SMTP es una cadena de 20 letras y números, no un nombre inteligible.

    • YOUR_SMTP_PASSWORD — Sustitúyala por su contraseña de SMTP.

  5. (Opcional) si desea utilizar un punto de enlace de SMTP de Amazon SES en una región distinta de EE.UU. Oeste (Oregón), cambie el valor de la variable HOST por el punto de enlace que desea utilizar. Para ver una lista de direcciones URL de los puntos de enlace de SMTP para las regiones de AWS donde Amazon SES está disponible, consulte Amazon Simple Email Service (Amazon SES) en la AWS General Reference.

  6. (Opcional) Si desea utilizar un conjunto de configuración al enviar este correo electrónico, cambie el valor de la variable CONFIGSET por el nombre del conjunto de configuración. Para obtener más información acerca de los conjuntos de configuración, consulte Uso de conjuntos de configuración de Amazon SES.

  7. Guarde Program.cs.

  8. Para crear el proyecto, elija Build y, a continuación, elija Build Solution.

  9. Para ejecutar el programa, elija Debug y, a continuación, elija Start Debugging.

  10. Revise la salida. Si el correo electrónico se ha enviado correctamente, la consola muestra "Email sent!". De lo contrario, muestra un mensaje de error.

  11. Inicie sesión en el cliente de correo electrónico de la dirección del destinatario. Encontrará el mensaje que ha enviado.