Creación de plantillas de correo electrónico personalizadas mediante la API de Amazon SES y la versión 3 de AWS SDK for PHP - AWS SDK for PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de plantillas de correo electrónico personalizadas mediante la API de Amazon SES y la versión 3 de AWS SDK for PHP

Amazon Simple Email Service (Amazon SES) ermite enviar mensajes de correo electrónico personalizados para cada destinatario mediante el uso de plantilla Las plantillas incluyen una línea de asunto y las partes de texto y HTML del cuerpo del correo electrónico. Las secciones de asunto y cuerpo también pueden contener valores únicos personalizados para cada destinatario.

Para obtener más información, consulte Envío de email personalizado mediante Amazon SES en la guía para desarrolladores de Amazon Simple Email Service.

Los siguientes ejemplos muestran cómo:

  • Cree una plantilla de correo electrónico utilizando CreateTemplate.

  • Enumere todas las plantillas de correo electrónico que utilice ListTemplates.

  • Recupere una plantilla de correo electrónico utilizando GetTemplate.

  • Actualice una plantilla de correo electrónico utilizando UpdateTemplate.

  • Elimine una plantilla de correo electrónico mediante DeleteTemplate.

  • Envíe un correo electrónico con plantilla utilizando SendTemplatedEmail.

Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.

Para obtener más información sobre el uso de Amazon SES, consulte la Guía para desarrolladores de Amazon SES.

Creación de una plantilla de correo electrónico

Para crear una plantilla para enviar mensajes de correo electrónico personalizados, utilice la CreateTemplateoperación. La plantilla la puede utilizar cualquier cuenta autorizada a enviar mensajes en la región de AWS a la que la plantilla se añada.

nota

Amazon SES no valida tu código HTML, así que asegúrate de que HtmlPartsea válido antes de enviar un correo electrónico.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; $html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>' . '<p>This email was sent with <a href="https://aws.amazon.com/ses/">' . 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">' . 'AWS SDK for PHP</a>.</p>'; $subject = 'Amazon SES test (AWS SDK for PHP)'; $plaintext_body = 'This email was send with Amazon SES using the AWS SDK for PHP.'; try { $result = $SesClient->createTemplate([ 'Template' => [ 'HtmlPart' => $html_body, 'SubjectPart' => $subject, 'TemplateName' => $name, 'TextPart' => $plaintext_body, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Obtener una plantilla de correo electrónico

Para ver el contenido de una plantilla de correo electrónico existente, incluida la línea de asunto, el cuerpo HTML y el texto sin formato, utilice la GetTemplateoperación. Solo TemplateName es obligatorio.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; try { $result = $SesClient->getTemplate([ 'TemplateName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Enumerar todas las plantillas de correo electrónico

Para recuperar una lista de todas las plantillas de correo electrónico asociadas a su Cuenta de AWS AWS región actual, utilice la ListTemplatesoperación.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); try { $result = $SesClient->listTemplates([ 'MaxItems' => 10, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Actualización de una plantilla de correo electrónico

Para cambiar el contenido de una plantilla de correo electrónico específica, incluida la línea de asunto, el cuerpo HTML y el texto sin formato, utilice la UpdateTemplateoperación.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; $html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>' . '<p>This email was sent with <a href="https://aws.amazon.com/ses/">' . 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">' . 'AWS SDK for PHP</a>.</p>'; $subject = 'Amazon SES test (AWS SDK for PHP)'; $plaintext_body = 'This email was send with Amazon SES using the AWS SDK for PHP.'; try { $result = $SesClient->updateTemplate([ 'Template' => [ 'HtmlPart' => $html_body, 'SubjectPart' => $subject, 'TemplateName' => $name, 'TextPart' => $plaintext_body, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Eliminación de una plantilla de correo electrónico

Para eliminar una plantilla de correo electrónico específica, utilice la DeleteTemplateoperación. Todo lo que necesitas es el TemplateName.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; try { $result = $SesClient->deleteTemplate([ 'TemplateName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Enviar un mensaje de correo electrónico con una plantilla

Para utilizar una plantilla para enviar un correo electrónico a los destinatarios, utilice la SendTemplatedEmailoperación.

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de muestra

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $template_name = 'Template_Name'; $sender_email = 'email_address'; $recipient_emails = ['email_address']; try { $result = $SesClient->sendTemplatedEmail([ 'Destination' => [ 'ToAddresses' => $recipient_emails, ], 'ReplyToAddresses' => [$sender_email], 'Source' => $sender_email, 'Template' => $template_name, 'TemplateData' => '{ }' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }