# Cabeceras y metadatos

> Añade cabeceras de email personalizadas y List-Unsubscribe a los envíos por API, consulta qué cabeceras añade o reescribe Emailit y adjunta metadatos que vuelven en los webhooks.

Esta página trata dos formas de añadir tu propia información a un email enviado con la API de email: `headers`, que pasan a formar parte del mensaje que recibe el destinatario, y `meta`, que Emailit guarda con el email y devuelve en la API y en los webhooks. También lista las cabeceras que Emailit añade, reescribe o elimina.

## Añadir cabeceras personalizadas

Pasa `headers` como un objeto con nombres de cabecera y valores de tipo cadena:

```json
{
  "from": "Acme <orders@acme.com>",
  "to": "ada@example.com",
  "subject": "Receipt for order 1042",
  "text": "Thanks for your order.",
  "headers": {
    "X-Entity-Ref-ID": "order-1042",
    "X-Acme-Account": "881"
  }
}
```

- Para From, To, Cc, Bcc, Reply-To y Subject, usa los campos de la petición, no `headers`.
- No definas cabeceras cuyo nombre empiece por `X-Emailit-`. Emailit las usa internamente. Por ejemplo, un mensaje que ya contiene `X-Emailit-ID` se trata como procesado y se salta la reescritura de cabeceras y la firma DKIM de Emailit.
- Las cabeceras que define el propio Emailit, como `Message-ID` y `Date`, se sustituyen aunque las envíes. Consulta la sección siguiente.

## Cabeceras que Emailit añade o cambia

| Cabecera | Qué hace Emailit |
| --- | --- |
| `Message-ID` | La fija en `<token@your-domain>`, el mismo valor que `message_id` en la respuesta del envío. Si proporcionas un `Message-ID`, se sustituye. |
| `Date` | La fija cuando Emailit procesa el mensaje por primera vez para la entrega. |
| `Subject` | Escribe el asunto final y codifica los caracteres no ASCII. |
| `Return-Path` | Fija una dirección de rebote en tu subdominio del return-path, `emailit.<your-domain>`, para que los rebotes vuelvan a Emailit y SPF se alinee. |
| `DKIM-Signature` | Firma el mensaje con la clave DKIM de tu dominio. Se puede añadir una segunda firma para `emailitmail.com` para los feedback loops de quejas. |
| `Received` | Añade cabeceras de traza para la API y el servidor de correo de Emailit. |
| `X-Emailit-ID` | Añade el token del email. |
| `Feedback-ID` | Añade un identificador que los proveedores de correo usan en los informes de quejas. |
| `X-Emailit-Meta` | Añade tus valores de `meta`, codificados en base64, cuando envías `meta`. |
| `X-Emailit-Tracking` | Añade los ajustes solicitados cuando activas el seguimiento con `tracking`. |
| `Bcc` | La elimina, para que los destinatarios en CCO sigan ocultos. |
| `Reply-To` | La elimina cuando indica la misma dirección que From. |
| `Content-Disposition` | La elimina del nivel superior del mensaje. Las partes de los adjuntos conservan la suya. |

El [SMTP relay](/es/docs/smtp/headers/) aplica la misma reescritura a los mensajes que envías por SMTP.

## Añadir List-Unsubscribe al correo masivo

Los proveedores de correo como Gmail y Yahoo esperan una opción de baja con un clic en el correo promocional y en el resto del correo masivo. Las [campañas](/es/docs/campaigns/) la añaden automáticamente. En las newsletters o los resúmenes que envías con la API, añade tú las dos cabeceras:

```json
{
  "from": "Acme <news@acme.com>",
  "to": "ada@example.com",
  "subject": "Acme weekly digest",
  "html": "<p>This week at Acme…</p>",
  "headers": {
    "List-Unsubscribe": "<https://acme.com/unsubscribe?u=881&l=digest>, <mailto:unsubscribe@acme.com?subject=unsubscribe-881>",
    "List-Unsubscribe-Post": "List-Unsubscribe=One-Click"
  }
}
```

