本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SES API 和第 3 AWS SDK for PHP 版驗證電子郵件身分
當您第一次開始使用 Amazon Simple Email Service (Amazon SES) 帳戶時,所有寄件者和收件者都必須在您要傳送電子郵件的相同AWS區域中進行驗證。如需如何傳送電子郵件的詳細資訊,請參閱使用 Amazon SES 傳送電子郵件。
下列範例示範如何:
-
使用驗證電子郵件地址VerifyEmailIdentity。
-
使用驗證電子郵件網域VerifyDomainIdentity。
-
使用列出所有電子郵件地址ListIdentities。
-
使用列出所有電子郵件網域ListIdentities。
-
使用移除電子郵件地址DeleteIdentity。
-
使用移除電子郵件網域DeleteIdentity。
所有的範例程式碼都可以AWS SDK for PHP在這裡取
登入資料
在執行範例程式碼之前,請依照中的說明設定您的AWS認證憑證。然後匯入AWS SDK for PHP,如中所述基本使用。
如需使用 Amazon SES 的詳細資訊,請參閱 Amazon SES 開發人員指南。
驗證電子郵件地址
Amazon SES 只能從經過驗證的電子郵件地址或網域傳送電子郵件。透過驗證電子郵件地址,即表示您是該地址的擁有者,並希望允許 Amazon SES 從該地址傳送電子郵件。
當您執行下列程式碼範例時,Amazon SES 會傳送電子郵件到您指定的地址。當您 (或電子郵件的收件人) 按一下電子郵件中的連結後,該地址即經過驗證。
若要將電子郵件地址新增至您的 Amazon SES 帳戶,請使用VerifyEmailIdentity操作。
匯入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
範例程式碼
$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $email = 'email_address'; try { $result = $SesClient->verifyEmailIdentity([ 'EmailAddress' => $email, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
驗證電子郵件網域
Amazon SES 只能從經過驗證的電子郵件地址或網域傳送電子郵件。透過驗證網域,可以證明您是該網域的擁有者。驗證網域時,您允許 Amazon SES 從該網域上的任何地址傳送電子郵件。
當您執行下列程式碼範例時,Amazon SES 會為您提供驗證權杖。您必須將此字符新增至您網域的 DNS 組態。如需詳細資訊,請參閱 Amazon 簡易電子郵件服務開發人員指南中的使用 Amazon SES 驗證網域。
若要將傳送網域新增至您的 Amazon SES 帳戶,請使用此VerifyDomainIdentity操作。
匯入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
範例程式碼
$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $domain = 'domain.name'; try { $result = $SesClient->verifyDomainIdentity([ 'Domain' => $domain, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
列出電郵地址
要檢索在當前AWS區域中提交的電子郵件地址列表,無論驗證狀態如何,請使用ListIdentities操作。
匯入
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->listIdentities([ 'IdentityType' => 'EmailAddress', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
列出電郵網域
要檢索在當前AWS區域中提交的電子郵件域列表,無論驗證狀態如何,請使用該ListIdentities操作。
匯入
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->listIdentities([ 'IdentityType' => 'Domain', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
刪除電子郵件地址
若要從身分清單中刪除已驗證的電子郵件地址,請使用此DeleteIdentity作業。
匯入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
範例程式碼
$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $email = 'email_address'; try { $result = $SesClient->deleteIdentity([ 'Identity' => $email, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
刪除電子郵件網域
若要從已驗證的身分清單中刪除已驗證的電子郵件網域,請使用此DeleteIdentity作業。
匯入
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
範例程式碼
$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $domain = 'domain.name'; try { $result = $SesClient->deleteIdentity([ 'Identity' => $domain, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }