Advertisement
  1. Web Design
  2. Email
Webdesign

Comenzando con Simple Email Service (SES) de Amazon

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Ana Paulina Figueroa Vazquez (you can also view the original English article)

En este tutorial voy a hablar sobre Simple Email Service (SES) de Amazon y describiré algunas maneras en las que puedes utilizarlo. SES es un servicio de correo electrónico saliente, lo que significa que te permitirá enviar correos electrónicos a través de él.

Pero ¿por qué necesitarías un servicio de correo electrónico? bueno, con muchos proveedores de hospedaje, enviar muchos correos (tal vez tengas una gran cantidad de clientes que usan tu tienda web) puede ser problemático, ya que los servicios de hospedaje suelen tener limitaciones. La alternativa estándar es usar Gmail para enviar correos electrónicos, pero esto también tiene limitaciones. Es aquí en donde entra SES, ya que está diseñado exactamente para este propósito. SES permite que el envío de correos sea más confiable y, usando un poco de magia, también te ayuda a que tus mensajes electrónicos eviten las carpetas de correo no deseado.

Precios

Cuando te registras con Amazon puedes usar su plan gratuito durante doce meses. El plan gratuito te dará acceso a todos los servicios de Amazon, pero con limitaciones justas. Por ejemplo, SES está limitado a 2,000 mensajes al día si optas por su hospedaje EC2.

De lo contrario el costo es de $0.10 por cada mil mensajes. Ellos consideran un mensaje sencillo a un mensaje con un único destinatario. Así que si envías un correo electrónico a 1,000 direcciones de correo, esto te costaría 10 centavos de dólar.

Adjuntar archivos cuesta $0.12 por GB.

Opciones para el uso de SES

Actualmente hay dos formas de usar SES:

  • Protocolo simple de transferencia de correo (comúnmente conocido como SMTP, Simple Mail Transfer Protocol por sus siglas en inglés)
  • La API SDK

Estas funcionan de manera diferente; SMTP te permite vincularte directamente al servidor de correo electrónico, mientras que el método de la API te permite enviar correos a través del servicio AWS SES. En este tutorial cubriremos el uso del servidor SMTP a través de un complemento de WordPress, y después (para los más atrevidos de entre ustedes) revisaremos el uso de la API SDK.

Configuración rápida de una cuenta de SES

Antes de que hagamos cualquier cosa necesitaremos una cuenta con SES. Esto te mostrará cómo preparar tu cuenta y cómo enviar correos electrónicos usando la consola.

Regístrate con AWS

Antes de poder usar SES necesitas registrarte para obtener una cuenta con Amazon Web Services. Se requiere una tarjeta de crédito, incluso para el plan gratuito. Para registrarte debes ir a http://aws.amazon.com/ses, seguir las instrucciones en pantalla y completar algunos pasos para confirmar tu identidad.

Despues de registrarte tendrás acceso a todos los servicios de Amazon.

Verifica tu dirección de correo electrónico

Sin importar si estás usando el servicio en un entorno de pruebas o en producción, necesitarás verificar tu dirección "De". Puedes encontrar más información sobre cómo verificar direcciones de correo electrónico en la documentación de ayuda.

Solicita acceso de producción

Una vez que hayas recibido un correo electrónico, a continuación puedes solicitar acceso de producción. Esto te permitirá enviar mensajes a direcciones de correo no verificadas. El número de correos que puedes enviar al día será incrementado.

Nota: Es aconsejable practicar en el modo de pruebas antes de enviar correos electrónicos reales.

Usando el complemento de WordPress

Si bien Amazon actualmente no tiene un complemento oficial, existen paquetes de terceros que pueden llevar a cabo esta tarea. En este ejemplo usaremos un complemento llamado Amazon SES DKIM Mailer. Este es un complemento brillante, compatible con diferentes servicios de correo electrónico, incluyendo a SES de Amazon. Esto significa que si decides no quedarte con SES, no es necesario que cambies tu sitio sino simplemente los detalles de la conexión.

Este complemento también viene con soporte para DomainKeys Identified Mail (DKIM). DKIM se encarga de la reputación; al firmar tus correos electrónicos con este servicio puedes evitar que tus mensajes vayan directamente a la carpeta de correo basura.

Instalación

Tomado de la documentación de complementos en WordPress:

  1. Desactiva cualquier otro complemento de correo existente para evitar conflictos.
  2. Descomprime el archivo zip del complemento dentro del directorio /wp-content/plugins/ (o instálalo a través del instalador de complementos de WordPress integrado).
  3. Activa el complemento a través del menú del administrador Plugins (complementos) en WordPress.
  4. Haz clic en el vínculo Settings (Configuraciones) del complemento a un lado de su vínculo Deactivate (Desactivar, aún en la página de complementos), o haz clic en el vínculo Settings > Mail Settings (Configuraciones > Configuraciones de Correo) para ir a la página de configuraciones del administrador para el complemento. Personaliza las configuraciones de acuerdo a tu situación.

