emailManager

Crie a sua própria

Enviar e-mails transacionais através do emailmanager é simples como enviar uma requisição HTTP Post para um Web-service. "Uma linha de código fala mais do que mil palavras". O exemplo abaixo envia uma mensagem diretamente através de nossa API. Execute em seu console (Mac ou Linux) e aguarde o retorno do resultado.

$: curl -X POST "http://trans.emailmanager.com/email" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Emailmanager-Server-Token: f21E3b-ri5lN9-k5hT6D-nC7kJ3" \
-v \
-d '{"From" : "remetente@dominio.com.br", "To" : "destinatario@dominio.com.br", "Subject" : "Teste Transacional", "HtmlBody" : "<html><body>Olá usuário do <strong>emailmanager</strong>.</body></html>"}'

Note que você pode utilizar também a encriptação SSL para envio do e-mail usando https://trans.emailmanager.com/email.

Cabeçalho de autenticação

Para se autenticar com a API Transacional, você precisa enviar o Token de acesso de seu Servidor no cabeçalho HTTP, como apresentado abaixo:

X-Emailmanager-Server-Token: sua-chave-da-api

O valor do Token de acesso diferencia em maiúsculas e minúsculas (case-sensitive). Caso você efetue uma requisição para a API com um cabeçalho incorreto ou incompleto, você receberá a resposta HTTP: 401 (Unauthorized).

Formato da mensagem

O API Transacional do emailmanager suporta mensagens no formato JSON. O formato da mensagem deve ser a seguinte:

{
"From" : "remetente@dominio.com.br",
"To" : "destinatario@dominio.com.br",
"Subject" : "Teste Transacional",
"HtmlBody" : "<b>Olá</b>",
"TextBody" : "Olá",
"ReplyTo" : "retorno@dominio.com.br"
}

A mensagem codificada em JSON deve ser passada no corpo da requisição. From, To e ReplyTo também aceitam "Nome da Conta" <remetente@dominio.com.br>.

Você deve providenciar "HtmlBody" para mensagens formatadas em Html, "TextBody" para texto, ou ambos para formato multipart. Multipart envia o Html em conjunto com a versão texto para clientes que não suportam Html.

  1. O e-mail do remetente (From) deve possuir uma conta de envio cadastrada e confirmada no sistema. Caso contrário você receberá uma resposta HTTP: 422 (Unprocessable Entity).

  2. É possivel sobreescrever o Nome na assinatura de envio através de API. Isso é util se você quiser utilizar alguma forma de identificação nos e-mails enquanto mantém o seu endereço de e-mail. Apenas passe o nome no parâmetro From, ex: "Atendimento" <contato@emailmanager.com>.

  3. Você pode passar vários destinatários no campo "To". Separe os endereços utilizando vírgula ou ponto-e-vírgula. Note que o emailmanager tem um limite de vinte destinatários por mensagem no total. Você precisa cuidar para não ultrapassar este limite. Do contrário será retornado um erro.

Sucesso

Se tudo ocorrer corretamente, você receberá uma mensagem de retorno no formato JSON similar ao exibido abaixo:

{
"ErrorCode" : 0,
"Message" : "OK",
"MessageID" : "nC7kJ3-ri5lN9-f21E3b-k5hT6D",
"SubmittedAt" : "2010-11-26T12:01:05",
"To" : "destinatario@dominio.com.br"
}

Note o valor da propriedade MessageID. Você pode registrá-lo em seu sistema e usá-lo para associar a mensagem que foi enviada para posterior consulta à erros ou estatísticas de envio.

Envio em massa

Mesmo com o emailmanager estando focado em envio de e-mails transacionais, entendemos que há desenvolvedores com volumes maiores ou limitações de tempo de processamento necessário para enviar suas mensagens uma-a-uma. Para facilitar este processo nós fornecemos uma possibilidade além, que lhe permite enviar até 500 mensagens para a API Transacional do emailmanager em uma única requisição.

O formato da mensagem em lote é uma lista, em JSON, contendo solicitações de várias mensagens para envio, como no exemplo a seguir:

