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 para 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 correo electrónico personalizado mediante Amazon SES en la guía para desarrolladores de Amazon Simple Email Service.
Los siguientes ejemplos muestran cómo:
-
Crear una plantilla de correo electrónico mediante CreateTemplate.
-
Enumerar de todas las plantillas de correo electrónico mediante ListTemplates.
-
Recuperar una plantilla de correo electrónico mediante GetTemplate.
-
Actualizar una plantilla de correo electrónico mediante UpdateTemplate.
-
Quitar una plantilla de correo electrónico mediante DeleteTemplate.
-
Enviar un mensaje de correo electrónico con una plantilla mediante SendTemplatedEmail.
Todo el código de ejemplo de AWS SDK para PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.
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 operación CreateTemplate. 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 su HTML, por lo que debe asegurarse de que HtmlPart sea válido antes de enviar un mensaje de 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 en HTML y el texto sin formato, utilice la operación GetTemplate. Solo es obligatorio el campo 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->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 que estén asociadas a su Cuenta de AWS en la región de AWS actual, utilice la operación ListTemplates.
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 en HTML y el texto sin formato, utilice la operación UpdateTemplate.
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 operación DeleteTemplate. Solo se requiere 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 usar una plantilla para enviar un mensaje de correo electrónico a los destinatarios, utilice la operación SendTemplatedEmail.
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"; }