本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SES API 和 第 3 適用於 PHP 的 AWS SDK 版建立自訂電子郵件範本
Amazon Simple Email Service (Amazon SES) 可讓您使用 範本來傳送每個收件人個人化的電子郵件。範本包含主旨行以及電子郵件內文的文字和 HTML 部分。主旨和內文區段可能還包含專為每位收件人個人化的獨特值。
如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的使用 Amazon SES 傳送個人化電子郵件。
下列範例示範如何:
-
使用 CreateTemplate 建立電子郵件範本。
-
使用 ListTemplates 列出所有電子郵件範本。
-
使用 GetTemplate 擷取電子郵件範本。
-
使用 UpdateTemplate 更新電子郵件範本。
-
使用 DeleteTemplate 移除電子郵件範本。
-
使用 SendTemplatedEmail 傳送範本電子郵件。
GitHub 上 適用於 PHP 的 AWS SDK 提供 的所有範例程式碼。 GitHub
登入資料
執行範例程式碼之前,請先設定您的 AWS 登入資料,如 中所述登入資料。然後匯入 適用於 PHP 的 AWS SDK,如 中所述基本使用。
如需使用 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"; }