本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SES API 和 AWS SDK for PHP 版本 3 创建自定义电子邮件模板
Amazon Simple Email Service (Amazon SES) 让您可以通过使用电子邮件模板,向各个收件人发送个性化的电子邮件。模板包含一个主题行以及电子邮件正文的文本和
HTML 部分。主题和正文部分还可包含针对每个收件人进行个性化设置的唯一值。
有关更多信息,请参阅 Amazon SES Developer Guide中的使用 Amazon SES 发送个性化电子邮件。
以下示例演示如何:
版本 3 的所有示例代码在 AWS SDK for PHP 上的此处提供。GitHub
Credentials
有关使用 Amazon SES 的更多信息,请参阅 Amazon SES 开发人员指南。
创建电子邮件模板
要创建模板以发送个性化电子邮件,请使用 CreateTemplate 操作。在该模板所添加到的 AWS 区域中,模板可由授权发送电子邮件的任意账户使用。
注意
Amazon SES 不会验证您的 HTML,因此请先确保 HtmlPart 有效,然后再发送电子邮件。
导入
require 'vendor/autoload.php';
use Aws\Ses\SesClient;
use Aws\Exception\AwsException;
示例代码
$SesClient = new Aws\Ses\SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-east-2'
]);
$name = 'Template_Name';
$html_body = '
AWS Amazon Simple Email Service Test Email
' .'
This email was sent with ' .
'Amazon SES using the ' .
'AWS SDK for PHP.
';$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\Ses\SesClient;
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\Ses\SesClient;
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\Ses\SesClient;
use Aws\Exception\AwsException;
示例代码
$SesClient = new Aws\Ses\SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-east-2'
]);
$name = 'Template_Name';
$html_body = '
AWS Amazon Simple Email Service Test Email
' .'
This email was sent with ' .
'Amazon SES using the ' .
'AWS SDK for PHP.
';$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\Ses\SesClient;
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\Ses\SesClient;
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' => $verified_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";
}