Guía práctica
Reintentar y reenviar emails
Vuelve a enviar como email nuevo un email rebotado, fallido, bloqueado o retenido, o reenvía un email enviado a otro destinatario, desde el panel o con la API.
Reintentar vuelve a enviar un email con el mismo contenido después de que haya rebotado, fallado, quedado bloqueado o retenido. Reenviar envía a otra persona una copia de un email que ya has enviado, por ejemplo a un compañero de soporte o a un cliente que ha perdido el original. Ambas acciones crean un email nuevo con su propio ID y dejan el original sin cambios.
Antes de empezar
- En la API, ambos endpoints funcionan con claves Full Access y Sending Only.
- Ambas acciones se cobran como envíos nuevos, así que necesitas créditos suficientes.
- Ambas necesitan el contenido del mensaje original. Emailit lo elimina cuando termina tu periodo de retención de datos del contenido de los mensajes:
| Pay as you go | Pro | Business | Custom | |
|---|---|---|---|---|
| Retención del contenido de los mensajes | 7 días | 30 días | 30 días | Flexible |
Reintentar un email
Un email se puede reintentar cuando se cumplen todas estas condiciones:
| Requisito | Detalles |
|---|---|
| Estado | bounced, failed, suppressed o held |
| Antigüedad | Creado hace menos de 30 días |
| Contenido | La retención de datos no ha eliminado el contenido del mensaje |
| Dominio de envío | El dominio de envío original sigue existiendo en el espacio de trabajo |
Un reintento crea un email nuevo con un ID em_ nuevo y un Message-ID nuevo. Reutiliza el mensaje en bruto, el destinatario, los metadatos y la configuración de seguimiento del original, y pasa por el proceso de entrega normal. Cuesta 1 crédito, o 2 créditos si el original era un email de campaña. Un espacio de trabajo en modo sandbox solo puede reintentar emails dirigidos a miembros del espacio de trabajo.
Corrige la causa antes de reintentar; si no, el email nuevo acabará con el mismo estado:
- Bloqueado: primero quita la dirección de las direcciones bloqueadas.
- Retenido por falta de créditos: recarga tus créditos.
- Retenido porque el dominio estaba pausado: resuelve el problema de salud de envío.
- Retenido por la puntuación de spam: un reintento envía el mismo contenido y es probable que vuelva a retenerse. Cambia el contenido y envía un email nuevo. Consulta Comprobaciones de spam.
- Rebotado: comprueba el motivo del rebote en la página de detalles del email. Un buzón que no existe volverá a rebotar. Si Emailit añadió la dirección a tus direcciones bloqueadas después del rebote, quítala primero.
- Ve a Email APIEmails y abre el email.
- Selecciona Retry en la parte superior de la página. El panel lo muestra en los emails retenidos y bloqueados; los emails rebotados y fallidos se reintentan con la API.
- Vuelve a seleccionar Retry en el cuadro de diálogo Retry Email para confirmar. El email nuevo aparece en la lista con su propio ID.
Llama a Reintentar un email (POST /emails/{id}/retry) con el ID del email original. No hay cuerpo de petición.
curl -X POST https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/retry \
-H "Authorization: Bearer $EMAILIT_API_KEY"const retried = await emailit.emails.retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');retried = client.emails.retry("em_33VtK8mRq1xZp7LwN4cY2bHsDfa")$retried = $emailit->emails()->retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');{
"object": "email",
"id": "em_33Vu2LqPz8aKd4WnX6cR1tYbHgs",
"original_id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
"token": "33Vu2LqQ7mFt3XcV9bNp5KsRwEz",
"message_id": "<33Vu2LqQ7mFt3XcV9bNp5KsRwEz@acme.com>",
"from": "Acme <orders@acme.com>",
"to": "ada@example.com",
"subject": "Receipt for order 1042",
"status": "accepted",
"created_at": "2026-10-01T11:15:03.552918Z",
"message": "Email has been queued for retry"
}| Error | Causa |
|---|---|
404 Email not found |
El ID no existe en este espacio de trabajo. |
422 Cannot retry email |
El estado no admite reintentos, el email tiene más de 30 días, su contenido se ha eliminado o su dominio de envío se ha eliminado. El message indica cuál de estos casos es. |
402 Insufficient credits |
El espacio de trabajo no puede pagar el reintento. |
403 Workspace not verified |
El espacio de trabajo está en modo sandbox y el destinatario no es miembro del espacio de trabajo. |
Reenviar un email
Reenviar envía un email saliente que ya has enviado a un destinatario nuevo. Los emails entrantes no se pueden reenviar.
Por defecto, el reenvío es un nuevo envío sin más: el destinatario recibe el asunto, el cuerpo y los adjuntos originales como si el email se le hubiera enviado a él. Usa include_headers para enviar en su lugar un reenvío clásico, con un bloque «Forwarded message» (From, Date, Subject y To originales) y un comentario opcional encima. En ese caso, el asunto empieza por Fwd:.
tostring | string[]obligatorioto en un envío.include_headersbooleanpor defecto: falseFwd: en el asunto.commentstringinclude_headers es true. También se acepta body como alias.htmlstringcomment escapado en la parte HTML, cuando include_headers es true.textstringcomment en la parte de texto, cuando include_headers es true.fromstringsubjectstringFwd: seguido del asunto original con include_headers.Un reenvío es un envío nuevo, así que sigue las mismas reglas que POST /emails: se aplican los créditos por destinatario, los límites de velocidad de envío, las comprobaciones del dominio From y la cabecera Idempotency-Key. El seguimiento sigue la configuración del dominio de envío. Las cabeceras personalizadas y los metadatos del original no se copian, y los adjuntos solo se conservan si su tipo de archivo está permitido.
Cada espacio de trabajo puede hacer 3 peticiones de reenvío por hora, contando juntos los reenvíos desde el panel y desde la API. Por encima del límite, la API devuelve 429 con too_many_requests.
- Ve a Email APIEmails y abre el email.
- Selecciona Forward.
- Introduce el destinatario en To.
- Opcional: marca Add forwarded headers and a comment y escribe un Comment.
- Selecciona Forward. El email nuevo aparece en la lista con su propio ID.
Llama a Reenviar un email (POST /emails/{id}/forward).
curl https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/forward \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "support@acme.com",
"include_headers": true,
"comment": "Customer says this receipt never arrived. Can you check?"
}'const forwarded = await emailit.emails.forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', {
to: 'support@acme.com',
include_headers: true,
comment: 'Customer says this receipt never arrived. Can you check?',
});forwarded = client.emails.forward("em_33VtK8mRq1xZp7LwN4cY2bHsDfa", {
"to": "support@acme.com",
"include_headers": True,
"comment": "Customer says this receipt never arrived. Can you check?",
})$forwarded = $emailit->emails()->forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', [
'to' => 'support@acme.com',
'include_headers' => true,
'comment' => 'Customer says this receipt never arrived. Can you check?',
]);La respuesta es igual que la respuesta de un envío, más original_id y el mensaje «Email has been queued for forwarding». El reenvío falla con 422 Cannot forward email si el original es un email entrante o si su contenido se ha eliminado.