Nombre del servicio
POST https://api.envialosimple.email/api/v1/mail/send
Método de autenticación
Authorization: Bearer <clave API>
Para más detalle de cómo generar la clave API ver: Cómo enviar emails desde la API
Parámetros
Nombre
|
Tipo
|
Descripción
|
from
|
string
|
Remitente del email. Requerido excepto si el contenido es una plantilla y tiene cargados estos valores en la cabecera. Este campo puede informarse con varios formatos:
info@empresa.com
Empresa <info@empresa.com>
{"email": "info@empresa.com "}
{"email": "info@empresa.com ", "name": "Empresa"}
|
to
|
string
|
Destinatario/s del email. Requerido. El destinatario puede informarse con varios formatos: En el caso de múltiples destinatarios, deberán informase con el mismo formato pero en un array. |
reply_to
|
string
|
Responder a. Opcional. Si el contenido es una plantilla, y tiene cargados estos valores en la cabecera, se toma ese valor.
|
subject
|
string
|
Asunto del correo. Requerido.
|
preview_text
|
string
|
Texto de la vista previa del email.
|
html
|
string
|
Contenido del email en html.
Requerido informar el contenido en html o text o templateID.
|
text
|
string
|
Contenido del email en texto plano.
Requerido informar el contenido en html o text o templateID.
|
templateID
|
string
|
Contenido del email desde una plantilla. Debe informarse el ID de la plantilla.
Ver servicio “Listar plantillas” para obtener un detalle de las mismas.
Requerido informar el contenido en html o text o templateID. |
attachments
|
object[]
|
Archivos adjuntos al email. Opcional.
En el contenido del correo electrónico podrán adjuntarse como archivos normales o dejarlos embebidos en el código usando la sintaxis dentro del código html
<img src="cid:id"/>. |
attachments.*.disposition
|
string
|
Tipo de adjuntos. Requerido. Valores posibles:
inline -> Embebidos en el diseño. Sólo para los contenidos html, no puede usasrse en plantillas.
attachment -> Adjuntos al email (comunes)
|
Attachments.*.id
|
string
|
Id del adjunto para incorporarlo embebido dentro del html.
Sólo requerido para attachments.disposition = inline.
|
attachments.*.filename
|
string
|
Nombre del archivo adjunto. Requerido.
|
attachments.*.disposition
|
string
|
Tipo de adjuntos. Requerido. Valores posibles:
inline -> Embebidos en el diseño
attachment -> Adjuntos normales (debajo del email)
|
attachments.*.content
|
string
|
Contenido del adjunto en Base64. Máximo: 15MB. Requerido.
|
context
|
object[]
|
Variables. Opcional. (Recomendada) Pueden incluirse todo tipo de variables: escalares, arreglos, objetos, etc. Ejemplo: "context": { "nombre": "Juan", "productos": [ { "nombre": "Producto1", "precio": 3500 }, { "nombre": "Producto2", "precio": 8500 }] } |
substitutions
|
object[]
|
Variables. Opcional. Estos valores reemplazarán las variables definidas en el contenido. Se puede utilizar en los campos de asunto, html y texto. La etiqueta tendrá el nombre de la variable y dentro el valor con el cual deberá reemplazarse. Solo pueden incluirse variables escalares. Ejemplo: "substitutions": { "nombre": "Juan", "apellido": "Pérez", "monto": "$8500" }
Observaciones: Se recomienda usar “context” para informar las variables ya que es más completo debido a que acepta todo tipo de variables. Pero también se acepta “substitutions” para mantener la retrocompatibilidad con versiones anteriores de la API en las que solo podían utilizarse variables escalares. |
Ejemplos
-
curl --location 'https://api.envialosimple.email/api/v1/mail/send' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYX..jE2NzgzOTA0MjYsImV' \
--header 'Content-Type: application/json' \
--data-raw '{
"from": "notificaciones@empresa.com",
"to": "cliente@prueba.com",
"subject": "Hola {{nombre}} ya está disponible tu factura",
"html": "<html><img src=\"cid:logo\"/> <br> <h4> <b>Hola {{nombre}} {{apellido}}</b> </h4> <p> Adjuntamos tu factura del mes {{mes}} </p> </html>",
"substitutions": {
"nombre": "Juan",
"apellido": "Pérez",
"mes": "02/2023"
},
"attachments": [
{
"id": "logo",
"filename": "logo.jpg",
"disposition": "inline",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
},
{
"disposition": "attachment",
"filename": "factura.doc",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
}
]
}' -
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.envialosimple.email/api/v1/mail/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"from": "notificaciones@empresa.com",
"to": "cliente@prueba.com",
"subject": "Hola {{nombre}} ya está disponible tu factura",
"html": "<html><img src=\\"cid:logo\\"/> <br> <h4> <b>Hola {{nombre}} {{apellido}}</b> </h4> <p> Adjuntamos tu factura del mes {{mes}} </p> </html>",
"substitutions": {
"nombre": "Juan",
"apellido": "Pérez",
"mes": "02/2023"
},
"attachments": [
{
"id": "logo",
"filename": "logo.jpg",
"disposition": "inline",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
},
{
"disposition": "attachment",
"filename": "factura.doc",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYX..jE2NzgzOTA0MjYsImV',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
-
import requests
import json
url = "https://api.envialosimple.email/api/v1/mail/send"
payload = json.dumps({
"from": "notificaciones@empresa.com",
"to": "cliente@prueba.com",
"subject": "Hola {{nombre}} ya está disponible tu factura",
"html": "<html><img src=\"cid:logo\"/> <br> <h4> <b>Hola {{nombre}} {{apellido}}</b> </h4> <p> Adjuntamos tu factura del mes {{mes}} </p> </html>",
"substitutions": {
"nombre": "Juan",
"apellido": "Pérez",
"mes": "02/2023"
},
"attachments": [
{
"id": "logo",
"filename": "logo.jpg",
"disposition": "inline",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
},
{
"disposition": "attachment",
"filename": "factura.doc",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
}
]
})
headers = {
'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYX..jE2NzgzOTA0MjYsImV',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text) -
var axios = require('axios');
var data = JSON.stringify({
"from": "notificaciones@empresa.com",
"to": "cliente@prueba.com",
"subject": "Hola {{nombre}} ya está disponible tu factura",
"html": "<html><img src=\"cid:logo\"/> <br> <h4> <b>Hola {{nombre}} {{apellido}}</b> </h4> <p> Adjuntamos tu factura del mes {{mes}} </p> </html>",
"substitutions": {
"nombre": "Juan",
"apellido": "Pérez",
"mes": "02/2023"
},
"attachments": [
{
"id": "logo",
"filename": "logo.jpg",
"disposition": "inline",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
},
{
"disposition": "attachment",
"filename": "factura.doc",
"content": "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0Nvb…"
}
]
});
var config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.envialosimple.email/api/v1/mail/send',
headers: {
'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYX..jE2NzgzOTA0MjYsImV',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});ode
Errores
Error | Descripción |
json_invalid | El JSON enviado en el body es inválido. |
domain_invalid | Remitente incorrecto. El dominio no es el autorizado. |
from_required | Es requerido informar el remitente del email (from). |
from_invalid | El campo “from” tiene un valor de email inválido. |
from_email_invalid | Es requerido informar el remitente del email: (from.email) |
from_email_required | El campo “from.email” tiene un valor de email inválido. |
to_required | Es requerido indicar el destinatario del email (to). |
to_invalid | El campo “to” tiene un valor de email inválido. |
to_array_invalid | El campo “to” es un array inválido. |
to_email_required | Es requerido indicar el destinatario del email (to.email). |
to_email_invalid | El campo “to.email” tiene un valor de email inválido. |
reply_to_is_email | El campo “reply_to” tiene un valor de email inválido. |
subject_required | Es requerido indicar el asunto del email (subject). |
preview_text_too_large | El campo "preview_text" supera la cantidad máxima de caracteres permitidos (150). |
text_html_templateID_required | Es requerido indicar el contenido del email: html y/o text o plantilla. |
text_too_large | El campo "text" supera la cantidad máxima de caracteres permitidos (1M). |
html_too_large | El campo "html" supera la cantidad máxima de caracteres permitidos (2M). |
attachments_is_array | Los adjuntos deben informarse en un array. |
attachments_item_is_object | Cada ítem del array de adjuntos debe ser un objeto. |
attachments_item_disposition_required | Es requerido indicar el tipo de adjunto (disposition). |
attachments_item_disposition_invalid | El campo “disposition” del adjunto es inválido. Ver los posibles valores. |
attachments_item_content_required | Es requerido indicar el contenido (content) para el adjunto. |
attachments_item_content_too_large | El campo "content" supera la cantidad máxima de caracteres permitidos (15M) para el adjunto. |
attachments_item_filename_required | Es requerido indicar el nombre del archivo (filename) para el adjunto. |
attachments_item_content_invalid | El campo "content" no contiene un string base64 válido. |
attachments_item_id_required | Es requerido indicar el id (id) del adjunto cuando disposition es “inline”. |
substitutions_is_object | El campo “substitutions” debe ser un objeto. |
substitutions_item_key_too_large | El nombre de la variable supera el límite establecido de N caracteres (64). |
substitutions_item_value_too_large | El valor de la variable supera el límite establecido de N caracteres (1024). |
templateID_exclusive | Sólo debe indicarse un único tipo de contenido: html y/o text o plantilla. |
template_not_found | No se encontró la plantilla indicada. |
context_exists_substitutions | Sólo debe indicarse uno de los campos: 'substitutions' o 'context'. |
context_is_object | El campo context debe ser un objeto. |
context_too_depth | El objecto context admite hasta 10 niveles anidados. |
to_array_too_large | Como máximo pueden enviarse a 10 destinatarios. |
domain_not_allowed | El dominio no está permitido. |
domain_blocked | El dominio está bloqueado. |
domain_send_disabled | El dominio tiene los envíos detenidos. |
account_hourly_limit_reached | Se alcanzó el límite de envíos por hora. |
account_insufficient_credits | No hay más créditos disponibles. |
account_suspended | La cuenta está suspendida. |
Comentarios
0 comentarios
El artículo está cerrado para comentarios.