$: curl -X POST "http://trans.emailmanager.com/email/batch" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Emailmanager-Server-Token: f21E3b-ri5lN9-k5hT6D-nC7kJ3" \
-v \
-d '[{"From" : "remetente@dominio.com.br", "To" : "destinatario1@dominio.com.br", "Subject" : "Teste Transacional #1", "HtmlBody" : "<html><body>Olá usuário do <strong>emailmanager</strong>.</body></html>"},{"From" : "remetente@dominio.com.br", "To" : "destinatario2@dominio.com.br", "Subject" : "Teste Transacional #2", "HtmlBody" : "<html><body>Olá usuário do <strong>emailmanager</strong>.</body></html>"}]'

Observe que você também pode usar a criptografia SSL para efetuar as requisições pelo endereço https://trans.emailmanager.com/email/batch.

Da mesma forma, você receberá uma matriz em JSON contendo cada uma das respostas para as mensagens que você enviou em sua chamada de lote:

[ {
"ErrorCode" : 0,
"Message" : "OK",
"MessageID" : "nC7kJ3-ri5lN9-f21E3b-k5hT6D",
"SubmittedAt" : "2010-11-26T12:01:05",
"To" : "destinatario1@dominio.com.br"
},
{
"ErrorCode" : 0,
"Message" : "OK",
"MessageID" : "ri5lN9-nC7kJ3-k5hT6D-f21E3b",
"SubmittedAt" : "2010-11-26T12:01:05",
"To" : "destinatario2@dominio.com.br"
},
]

Códigos de resposta HTTP

200 - Success
Tudo ocorreu como deveria.

401 - Unauthorized
Token de acesso no cabeçalho não informado ou incorreto.

422 - Unprocessable Entity
Algum problema ocorreu com a mensagem durante o processamento (JSON mal-formatado, campos incorretos, base inativa). Neste caso, o corpo da resposta conterá um JSON {ErrorCode: 405, Message: "detalhes"} com um código de erro e uma mensagem contendo os detalhes sobre o ocorrido.

500 - Internal Server Error
Ocorreu algum erro interno durante o envio da mensagem e o mesmo não finalizado. Nestes casos, você deve tentar efetuar um novo envio dentro de instantes. Nós somos notificados em tais casos, para caso o problema seja em nossos servidores, possamos corrigir com urgência.

Códigos de erro da API

Sempre que a API Transacional do emailmanager detecta um erro de entrada, ela irá retornar um cabeçalho HTTP 422, juntamente com uma mensagem em JSON contendo os detalhes do erro: {ErrorCode: 405, Message: "detalhes"}.

O campo ErrorCode pode ser usado para classificar o tipo de erro. Abaixo estão todos os códigos de erro retornados pela API:

0 – Bad or missing API token
Sua requisição não possui o Token de acesso correto no cabeçalho X-Emailmanager-Server-Token da requisição.

300 – Invalid email request
Falha na validação dos dados de requisição que foram passados, em JSON.

400 – Sender signature not found
Você está tentando enviar um e-mail com um endereço From que não possui uma conta de envio cadastrada.

401 – Sender signature not confirmed
Você está tentando enviar e-mail com um endereço From que possui uma conta de envio não confirmada.

402 – Invalid JSON
Os dados da requisição em JSON são sintaticamente incorretos.

403 – Incompatible JSON
Os dados da requisição em JSON são sintaticamente corretos, mas não correspondem à uma requisição válida.

405 – Not allowed to send
Você está sem créditos ou seu servidor está inativo.

406 – Inactive recipient
Você tentou enviar um e-mail para um destinatário marcado como inativo. Destinatários inativos são aqueles que geraram um Erro Permanente ou efetuaram uma denúncia de spam.

407 – Bounce not found
Você solicitou os detalhes de um bounce pelo ID, mas não conseguimos encontrar o registro delete em nosso banco de dados.

408 – Bounce query exception
Você forneceu um parâmetro incorreto para a filtragem dos bounces.

409 – JSON required
Sua requisição HTTP não tem os cabeçalhos Accept ou Content-Type definidos como application/json.

410 – Too many batch messages
Sua requisição contém mais de 500 mensagens a serem processadas.

410 – Too many recipients per message
Sua requisição contém uma mensagem com mais de 20 destinatários.