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