使用 Amazon SES API 和AmazonSDK for PHP 版本 3 - Amazon适用于 PHP 的开发工具包
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon SES API 和AmazonSDK for PHP 版本 3

Amazon Simple Email Service (Amazon SES) 让您可以通过使用 Amazon Simple Email Service (Amazon SES) 发送电子邮件,这些邮件可以通过 模板包含一个主题行以及电子邮件正文的文本和 HTML 部分。主题和正文部分还可包含针对每个收件人进行个性化设置的唯一值。

有关更多信息,请参阅 。使用 Amazon SES 发送个性化电子邮件(在 Amazon Simple Email Service 开发人员指南中。)

以下示例演示如何:

的所有示例代码AmazonSDK for PHP 版本 3(位于 GitHub 上).

Credentials

运行示例代码之前,请配置Amazon凭证的第一个版本,如的凭证AmazonSDK for PHP 版本 3. 然后导入AmazonSDK for PHP,如的基本使用模式AmazonSDK for PHP 版本 3.

有关使用 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"; }