本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SES API 和 AWS SDK for PHP 版本 3 来创建自定义电子邮件模板
Amazon Simple Email Service (Amazon SES) 让您可以通过使用模板,向各个收件人发送个性化的电子邮件。模板包含一个主题行以及电子邮件正文的文本和 HTML 部分。主题和正文部分还可包含针对每个收件人进行个性化设置的唯一值。
有关更多信息,请参阅 Amazon Simple Email Service 开发人员指南中的使用 Amazon SES 来发送个性化电子邮件。
以下示例演示如何:
-
使用创建电子邮件模板CreateTemplate。
-
使用列出所有电子邮件模板ListTemplates。
-
使用检索电子邮件模板GetTemplate。
-
使用更新电子邮件模板UpdateTemplate。
-
使用删除电子邮件模板DeleteTemplate。
-
使用SendTemplatedEmail发送模板化电子邮件。
的所有示例代码都可以在此AWS SDK for PHP处找到 GitHub
凭证
运行示例代码之前,请配置您的 AWS 凭证,如 凭证 中所述。然后导入 AWS SDK for PHP,如 基本用法 中所述。
有关使用 Amazon SES 的更多信息,请参阅 Amazon SES 开发人员指南。
创建电子邮件模板
要创建用于发送个性化电子邮件的模板,请使用CreateTemplate操作。在添加模板到的 AWS 区域中,模板可由授权发送消息的任意账户使用。
注意
Amazon SES 不会验证您的 HTML,因此在发送电子邮件之前,HtmlPart请确保其有效性。
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }
获取电子邮件模板
要查看现有电子邮件模板的内容,包括主题行、HTML 正文和纯文本,请使用GetTemplate操作。仅 TemplateName 为必填项。
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }
列出所有电子邮件模板
要检索当前AWS区域AWS 账户中与您关联的所有电子邮件模板的列表,请使用ListTemplates操作。
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }
更新电子邮件模板
要更改特定电子邮件模板的内容,包括主题行、HTML 正文和纯文本,请使用UpdateTemplate操作。
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }
删除电子邮件模板
要删除特定的电子邮件模板,请使用DeleteTemplate操作。你所需要的只是 TemplateName.
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }
使用模板发送电子邮件
要使用模板向收件人发送电子邮件,请使用SendTemplatedEmail操作。
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
示例代码
$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"; }