Autorización de remitentes mediante la API de Amazon SES y la versión 3 de AWS SDK para PHP - AWS SDK para 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.

Autorización de remitentes mediante la API de Amazon SES y la versión 3 de AWS SDK para 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 de AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.

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 operación PutIdentityPolicy.

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 determinada dirección de correo electrónico o dominio, utilice la operación GetIdentityPolicy.

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 que estén asociadas a una identidad de correo electrónico o de dominio específicas en la región de AWS actual, utilice la operación ListIdentityPolicies.

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

Para eliminar la autorización de envío de otra Cuenta de AWS para enviar mensajes de correo electrónico con una identidad de correo electrónico o de dominio eliminando la política de identidad asociada con la operación DeleteIdentityPolicy.

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