Criação de modelos personalizados de e-mail usando a API do Amazon SES e o AWS SDK para PHP versão 3 - AWS SDK para 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 para 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:

O código de exemplo completo do AWS SDK para PHP está disponível aqui no GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Autenticando com o AWS uso da AWS SDK para PHP versão 3. Em seguida, importe o AWS SDK para PHP, conforme descrito em Instalar o AWS SDK para PHP versão 3.

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 e enviar mensagens de e-mail personalizadas, utilize a operação CreateTemplate. 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 HTML, portanto, certifique-se de que o HtmlPart é 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, utilize a operação GetTemplate. Somente o TemplateName é obrigató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 à Conta da AWS na região atual da AWS, utilize a operação ListTemplates.

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, utilize a operação UpdateTemplate.

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 excluir um modelo de e-mail específico, utilize a operação DeleteTemplate. Somente o 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->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 e enviar e-mails aos destinatários, utilize a operação SendTemplatedEmail.

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