Como discutimos anteriormente, para usar SES de Amazon en un entorno real necesitarás solicitar el acceso de producción. Sin esto no podrás enviar correos electrónicos a direcciones que no estén bajo tu control.

DKIM

Para aprovechar DKIM necesitarás generar una clave pública y una privada, así como cargar tu clave privada a tu servidor (recomendamos que le asignes el nombre “.htkeyprivate” y que la coloques en la raíz del sitio web, además de establecer permisos para 400 o 440).

Existen muchos generadores de claves en línea para los usuarios de Windows que pueden ayudarte a hacer esto. En un servidor Linux o en una Mac puedes generar tus propias claves DKIM con una contraseña "change-me" usando el siguiente comando de la terminal:

Para DKIM configura un registro DNS TXT más o menos así:

Usa las pruebas integradas para verificar que tu blog pueda enviar correos electrónicos (firmados con DKIM) correctamente.

Configuración

Para asegurarte de que el complemento esté configurado para trabajar con AWS SES, existen algunas configuraciones que deben ser ajustadas (revisa la captura de pantalla que se muestra arriba).

  • Marca la casilla Send e-mail via Amazon SES? (¿Enviar correo electrónico a través de SES de Amazon?)
  • Agrega tu AWS Access Key (Clave de Acceso de AWS)
  • Agrega tu AWS Secret Key (Clave Secreta de AWS)
  • Asegúrate de que la dirección "From" ("De") sea la que validaste anteriormente.

Ahora puedes usar el servicio Send a Test Message (Enviar un mensaje de prueba) del complemento. Una vez que hayas recibido el correo electrónico con éxito estarás completamente listo para usarlo.

Tutorial de AWS SDK PHP

Para los usuarios más avanzados, en esta sección voy a mostrar cómo enviar un correo electrónico usando el SDK. Éste usará PHP, pero existen SDKs para otros lenguajes también.

Primero tendrás qué instalar el SDK. Existen algunas maneras de hacerlo para PHP; Composer, Phar, Zip y PEAR. Para este tutorial vamos a usar Composer, el cuál necesitas instalar primero. Una vez que tengas Composer instalado podrás acceder a él a través de la interfaz de línea de comandos (CLI, Command Line Interface por sus siglas en inglés).

Crea un archivo en la raíz de tu proyecto llamado "composer.json", ahí es donde colocarás tu configuración. Después agrega:

Si has usado el “composer.phar”, entonces puedes ejecutar php composer.phar install o en windows composer install. A continuación puedes agregar require '/path/to/sdk/vendor/autoload.php'; a tu proyecto.

Después de hacer lo anterior, ahora tienes acceso a todas las API de producción proporcionadas por AWS. Esto significa que ahora puedes enviar correos electrónicos. Así que, ¿qué necesitas?

Este es un ejemplo:

Vamos a recorrer ese código. Primero agregamos el uso del espacio de nombres para que el código se vea más limpio. A continuación agregamos el archivo autoload.php de composer.

Para poder enviar un archivo tenemos que crear un cliente. Esto se logra usando SES Client Factory. Esto puede requerir muchas configuraciones diferentes pero lo mínimo que necesitamos es la clave, la clave secreta y la región. Puedes encontrar la clave y la clave secreta en IAM Management Console. El valor Region es la región que tienes configurada para SES.

Con eso ahora tienes al cliente configurado y listo para trabajar. En seguida puedes usar al cliente para invocar al método sendEmail. Existen otros métodos que puedes invocar y puedes obtener más información sobre ellos en la documentación de ayuda.

El método sendEmail recibe un parámetro único, que es un arreglo. Este arreglo requiere cierto tipo de información almacenada en él; por ejemplo, se requiere la fuente y debe ser una dirección que hayas validado en tu cuenta para permitir el envío de correos electrónicos.

Una vez que hayas introducido los correos electrónicos que quieras usar y añadido el contenido de tu correo, puedes ejecutar la secuencia de comandos ¡y entonces habrás enviado tu primer correo electrónico!

Conclusión

Sea cual sea la ruta de implementación que sigas, ¡espero que este tutorial haya despertado tu interés y que te haya alentado a echar un vistazo a SES de Amazon! si te encuentras con algún problema al usar SES, siéntete en la libertad de pedir consejos en los comentarios.

Recursos adicionales

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.