- La URL `https` debe aceptar una petición `POST` con el cuerpo `List-Unsubscribe=One-Click` y dar de baja a la persona sin pedirle confirmación (RFC 8058).
- Haz que cada URL sea específica del destinatario, para que tu endpoint sepa a quién dar de baja.
- Emailit incluye `List-Unsubscribe` y `List-Unsubscribe-Post` en la firma DKIM, algo que los proveedores exigen para la baja con un clic.

Para los demás requisitos, consulta [¿Cómo cumplo los requisitos de Gmail y Yahoo para remitentes masivos?](/es/docs/kb/gmail-yahoo-bulk-sender-requirements/).

Cuando alguien se da de baja, deja de enviarle correo. Puedes añadirlo a tu [lista de direcciones bloqueadas](/es/docs/suppressions/) para que Emailit bloquee los envíos futuros.

## Adjuntar metadatos

`meta` es un objeto con claves y valores de tipo cadena que Emailit guarda con cada email. Úsalo para vincular un email a los registros de tu propio sistema.

```json
{
  "from": "Acme <orders@acme.com>",
  "to": "ada@example.com",
  "subject": "Receipt for order 1042",
  "text": "Thanks for your order.",
  "meta": {
    "order_id": "1042",
    "customer_id": "cus_881",
    "kind": "receipt"
  }
}
```

Convierte los números y los booleanos en cadenas antes de enviarlos. Emailit devuelve `meta`:

- En [Obtener un email](/es/docs/api-reference/emails/get/), [Obtener los metadatos](/es/docs/api-reference/emails/meta/) y [Listar emails](/es/docs/api-reference/emails/list/).
- En los eventos de webhook del email: en `data.object.meta` para `email.accepted`, `email.scheduled`, `email.canceled` y los eventos de entrega, y en `data.object.email.meta` para `email.loaded` y `email.clicked`.

Un evento de entrega con metadatos tiene este aspecto (abreviado):

```json
[
  {
    "type": "email.delivered",
    "data": {
      "object": {
        "id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
        "object": "email",
        "to": "ada@example.com",
        "subject": "Receipt for order 1042",
        "status": "delivered",
        "meta": { "order_id": "1042", "customer_id": "cus_881", "kind": "receipt" }
      }
    }
  }
]
```

[Reintentar](/es/docs/email-api/retry-and-forward/) un email conserva sus metadatos. Reenviarlo crea un email nuevo sin ellos.

> **Los metadatos viajan con el mensaje:** Emailit también escribe `meta` en el mensaje como la cabecera `X-Emailit-Meta` codificada en base64, así que cualquiera que vea el mensaje en bruto puede decodificarla. No pongas secretos, tokens ni datos personales sensibles en `meta`.

## Encontrar emails más tarde

No puedes buscar ni filtrar emails por `meta`. Para volver a encontrar un email:

- **Guarda los ID.** Guarda el `id`, o el mapa `ids` si hay varios destinatarios, junto a tu propio registro, y busca el email con [Obtener un email](/es/docs/api-reference/emails/get/).
- **Filtra la lista.** [Listar emails](/es/docs/api-reference/emails/list/) filtra por `to`, `from`, `subject`, `status`, `created_at`, `updated_at`, `spam_score`, `api_key_id` y `sending_domain_id`. Consulta [Filtrado](/es/docs/api-reference/filtering/).
- **Usa claves de API separadas.** Da a cada aplicación o función su propia [clave de API](/es/docs/developers/api-keys/), y después filtra por `api_key_id`, o por **API key** en **Email API → Emails**.
- **Asocia los eventos de webhook.** Lee `meta` en cada evento para dirigirlo al registro correcto en cuanto llega.

## Ver también

- [Enviar un email](/es/docs/email-api/send-email/)
- [Cabeceras SMTP](/es/docs/smtp/headers/)
- [Tipos de eventos de webhook](/es/docs/webhooks/event-types/)
- [Diccionario de cabeceras de email](/es/docs/dictionary/email-headers/)

---
Fuente: https://emailit.com/es/docs/email-api/headers-and-metadata/
