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:
-
Crie um modelo de e-mail usando CreateTemplateo.
-
Liste todos os modelos de e-mail usando ListTemplates.
-
Recupere um modelo de e-mail usando o. GetTemplate
-
Atualize um modelo de e-mail usando UpdateTemplateo.
-
Remova um modelo de e-mail usando DeleteTemplateo.
-
Envie um modelo de e-mail usando SendTemplatedEmail.
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";
}