Envío usando HTTP
La API HTTP permite enviar un contenido a uno o varios destinatarios con un sólo POST, utilizar variables de reemplazo para personalizarlos, e incluir etiquetas y atributos para su seguimiento.
SERVICIO DISCONTINUADO: La API de envíos transaccionales ya no está disponible para nuevas suscripciones.
Ejemplo básico
Empecemos por el ejemplo más sencillo posible:
Ejemplo usando una plantilla
Otra forma de indicar el contenido es utilizando una plantilla diseñada en la aplicación web, donde ya incluyen el remitente asunto y contenido.
/mail/send
POST
https://transactional.myperfit.com/v1/mail/send
Este endpoint permite encolar para su envío uno o varios emails que compartan el mismo contenido.
Es posible enviar a hasta 1000 destinatarios (recipients
) en un mismo request.
El content
, subject
y headers
pueden ser personalizados utilizando etiquetas de reemplazo del estilo ${object.key}
.
Headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer API_KEY |
Request Body
Name | Type | Description |
---|---|---|
Body | object | Cuerpo del mensaje en formato JSON |
Estructura del mensaje
Los únicos parámetros requeridos del body son: from.email
, subject
, content
(al menos uno: html
o text
) y recipients
(al menos uno, incluyendo al menos to.email
).
from
: Object, requerido. Email y nombre del remitente.email
: String, requerido.name
: String, opcional.
reply_to
: Object, opcional. Dirección y nombre de respuesta.email
: String, requerido.name
: String, opcional.
subject
: String, requerido, max 200 chars. Asunto del correo.content
: Object, requerido. Se debe indicar al menos un tipo.html
: String, opcional, max 300KB. Contenido de tipotext/html
.text
: String, opcional, max 300KB. Contenido de tipotext/plain
.
template_id
: String, opcional. El id de la plantilla a utilizar, en lugar de indicar elcontent.
En caso de usar una plantilla, dejan de ser requeridos los campos from, reply_to, subject y content. En caso de indicar alguno de ellos, sus valores reemplazarán a los definidos en la plantilla.attachments
: Array de objects, opcional.file_name
: String, requerido. Nombre del archivo adjunto.mime_type
: String, requerido. Tipo mime del archivo adjunto.data
: String, requerido. Contenido del archivo adjunto en base64.
headers
: Object, opcional. Mapa string-string con headers adicionales a incluir.recipients
: Array de objetos, requerido. Debe contener al menos un elemento.to
: Object, requerido. Email y nombre del destinatario.email
: String, requerido.name
: String, opcional.
cc
: Array de objects, opcional. Listado de destinatarios en copia.email
: String, requerido.name
: String, opcional
bcc
: Array de objects, opcional. Misma estructura que el cc. Listado de destinatarios en copia oculta.substitutions
: Object, opcional. Modelo de reemplazo asociado a este destinatario.custom_args
: Object, opcional. Mapa string-string con información de identificación y seguimiento. Se informarán junto con los eventos de monitoreo.tags
: Array de strings, opcional. Etiquetas de identificación y seguimiento de este batch. Se informarán junto con los eventos de monitoreo.
substitutions
: Object, opcional. Modelo de reemplazo asociado a todo el batch.tracking
: Object, opcional.open
: Object, opcional.enable
: Boolean, opcional, default:true
. Activar monitoreo de aperturas.
click
: Object, opcional.enable
: Boolean, opcional, default:true
Activar monitoreo de clicks.
ganalytics
: Object, opcional. Códigos de seguimiento para Google Analytics.utm_source
: String, opcional.utm_medium
: String, opcional.utm_campaign
: String, opcional.utm_content
: String, opcional.utm_term
: String, opcional.
batch_code
: String, opcional. Identificador alfanumérico (se limpan todos los caracteres que no sean [a-z0-9]).tags
: Array de strings, opcional. Etiquetas de identificación y seguimiento de este batch. Se informarán junto con los eventos de monitoreo.launch_date
: Fecha. Posponer el envío de este batch hasta la fecha y hora indicadas. Si no se indica se envía en forma inmediata.
Este objeto JSON incluye todas las opciones mencionadas.
Cuando es necesario hacer un gran número de requests, es altamente recomendable mantener las conexiones HTTP abiertas usando keep-alive. Esto evita todo el overhead que se introduce al establecer las conecciones TCP. En las pruebas realizadas se vieron incrementos de ~5x en los requests por segundo alcanzados.
Última actualización