Amazon SES API および AWS SDK for PHP バージョン 3 を使用した送信者の認証 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SES API および AWS SDK for PHP バージョン 3 を使用した送信者の認証

お客様の代わりに別の AWS アカウント、AWS Identity and Access Management ユーザー、または AWS サービスが Amazon Simple Email Service (Amazon SES) を介して E メールを送信できるようにするには、送信認可ポリシーを作成します。これは、お客様が所有しているアイデンティティにアタッチする JSON ドキュメントです。

このポリシーには、そのアイデンティティでの送信を許可するユーザーとその条件が明示的にリストされます。お客様とポリシーでアクセス許可を明示的に付与したエンティティ以外のすべての送信者は、E メールの送信が許可されません。アイデンティティにはポリシーをアタッチしないことも、1 つまたは複数のポリシーをアタッチすることもできます。さらに、複数のステートメントを含む 1 つのポリシーを作成して、複数のポリシーの効果を持たせることもできます。

詳細については、「Amazon SES での送信承認の使用」を参照してください。

以下の例では、次の方法を示しています。

のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub

認証情報

サンプルコードを実行する前に、AWS の認証情報を設定します (認証情報 を参照)。AWS SDK for PHP からのインポート (基本的な使用法 を参照)。

Amazon SES の使用の詳細については、「Amazon SES デベロッパーガイド」を参照してください。

承認済み送信者を作成する

別の AWS アカウント がお客様の代わりに E メールを送信することを承認するには、アイデンティティポリシーを使用し、確認済みの E メールアドレスまたはドメインから E メールを送信する認可を追加または更新します。ID ポリシーを作成するには、 PutIdentityPolicyオペレーションを使用します。

インポート

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

サンプルコード

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $other_aws_account = "0123456789"; $policy = <<<EOT { "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAccount", "Effect":"Allow", "Resource":"$identity", "Principal":{ "AWS":[ "$other_aws_account" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] } EOT; $name = "policyName"; try { $result = $SesClient->putIdentityPolicy([ 'Identity' => $identity, 'Policy' => $policy, 'PolicyName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

承認済み送信者のポリシーを取得する

特定の E メールアイデンティティまたはドメインアイデンティティに関連付けられている送信承認ポリシーを返します。特定の E メールアドレスまたはドメインの送信承認を取得するには、 GetIdentityPolicyオペレーションを使用します。

インポート

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

サンプルコード

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $policies = ["policyName"]; try { $result = $SesClient->getIdentityPolicies([ 'Identity' => $identity, 'PolicyNames' => $policies, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

承認済み送信者をリストする

現在のAWSリージョンの特定の E メール ID またはドメイン ID に関連付けられている送信承認ポリシーを一覧表示するには、 ListIdentityPoliciesオペレーションを使用します。

インポート

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

サンプルコード

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; try { $result = $SesClient->listIdentityPolicies([ 'Identity' => $identity, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

承認済み送信者のアクセス許可を取り消す

DeleteIdentityPolicy オペレーションに関連付けられた ID ポリシーを削除して、E メール ID またはドメイン ID を持つ E メールを送信AWS アカウントする別の の送信承認を削除します。

インポート

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Ses\SesClient;

サンプルコード

$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-1' ]); $identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com"; $name = "policyName"; try { $result = $SesClient->deleteIdentityPolicy([ 'Identity' => $identity, 'PolicyName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }