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:
-
Crie um modelo de e-mail com o CreateTemplate.
-
Liste todos os modelos de e-mail com o ListTemplates.
-
Recupere um modelo de e-mail com o GetTemplate.
-
Atualize um modelo de e-mail com o UpdateTemplate.
-
Exclua um modelo de e-mail com o DeleteTemplate.
-
Envie um e-mail em modelo com o SendTemplatedEmail.
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"; }