Criação de modelos personalizados de e-mail usando a API do Amazon SES e o AWS SDK for PHP versão 3 - AWS SDK for PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de modelos personalizados de e-mail usando a API do Amazon SES e o AWS SDK for PHP versão 3

O Amazon Simple Email Service (Amazon SES) permite o envio de e-mails personalizados para cada destinatário por meio de modelos. Os modelos incluem uma linha de assunto e as partes em texto e HTML do corpo de e-mail. É possível que as seções de assunto e corpo também contenham valores exclusivos e personalizados para cada destinatário.

Para obter mais informações, consulte Enviar e-mail personalizado usando o Amazon SES no Guia do desenvolvedor do Amazon Simple Email Service.

Os exemplos a seguir mostram como:

Todo o código de exemplo do AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Credenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito em Uso básico.

Para obter mais informações sobre o uso do Amazon SES, consulte o Guia do desenvolvedor do Amazon SES.

Criar um modelo de e-mail

Para criar um modelo para enviar mensagens de e-mail personalizadas, use a CreateTemplateoperação. O modelo pode ser utilizado por qualquer conta autorizada a enviar mensagens na região da AWS para a qual o modelo será adicionado.

nota

O Amazon SES não valida seu HTML, portanto, certifique-se de que HtmlPartseja válido antes de enviar um e-mail.

Importações

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

Código de exemplo

$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"; }

Obter um modelo de e-mail

Para visualizar o conteúdo de um modelo de e-mail existente, incluindo a linha de assunto, o corpo HTML e o texto sem formatação, use a GetTemplateoperação. Só TemplateName é necessário.

Importações

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

Código de exemplo

$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"; }

Listar todos os modelos de e-mail

Para recuperar uma lista de todos os modelos de e-mail associados ao seu Conta da AWS na AWS região atual, use a ListTemplatesoperação.

Importações

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

Código de exemplo

$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"; }

Atualizar um modelo de e-mail

Para alterar o conteúdo de um modelo de e-mail específico, incluindo a linha de assunto, o corpo HTML e o texto sem formatação, use a UpdateTemplateoperação.

Importações

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

Código de exemplo

$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"; }

Excluir um modelo de e-mail

Para remover um modelo de e-mail específico, use a DeleteTemplateoperação. Tudo que você precisa é TemplateName o.

Importações

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

Código de exemplo

$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 um e-mail com modelo

Para usar um modelo para enviar um e-mail aos destinatários, use a SendTemplatedEmailoperação.

Importações

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

Código de exemplo

$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"; }