

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
<a name="ses-sender-policy"></a>

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](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).

Los siguientes ejemplos muestran cómo:
+ Cree un remitente autorizado mediante [PutIdentityPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-email-2010-12-01.html#createidentitypolicy).
+ Recupere políticas para un remitente autorizado mediante [GetIdentityPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-email-2010-12-01.html#getidentitypolicies).
+ Enumere los remitentes autorizados mediante [ListIdentityPolicies](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-email-2010-12-01.html#listidentitypolicies).
+ Revoque el permiso para un remitente autorizado mediante [DeleteIdentityPolicy](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-email-2010-12-01.html#deleteidentitypolicy).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

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](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

Para obtener más información sobre el uso de Amazon SES, consulte la [Guía para desarrolladores de Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/).

## Creación de un remitente autorizado
<a name="create-an-authorized-sender"></a>

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](https://docs.aws.amazon.com/ses/latest/APIReference/API_PutIdentityPolicy.html).

 **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
<a name="retrieve-polices-for-an-authorized-sender"></a>

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](https://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityPolicy.html).

 **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
<a name="list-authorized-senders"></a>

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](https://docs.aws.amazon.com/ses/latest/APIReference/API_ListIdentityPolicies.html).

 **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
<a name="revoke-permission-for-an-authorized-sender"></a>

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](https://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteIdentityPolicy.html).

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