

 La [Guía de referencia de la API de AWS SDK for JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript. 

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.

# Trabajar con plantillas de correo electrónico en Amazon SES
<a name="ses-examples-creating-template"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/es_es/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Este ejemplo de código de Node.js muestra:**
+ Cómo obtener una lista de todas sus plantillas de correo electrónico.
+ Cómo recuperar y actualizar plantillas de correo electrónico.
+ Cómo crear y eliminar plantillas de correo electrónico.

Con Amazon SES, puede enviar mensajes de correo electrónico personalizados mediante plantillas de correo electrónico. Para obtener más información sobre cómo crear y usar plantillas de correo electrónico en Amazon SES, consulte [Envío de correos electrónicos personalizados utilizando la API de Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html) en la Guía para desarrolladores de Amazon Simple Email Service.

## El escenario
<a name="ses-examples-creating-template-scenario"></a>

En este ejemplo, va a utilizar una serie de módulos de Node.js para trabajar con plantillas de correo electrónico. Los módulos de Node.js utilizan el SDK JavaScript para crear y utilizar plantillas de correo electrónico mediante los siguientes métodos de la clase `SES` cliente:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/)

## Tareas previas necesarias
<a name="ses-examples-creating-template-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
+ Configure el entorno del proyecto para ejecutar estos TypeScript ejemplos de Node e instale los módulos necesarios AWS SDK para JavaScript y de terceros. Siga las instrucciones de [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre cómo proporcionar un archivo de credenciales compartido, consulte [Archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de herramientas AWS SDKs y herramientas*.

**importante**  
En estos ejemplos se muestra cómo hacer un import/export cliente para ejecutar comandos y objetos de servicio mediante ECMAScript6 (ES6).  
Requiere la versión 13.x o superior de Node.js. Para descargar e instalar la versión más reciente de Node.js, consulte [Descargas de Node.js](https://nodejs.org/en/download).
Si prefiere utilizar la sintaxis CommonJS, consulte [Sintaxis ES6/commonJS de JavaScript](sdk-example-javascript-syntax.md).

## Obtención de una lista de plantillas de correo electrónico
<a name="ses-examples-listing-templates"></a>

En este ejemplo, utilice un módulo de Node.js para crear una plantilla de correo electrónico que se usará con Amazon SES. 

Cree un directorio `libs` y un módulo Node.js con el nombre de archivo `sesClient.js`. Copie y pegue el siguiente código en él para crear el objeto de cliente de Amazon SES. *REGION*Reemplácelo por su AWS región.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Cree un módulo de Node.js con el nombre de archivo `ses_listtemplates.js`. Configure el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir los parámetros para el método `ListTemplatesCommand` de la clase de cliente de Amazon SES. Para llamar al método `ListTemplatesCommand`, invoque un objeto de servicio de cliente de Amazon SES transfiriendo los parámetros. 

**nota**  
En este ejemplo se importan y se utilizan los paquetes de clientes y comandos de la V3 necesarios del AWS Servicio V3, y se utiliza el `send` método siguiendo un async/await patrón. En su lugar, puede crear este ejemplo con los comandos de la V2 realizando algunos cambios menores. Para obtener más información, consulte [Uso de comandos de v3](migrating.md#using_v3_commands).

```
import { ListTemplatesCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createListTemplatesCommand = (maxItems) =>
  new ListTemplatesCommand({ MaxItems: maxItems });

const run = async () => {
  const listTemplatesCommand = createListTemplatesCommand(10);

  try {
    return await sesClient.send(listTemplatesCommand);
  } catch (err) {
    console.log("Failed to list templates.", err);
    return err;
  }
};
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES devuelve la lista de plantillas.

```
node ses_listtemplates.js  
```

Este código de ejemplo se puede encontrar [aquí en. GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listtemplates.js)

## Obtención de una plantilla de correo electrónico
<a name="ses-examples-get-template"></a>

En este ejemplo, utilice un módulo de Node.js para obtener una plantilla de correo electrónico que se usará con Amazon SES.

Cree un directorio `libs` y un módulo Node.js con el nombre de archivo `sesClient.js`. Copie y pegue el siguiente código en él para crear el objeto de cliente de Amazon SES. *REGION*Reemplácelo por su AWS región.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Cree un módulo de Node.js con el nombre de archivo `ses_gettemplate.js`. Configure el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir el parámetro `TemplateName` para el método `GetTemplateCommand` de la clase de cliente de Amazon SES. Para llamar al método `GetTemplateCommand`, invoque un objeto de servicio de cliente de Amazon SES transfiriendo los parámetros. 

**nota**  
En este ejemplo se importan y se utilizan los paquetes de clientes y comandos de la V3 necesarios del AWS Servicio V3, y se utiliza el `send` método siguiendo un async/await patrón. En su lugar, puede crear este ejemplo con los comandos de la V2 realizando algunos cambios menores. Para obtener más información, consulte [Uso de comandos de v3](migrating.md#using_v3_commands).

**nota**  
*TEMPLATE\$1NAME*Sustitúyalo por el nombre de la plantilla que se va a devolver.

```
import { GetTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createGetTemplateCommand = (templateName) =>
  new GetTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const getTemplateCommand = createGetTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(getTemplateCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES devuelve los detalles de la plantilla.

```
node ses_gettemplate.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_gettemplate.js).

## Creación de una plantilla de correo electrónico
<a name="ses-examples-create-template"></a>

En este ejemplo, utilice un módulo de Node.js para crear una plantilla de correo electrónico que se usará con Amazon SES. 

Cree un directorio `libs` y un módulo Node.js con el nombre de archivo `sesClient.js`. Copie y pegue el siguiente código en él para crear el objeto de cliente de Amazon SES. *REGION*Reemplácelo por su AWS región.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Cree un módulo de Node.js con el nombre de archivo `ses_createtemplate.js`. Configure el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir los parámetros para el método `CreateTemplateCommand` de la clase de cliente de Amazon SES, incluidos `TemplateName`, `HtmlPart`, `SubjectPart` y `TextPart`. Para llamar al método `CreateTemplateCommand`, invoque un objeto de servicio de cliente de Amazon SES transfiriendo los parámetros. 

**nota**  
En este ejemplo se importan y se utilizan los paquetes de clientes y comandos de la V3 necesarios del AWS Servicio V3, y se utiliza el `send` método siguiendo un async/await patrón. En su lugar, puede crear este ejemplo con los comandos de la V2 realizando algunos cambios menores. Para obtener más información, consulte [Uso de comandos de v3](migrating.md#using_v3_commands).

**nota**  
*TEMPLATE\$1NAME*Sustitúyala por un nombre para la nueva plantilla, *HtmlPart* por el contenido del correo electrónico etiquetado en HTML y *SubjectPart* por el asunto del correo electrónico.

```
import { CreateTemplateCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";

const TEMPLATE_NAME = getUniqueName("TestTemplateName");

const createCreateTemplateCommand = () => {
  return new CreateTemplateCommand({
    /**
     * The template feature in Amazon SES is based on the Handlebars template system.
     */
    Template: {
      /**
       * The name of an existing template in Amazon SES.
       */
      TemplateName: TEMPLATE_NAME,
      HtmlPart: `
        <h1>Hello, {{contact.firstName}}!</h1>
        <p>
        Did you know Amazon has a mascot named Peccy?
        </p>
      `,
      SubjectPart: "Amazon Tip",
    },
  });
};

const run = async () => {
  const createTemplateCommand = createCreateTemplateCommand();

  try {
    return await sesClient.send(createTemplateCommand);
  } catch (err) {
    console.log("Failed to create template.", err);
    return err;
  }
};
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. La plantilla se añade a Amazon SES.

```
node ses_createtemplate.js  
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_createtemplate.js).

## Actualización de una plantilla de correo electrónico
<a name="ses-examples-update-template"></a>

En este ejemplo, utilice un módulo de Node.js para crear una plantilla de correo electrónico que se usará con Amazon SES. 

Cree un directorio `libs` y un módulo Node.js con el nombre de archivo `sesClient.js`. Copie y pegue el siguiente código en él para crear el objeto de cliente de Amazon SES. *REGION*Reemplácelo por su AWS región.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Cree un módulo de Node.js con el nombre de archivo `ses_updatetemplate.js`. Configure el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir los valores de parámetro `Template` que desea actualizar en la plantilla, con el parámetro `TemplateName` obligatorio transferido al método `UpdateTemplateCommand` de la clase de cliente de Amazon SES. Para llamar al método `UpdateTemplateCommand`, invoque un objeto de servicio de Amazon SES transfiriendo los parámetros. 

**nota**  
En este ejemplo se importan y se utilizan los paquetes de clientes y comandos de la V3 necesarios del AWS Servicio V3, y se utiliza el `send` método siguiendo un async/await patrón. En su lugar, puede crear este ejemplo con los comandos de la V2 realizando algunos cambios menores. Para obtener más información, consulte [Uso de comandos de v3](migrating.md#using_v3_commands).

**nota**  
*TEMPLATE\$1NAME*Sustitúyalo por el nombre de la plantilla y *HTML\$1PART* por el contenido del correo electrónico etiquetado en HTML.

```
import { UpdateTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");
const HTML_PART = "<h1>Hello, World!</h1>";

const createUpdateTemplateCommand = () => {
  return new UpdateTemplateCommand({
    Template: {
      TemplateName: TEMPLATE_NAME,
      HtmlPart: HTML_PART,
      SubjectPart: "Example",
      TextPart: "Updated template text.",
    },
  });
};

const run = async () => {
  const updateTemplateCommand = createUpdateTemplateCommand();

  try {
    return await sesClient.send(updateTemplateCommand);
  } catch (err) {
    console.log("Failed to update template.", err);
    return err;
  }
};
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES devuelve los detalles de la plantilla.

```
node ses_updatetemplate.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_updatetemplate.js).

## Eliminación de una plantilla de correo electrónico
<a name="ses-examples-delete-template"></a>

En este ejemplo, utilice un módulo de Node.js para crear una plantilla de correo electrónico que se usará con Amazon SES. 

Cree un directorio `libs` y un módulo Node.js con el nombre de archivo `sesClient.js`. Copie y pegue el siguiente código en él para crear el objeto de cliente de Amazon SES. *REGION*Reemplácelo por su AWS región.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Cree un módulo de Node.js con el nombre de archivo `ses_deletetemplate.js`. Configure el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios.

Cree un objeto para transferir el parámetro `TemplateName` obligatorio al método `DeleteTemplateCommand` de la clase de cliente de Amazon SES. Para llamar al método `DeleteTemplateCommand`, invoque un objeto de servicio de Amazon SES transfiriendo los parámetros. 

**nota**  
En este ejemplo se importan y se utilizan los paquetes de clientes y comandos de la V3 necesarios del AWS Servicio V3, y se utiliza el `send` método siguiendo un async/await patrón. En su lugar, puede crear este ejemplo con los comandos de la V2 realizando algunos cambios menores. Para obtener más información, consulte [Uso de comandos de v3](migrating.md#using_v3_commands).

**nota**  
*TEMPLATE\$1NAME*Sustitúyalo por el nombre de la plantilla que se va a eliminar.

```
import { DeleteTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createDeleteTemplateCommand = (templateName) =>
  new DeleteTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const deleteTemplateCommand = createDeleteTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(deleteTemplateCommand);
  } catch (err) {
    console.log("Failed to delete template.", err);
    return err;
  }
};
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos. Amazon SES devuelve los detalles de la plantilla.

```
node ses_deletetemplate.js 
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deletetemplate.js).