本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SES API 和Amazon SDK for PHP版本 3
借助 Amazon Simple Email Service (Amazon SES),您可以通过使用模板,向各个收件人发送个性化的电子邮件。模板包含一个主题行以及电子邮件正文的文本和 HTML 部分。主题和正文部分还可包含针对每个收件人进行个性化设置的唯一值。
有关更多信息,请参阅 。使用 Amazon SES 发送个性化电子邮件请参阅 Amazon Simple Email Service 开发人员指南中。
以下示例演示如何:
-
使用 CreateTemplate 创建电子邮件模板。
-
使用 ListTemplates 列出所有电子邮件模板。
-
使用 CreateTemplate 检索电子邮件模板。
-
使用 UpdateTemplate 更新电子邮件模板。
-
使用 DeleteTemplate 删除电子邮件模板。
-
使用 SendTemplatedEmail 发送模板化电子邮件。
Amazon SDK for PHPGitHub 上提供了
凭证
运行示例代码之前,请配置您的Amazon凭证,如中所述设置 凭证. 然后导入Amazon SDK for PHP,如中所述基本用法.
有关使用 Amazon SES 的更多信息,请参阅Amazon SES 开发人员指南.
创建电子邮件模板
要创建模板以发送个性化电子邮件,请使用 CreateTemplate 操作。该模板可由授权发送电子邮件的任意账户使用Amazon将模板添加到的区域。
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 = '<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\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"; }
列出所有电子邮件模板
检索与您关联的所有电子邮件模板的列表Amazon当前账户Amazon区域,请使用ListTemplatesoperation.
导入
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 = '<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\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"; }