Autorizar remitentes mediante la API de Amazon SES y la versión 3 de AWS SDK for PHP - AWS SDK for PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autorizar remitentes mediante la API de Amazon SES y la versión 3 de AWS SDK for PHP

Para permitir que otra Cuenta de AWS, usuario de AWS Identity and Access Management user, o servicio de AWS envíe mensajes de correo electrónico a través de Amazon Simple Email Service (Amazon SES) en su nombre, debe crear una política de autorización de envío. Se trata de un documento JSON que se asocia a una identidad de su propiedad.

La política enumera de forma expresa a quién permite enviar para dicha identidad y en qué condiciones. No se permite enviar mensajes de correo electrónico a todos los remitentes excepto usted y las entidades a las que conceda permiso explícitamente en la política. Una identidad puede no tener ninguna política, una política o varias políticas asociadas. También puede tener una política con varias instrucciones para conseguir el efecto de varias políticas.

Para obtener más información, consulte Using Sending Authorization with Amazon SES.

Los siguientes ejemplos muestran cómo:

Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.

Para obtener más información sobre el uso de Amazon SES, consulte la Guía para desarrolladores de Amazon SES.

Creación de un remitente autorizado

Para autorizar a otra cuenta de Cuenta de AWS para enviar mensajes de correo electrónico en su nombre, utilice una política de identidad para añadir o actualizar la autorización para enviar mensajes de correo electrónico desde sus direcciones de correo electrónico verificadas o dominios. Para crear una política de identidad, utilice la PutIdentityPolicyoperación.

Importaciones

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

Código de muestra

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

Recuperación de políticas para un remitente autorizado

Devuelva las políticas de autorización de envío que estén asociadas a una identidad de correo electrónico o de dominio específicas. Para obtener la autorización de envío para una dirección de correo electrónico o un dominio determinados, utilice la GetIdentityPolicyoperación.

Importaciones

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

Código de muestra

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

Lista de remitentes autorizados

Para enumerar las políticas de autorización de envío asociadas a una identidad de correo electrónico o dominio específica en la AWS región actual, utilice la ListIdentityPoliciesoperación.

Importaciones

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

Código de muestra

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

Revocación del permiso para un remitente autorizado

Elimine la autorización de envío para Cuenta de AWS que otra persona envíe correos electrónicos con una identidad de correo electrónico o una identidad de dominio eliminando la política de identidad asociada a la DeleteIdentityPolicyoperación.

Importaciones

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

Código de muestra

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