Autorização de remetentes usando a API do Amazon SES e o versão 3 AWS SDK for PHP - AWS SDK for PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autorização de remetentes usando a API do Amazon SES e o versão 3 AWS SDK for PHP

Para habilitar outra conta da Conta da AWS, usuário do AWS Identity and Access Management ou serviço da AWS a enviar e-mails por meio do Amazon Simple Email Service (Amazon SES) em seu nome, crie uma política de autorização de envio. Este é um documento JSON que você deve anexar a uma identidade que possui.

A política lista expressamente quem você permite que envie para essa identidade e em que condições. Com exceção de você e das entidades às quais concedeu permissões explicitamente na política, todos os demais remetentes não estão autorizados a enviar e-mails. Uma identidade pode ter nenhuma política, uma política ou várias políticas anexadas a ela. Você também pode ter uma política com várias instruções para alcançar o efeito de várias políticas.

Para obter mais informações, consulte Como usar a autorização de envio com o Amazon SES.

Os exemplos a seguir mostram como:

Todo o código de exemplo para o AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Credenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito em Uso básico.

Para obter mais informações sobre o uso do Amazon SES, consulte o Guia do desenvolvedor do Amazon SES.

Criar um remetente autorizado

Para autorizar outra Conta da AWS a enviar e-mails em seu nome, utilize uma política de identidade para adicionar ou atualizar a autorização referente ao envio de e-mails de seus endereços de e-mail ou domínios verificados. Para criar uma política de identidade, use a PutIdentityPolicyoperação.

Importações

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

Código de exemplo

$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"; }

Recuperar políticas para um remetente autorizado

Retorne as políticas de autorização de envio que são associadas a uma identidade de e-mail ou identidade de domínio específica. Para obter a autorização de envio para um determinado endereço de e-mail ou domínio, use a GetIdentityPolicyoperação.

Importações

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

Código de exemplo

$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"; }

Listar remetentes autorizados

Para listar as políticas de autorização de envio associadas a uma identidade de e-mail ou identidade de domínio específica na AWS região atual, use a ListIdentityPoliciesoperação.

Importações

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

Código de exemplo

$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"; }

Revogar permissão para um remetente autorizado

Remova a autorização de envio de outra pessoa Conta da AWS para enviar e-mails com uma identidade de e-mail ou identidade de domínio excluindo a política de identidade associada à DeleteIdentityPolicyoperação.

Importações

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

Código de exemplo

$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"; }