使用 Amazon SES API 和第 3 AWS SDK for PHP 版建立自訂電子郵件範本 - AWS SDK for PHP

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon SES API 和第 3 AWS SDK for PHP 版建立自訂電子郵件範本

Amazon Simple Email Service (Amazon SES) 可讓您使用範本傳送針對每位收件者個人化的電子郵件。範本包含主旨行以及電子郵件內文的文字和 HTML 部分。主旨和內文區段可能還包含專為每位收件人個人化的獨特值。

如需詳細資訊,請參閱 Amazon 簡單電子郵件服務開發人員指南中的使用 Amazon SES 傳送個人化電子郵件。

下列範例示範如何:

所有的範例程式碼都可以AWS SDK for PHP在這裡取得 GitHub。

登入資料

在執行範例程式碼之前,請依照中的說明設定您的AWS認證憑證。然後匯入AWS SDK for PHP,如中所述基本使用

如需使用 Amazon SES 的詳細資訊,請參閱 Amazon SES 開發人員指南

建立電子郵件範本

若要建立範本以傳送個人化電子郵件訊息,請使用此CreateTemplate作業。在新增範本的AWS地區中,任何授權可傳送郵件的帳戶都可以使用範本。

注意

Amazon SES 不會驗證您的 HTML,因此在傳送電子郵件之前,請確定該 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"; }