Envío de correo con Amazon SES y PHP

Envío de correo con Amazon SES y PHP

El envío de correo es un tema fundamental para cualquier proyecto de programación y que mejor qué hacer uso de las mejores opciones en el mercado, hoy veremos cómo integrar el envío de correo con Amazon SES con PHP mediante una pequeña guía de instalación y código de ejemplo.

Amazon se ha convertido en una herramienta impresionante en materia de desarrollo y tecnología.

Uno de sus productos precisamente nos ayudarán el día de hoy con el envío de correo.

Se trata de Amazon SES o Amazon Simple Email Service la herramienta que utilizaremos para enviar correos con nuestra plataforma web.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

La integración es fácil y la calidad del servicio es increíble, así como sus precios y condiciones.

Ya antes en este blog habíamos visto como subir un archivo a Amazon S3 el servicio de hospedaje de archivos de Amazon.

Veamos cómo instalar Amazon SES fácilmente para PHP vía Composer:

composer require aws/aws-sdk-php

Y claro cargamos el vendor:

require 'vendor/autoload.php';

Posteriormente en nuestro código necesitaremos usar los espacios de nombre de Amazon:

use Aws\Ses\SesClient;
use Aws\Exception\AwsException;

También necesitaremos crear un objeto de configuración para poder acceder a nuestra cuenta de Amazon:

$optionsS3 = [
    'region' => 'us-east-2',
    'version' => '2010-12-01',
    'credentials' => [
        'key' => '[TU KEY]',
        'secret' => '[TU SECRET KEY]'
    ]
];

Ya como último paso de configuración vamos a crear nuestra variable de conexión con el objeto de configuración previamente creado:

$SesClient = new Aws\Ses\SesClient($optionsS3);

Ahora si ya podemos comenzar a enviar correos, pero antes vamos a verificar una identidad con el siguiente código:

$result = $SesClient->VerifyEmailIdentity([
    'EmailAddress' => 'webmaster@tucorreo.com',
]);

Esto enviará un correo de confirmación a tu dirección de correo con la que enviarás desde Amazon.

Solo accede a tu correo y haz clic en el enlace para validar.

Ahora ya podrás enviar correos desde Amazon con esta dirección.

Para enviar un correo utiliza el siguiente código:

try {
    $result = $SesClient->sendEmail([
        'Destination' => [
            'ToAddresses' => ["destinatario@correo.com"],
        ],
        'ReplyToAddresses' => ["webmaster@tucorreo.com"],
        'Source' => "Remitente <webmaster@tucorreo.com>",
        'Message' => [

            'Body' => [
                'Html' => [
                    'Charset' => 'UTF-8',
                    'Data' => "[contenido HTML]",
                ],
            ],
            'Subject' => [
                'Charset' => 'UTF-8',
                'Data' => "Asunto de correo",
            ],
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {echo $e->getMessage();}

Y listo, ahora ya enviaremos correo mediante Amazon SES.

Recuerda que por defecto tu cuenta de Amazon SES estará en modo pruebas por lo que no podrás enviar correos a direcciones no validadas.

Tienes que solicitar el alta de producción a Amazon indicando que uso le darás al servicio, como manejas tu lista de correos, como manejas el rebote, etc.

También recuerda que puedes optimizar la entrega de correos agregando registros TXT de SPF al dominio o verificando el dominio con DKIM.

Con esto hemos logrado que nuestro sistema envíe correos mediante uno de los servicios más populares hoy en día de Amazon como lo hacen grandes empresas en Internet.

Si esta información sobre el envío de correo con Amazon SES y PHP te ha sido de utilidad no olvides compartirla en tus redes sociales favoritas y dejarnos un comentario en la sección de abajo si tienes cualquier duda con respecto a este tema, será un placer ayudarte.

¡Hasta luego!

Clic para valorar esta información
[Total: 2 Promedio: 5]