Esta documentação detalha os endpoints disponíveis na API da mailgrid, permitindo que você integre facilmente os serviços de envio de e-mails em suas aplicações. Aqui, você encontrará informações sobre os parâmetros necessários, formatos de requisição e códigos de resposta, além de exemplos práticos para diversas linguagens, como PHP, Java e Ruby.
URL para a chamada do endpoint
URL
https://api.mailgrid.net.br/
A partir dessa URL base, você pode acessar diferentes funcionalidades adicionando caminhos específicos, como /check para verificar o status de seu domínio ou /consolidate para obter relatório de dados consolidado.
Requisitos Técnicos
Formato: Envie os dados via POST, codificados em JSON.
Header: Inclua Content-Type: application/json em todas as requisições.
Sandbox
Não oferecemos um ambiente isolado de sandbox. No entanto, cada conta possui até 5000 envios gratuitos para testes na API; Desta forma você pode testar a integração diretamente em nosso ambiente de produção com segurança e sem comprometer seus limites. Recomendamos que faça testes iniciais com um número reduzido de envios para garantir que tudo esteja funcionando perfeitamente.
Códigos HTTP das respostas
Nossa API utiliza códigos de status HTTP padrão para indicar o resultado das requisições. Respostas com status 200 indicam que a requisição foi processada corretamente, mas com diferentes códigos internos para indicar o sucesso ou falha de cada operação. Os códigos 200 podem representar tanto o sucesso quanto falhas, dependendo do código específico retornado. Não há erros 400 ou 500 na nossa API, todos os erros são tratados com diferentes status dentro do código 200.
Código
Descrição
Solução
200
MSG ENVIADA - A mensagem foi enviada com sucesso.
HTTP 200 – OK
Nenhuma ação necessária.
204
ERRO DE ENVIO - Falha na conexão SMTP.
HTTP 502 – Bad Gateway
Verifique as configurações do SMTP e tente novamente.
208
FALTAM PARÂMETROS - Um ou mais parâmetros obrigatórios estão ausentes.
HTTP 400 – Bad Request
Verifique se todos os parâmetros obrigatórios foram enviados corretamente.
207
ERRO: FALHA DE AUTENTICAÇÃO - Credenciais inválidas.
HTTP 401 – Unauthorized
Verifique usuário e senha SMTP informados.
211
ERRO: ENCODING INVÁLIDO - O parâmetro mensagemEncoding foi informado incorretamente.
HTTP 422 – Unprocessable Entity
Utilize base64 ou quoted-printable.
212
ERRO: TIPO INVÁLIDO - O parâmetro mensagemTipo foi informado incorretamente.
HTTP 422 – Unprocessable Entity
Utilize html ou text.
215
ERRO: TAMANHO EXCEDIDO - O e-mail ou anexo ultrapassou o limite permitido.
HTTP 413 – Payload Too Large
Reduza o tamanho do e-mail ou dos anexos.
221
ERRO: LIMITE DE CONTATOS EXCEDIDO - O número de destinatários ultrapassou o máximo permitido.
HTTP 413 – Payload Too Large
Reduza a quantidade de destinatários para até 100.
222
ERRO: LIMITE DE CONTATOS EXCEDIDO - O número de contatos no campo emailDestinoCopia ultrapassou o permitido.
HTTP 413 – Payload Too Large
Reduza o número de destinatários no campo CC.
223
ERRO: LIMITE DE CONTATOS EXCEDIDO - O número de contatos no campo emailDestinoCopiaOculta ultrapassou o permitido.
HTTP 413 – Payload Too Large
Reduza o número de destinatários no campo BCC.
227
ERRO: FORMATO INCORRETO - O campo emailDestino não está no formato correto.
HTTP 400 – Bad Request
Certifique-se de que ele seja um array.
228
ERRO: FORMATO INCORRETO - O campo emailDestinoCopia não está no formato correto.
HTTP 400 – Bad Request
Certifique-se de que ele seja um array.
229
ERRO: FORMATO INCORRETO - O campo emailDestinoCopiaOculta não está no formato correto.
HTTP 400 – Bad Request
Certifique-se de que ele seja um array.
Exemplo de resposta para HTTP 502:
HTTP/1.1 502 Bad Gateway
Content-Type: application/json
Nossa API permite até 50 chamadas simultâneas por segundo, por endereço ip. É importante respeitar esse limite para garantir o desempenho ideal e evitar qualquer impacto no funcionamento da API.
Em alguns endpoints, podemos impor limites adicionais para proteger a qualidade do serviço e evitar sobrecarga nos nossos sistemas. Caso o número de requisições ultrapasse o limite permitido, as chamadas podem ser temporariamente restringidas.
Recomendamos que você controle o ritmo de envio das requisições para garantir que tudo funcione corretamente e de forma eficiente.
Importante
Também é possível usar o protocolo HTTP caso prefira. No entanto, é importante garantir que as chamadas da API sejam feitas utilizando o método POST, pois é o método correto para enviar dados e interagir com nossos endpoints.
Autenticação
Para realizar determinadas requisições à nossa API, como envio de emails, é necessário fornecer as credenciais de autenticação no corpo da requisição, utilizando os parâmetros usuario_smtp e senha_smtp. Essas credenciais correspondem ao usuário e senha fornecidos durante a abertura de sua conta e são as mesmas utilizadas para autenticação SMTP.
Para outras requisições, a autenticação é feita com o TOKEN fornecido em sua conta, localizado no painel do cliente.
usuario_smtp
Nome de usuario fornecido pela mailgrid, utilizado para enviar e-mails também pelo SMTP.
senha_smtp
Senha associada ao usuario_smtp, usada para autenticação no servidor SMTP da mailgrid.
token_auth
Token seguro fornecido no painel de cliente.
É importante garantir que esses dados estejam corretos em todas as requisições, já que qualquer falha de autenticação impedirá o envio de e-mails. Para mais informações sobre a configuração e utilização da API, consulte a documentação completa.
Atenção para as requisições que exigem o uso de um token de autenticação. Esse token deve ser incluído no cabeçalho da requisição no seguinte formato:
<?php
// Defina o endpoint para checar o status do domínio
$url = "https://api.mailgrid.net.br/domain/check/";
// Seu token de autenticação (substitua pelo real)
$token = "SEU_TOKEN_AQUI";
// Domínio a ser consultado
$data = [
"dominio" => "seudominio.com.br"
];
// Inicializa o cURL
$ch = curl_init($url);
// Configuração dos headers com autenticação Bearer
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $token",
"Content-Type: application/json"
]);
// Configuração da requisição
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
// Executa a requisição
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Exibe a resposta
echo "HTTP Code: " . $httpCode . "\n";
echo "Resposta:\n";
echo $response;
?>
Certifique-se de enviar esses dados via método POST, codificados em JSON, e incluir o cabeçalho Content-Type: application/json. Sem credenciais válidas ou um token apropriado, as requisições para os endpoints protegidos serão recusadas.
Envio de emails
Este recurso permite que você integre facilmente seu sistema ao nosso SMTP dedicado, garantindo envios de e-mails rápidos e confiáveis. A seguir, você encontrará tudo o que precisa saber para começar.
Endpoint para envio
URL
https://api.mailgrid.net.br/sendmail/
Importante: O Endpoint legado, https://api.mailgrid.net.br/send/ permanece ativo e operacional, mas não recebe mais atualizações.
Atenção
Método: Todas as chamadas devem ser feitas via POST.
Protocolo alternativo: Use http:// se preferir (embora HTTPS seja recomendado por segurança).
Porta SMTP: Todos os envios são processados pela porta 587.
Codificação: Parâmetros e conteúdos devem ser enviados em UTF-8.
Parâmetros
Abaixo estão os parâmetros necessários para realizar envios. Os campos marcados como "Obrigatório" devem sempre ser incluídos:
Parâmetro
Descrição
Obrigatório
host_smtp
Endereço do servidor SMTP fornecido pela mailgrid
Sim
usuario_smtp
Usuário para autenticação SMTP
Sim
senha_smtp
Senha para autenticação SMTP
Sim
emailRemetente
E-mail do remetente
Sim
nomeRemetente
Nome do remetente
Não
emailReply
E-mail para respostas (Reply-To)
Não
emailDestino
Array de e-mails dos destinatários (máx. 100 por chamada)
Sim
nomeDestino
Nome do destinatário
Não
emailDestinoCopia
Array de e-mails em cópia (CC, máx. 100 por chamada)
Não
emailDestinoCopiaOculta
Array de e-mails em cópia oculta (BCC, máx. 100 por chamada)
Não
assunto
Assunto do e-mail
Sim
mensagem
Conteúdo do e-mail (suporta texto ou HTML)
Sim
mensagemAlt
Versão em texto puro do e-mail (AltBody)
Não
mensagemTipo
Tipo do conteúdo: html ou text (padrão: html se não especificado)
Não
mensagemEncoding
Codificação: base64 ou quoted-printable (padrão: base64 se omitido)
Não
mensagemAnexos
Array com anexos codificados em base64
Não
variaveis
Array com variáveis personalizadas do cliente
Não
Enviando anexos
Os arquivos anexos devem ser enviados no formato Base64, garantindo um transporte seguro e compatível com o padrão textual do JSON. Essa codificação segue normas internacionais estabelecidas pelas RFCs 2045 e 4648, que definem as especificações MIME e a codificação Base64. Essa abordagem assegura a integridade do conteúdo durante a transmissão e permite o correto tratamento dos anexos na composição do email final.
name
Nome do arquivo (ex.: imagem.jpg)
type
Tipo MIME do arquivo (ex.: image/jpeg).
content
Conteúdo do arquivo codificado em base64.
Requisitos Técnicos
Formato: Envie os dados via POST, codificados em JSON.
Header: Inclua Content-Type: application/json em todas as requisições.
Limite de Tamanho: O total da mensagem (incluindo anexos e cabeçalhos) não deve exceder 50 MB.
Exemplo de Chamada e Resposta
Exemplo de Requisição
{
"host_smtp": "smtpxxxxxxxx.mailgrid.net.br",
"usuario_smtp": "apitestexxxxxx@mailgrid.net.br",
"senha_smtp": "xxxxxxxxxxxxxxxx",
"emailRemetente": "teste@mailgrid.net.br",
"nomeRemetente": "mailgrid",
"emailDestino": ["teste@mailgrid.net.br", "postmaster@mailgrid.net.br"],
"assunto": "Teste da API JSON em Produção",
"mensagemAnexos": [
{
"name": "logo.png",
"type": "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAHUlEQVR4nGP8//8/A7mAiWydo5pHNY9qHtVMFc0AnKADJXYG/XsAAAAASUVORK5CYII="
},
{
"name": "logo2.png",
"type": "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAHUlEQVR4nGP8//8/A7mAiWydo5pHNY9qHtVMFc0AnKADJXYG/XsAAAAASUVORK5CYII="
}
],
"mensagem": "Mensagem de teste da API - Testando envio em HTML",
"mensagemTipo": "html",
"mensagemEncoding": "base64",
"mensagemAlt": "Mensagem de teste da API JSON"
}
Relatórios: Mensagens enviadas com sucesso são registradas automaticamente no painel de relatórios, com atualização aproximadamente, a cada 5 minutos.
Suporte: Em caso de erros persistentes, como falhas de conexão SMTP (código 204), entre em contato com nossa equipe de suporte.
Pronto para começar? Integre agora e aproveite a potência do nosso SMTP dedicado!
Variáveis personalizadas
As variáveis personalizadas permitem que você personalize o conteúdo do e-mail de acordo com as suas necessidades. Você pode enviar um array de variáveis que serão substituídas no corpo da mensagem antes do envio.
Exemplo: {{nome}}, {{idade}}, {{cidade}}, etc.
Você pode passar vários arrays de variáveis personalizadas, e elas serão mescladas no corpo da mensagem, com ordem posicional ao destinatário. Assim, se você enviar uma única mensagem para 100 destinatários, por exemplo, cada destinatário verá suas próprias informações nas variáveis.
Exemplo chamada com múltiplas variáveis
{
"emailDestino": [
"mailgridteste@gmail.com",
"postmaster@mailgrid.net.br"
],
"variaveis": [
{
"nome": "João da Silva",
"pedido": "A123",
"produto": "Câmera"
},
{
"nome": "Maria Oliveira",
"pedido": "B456",
"produto": "Notebook"
}
],
"assunto": "Olá {{nome}}, seu pedido {{pedido}} foi aprovado",
"mensagem": "<p>Olá {{nome}},<br>Seu pedido {{pedido}} referente ao produto {{produto}} foi aprovado com sucesso!</p>",
"mensagemAlt": "Olá {{nome}}, Seu pedido {{pedido}} foi aprovado!",
"mensagemEncoding": "base64",
"mensagemTipo": "html",
"host_smtp": "HOST-SMTP",
"usuario_smtp": "USUARIO-SMTP",
"senha_smtp": "SENHA-SMTP",
"emailRemetente": "EMAIL-REMETENTE",
"nomeRemetente": "NOME-REMETENTE"
}
Exemplos de código
// Inicializa a sessão cURL
$curl = curl_init();
// Define as opções cURL usando um array associativo
curl_setopt_array($curl, array(
// URL da API mailgrid para envio de email
CURLOPT_URL =>'https://api.mailgrid.net.br/sendmail/',
// Faz com que o cURL retorne a resposta como string
CURLOPT_RETURNTRANSFER =>true,
// Define a codificação de resposta para ser aceita
CURLOPT_ENCODING =>'',
// Define o número máximo de redirecionamentos
CURLOPT_MAXREDIRS =>10,
// Define o tempo máximo de espera da requisição
CURLOPT_TIMEOUT =>0,
// Permite o cURL seguir redirecionamentos automaticamente
CURLOPT_FOLLOWLOCATION =>true,
// Define a versão do protocolo HTTP a ser usado
CURLOPT_HTTP_VERSION =>CURL_HTTP_VERSION_1_1,
// Define o método da requisição como POST
CURLOPT_CUSTOMREQUEST =>'POST',
// Define os dados do corpo da requisição em formato JSON
CURLOPT_POSTFIELDS => '{
"host_smtp": "HOST-SMTP", // Substitua por seu host SMTP
"usuario_smtp": "USUARIO-SMTP", // Substitua pelo usuário SMTP
"senha_smtp": "SENHA-SMTP", // Substitua pela senha SMTP
"emailRemetente": "EMAIL-REMETENTE", // Email do remetente
"nomeRemetente": "NOME-REMETENTE", // Nome do remetente
"emailDestino": ["destinatario1@dominio.com.br", "destinatario2@dominio.com.br"], // Emails dos destinatários
"assunto": "Teste de envio com anexo via API JSON", // Assunto do email
"mensagemAnexos": [
{
"name": "anexoexemplo.pdf", // Nome do arquivo
"type": "application/pdf", // Tipo MIME do arquivo
"content": "UEAEAAAAAAAAAAAAAAAAAAAAA/..." // Conteúdo do arquivo codificado em base64
}
],
"mensagem": "Mensagem de teste da API com anexo. Atenção, o arquivo codificado acima não funciona, é um exemplo."
"mensagemTipo": "html", // Tipo de mensagem (HTML)
"mensagemEncoding": "base64", // Codificação do arquivo anexo (base64)
"mensagemAlt": "Mensagem de teste da API com anexo. Atenção, o arquivo codificado acima não funciona, é um exemplo."
}',
// Define o cabeçalho da requisição, informando que o corpo está em JSON
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
// Executa a requisição cURL e armazena a resposta
$response = curl_exec($curl);
// Fecha a sessão cURL
curl_close($curl);
// Exibe a resposta recebida da API
echo $response;
import requests
from requests.structures import CaseInsensitiveDict
# URL do endpoint da API para envio de emails
url = "https://api.mailgrid.net.br/sendmail/"
# Criando um dicionário de cabeçalhos para a requisição HTTP
headers = CaseInsensitiveDict()
headers["Content-Type"] = "application/json" # Definindo o tipo de conteúdo como JSON
# Dados para a requisição POST - Incluindo detalhes do SMTP, remetente, destinatário, anexos e mensagem
data = """
{
"host_smtp": "HOST-SMTP",
"usuario_smtp": "USUARIO-SMTP",
"senha_smtp": "SENHA-SMTP",
"emailRemetente": "EMAIL-REMETENTE",
"nomeRemetente": "NOME-REMETENTE",
"emailDestino": ["dev@mailgrid.net.br", "postmaster@mailgrid.net.br"],
"assunto": "Teste da API JSON com anexo",
"mensagemAnexos": [
{
"name": "pixel.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQY..."
},
{
"name": "pixel2.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQY..."
}
],
"mensagem": "Mensagem de teste da API com anexos. Testando anexos de html no envio da api",
"mensagemTipo": "html",
"mensagemEncoding": "quoted-printable",
"mensagemAlt": "mensagem de teste da API JSON com anexos"
}
"""
# Fazendo a requisição POST para o endpoint com os cabeçalhos e os dados JSON
resp = requests.post(url, headers=headers, data=data)
# Verificando o status da resposta e exibindo o código de status HTTP
print(resp.status_code)
# Se a resposta for bem-sucedida (status code 200), pode-se processar o conteúdo da resposta
if resp.status_code == 200:
print("Requisição bem-sucedida!")
print(resp.json()) # Exibe a resposta JSON da API
else:
print(f"Erro na requisição: {resp.text}") # Exibe o erro caso a requisição falhe
# Enviar um e-mail com anexos usando a API mailgrid com cURL
curl --location 'https://api.mailgrid.net.br/sendmail/' \
--header 'Content-Type: application/json' \
--data-raw '{
"host_smtp": "HOST-SMTP",
"usuario_smtp": "USUARIO-SMTP",
"senha_smtp": "SENHA-SMTP",
"emailRemetente": "EMAIL-REMETENTE",
"nomeRemetente": "NOME-REMETENTE",
"emailDestino": ["dev@mailgrid.net.br", "postmaster@mailgrid.net.br"],
"assunto": "Teste da API JSON com anexo",
"mensagemAnexos": [
{
"name": "pixel.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDA...."
},
{
"name": "pixel2.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDA...."
}
],
"mensagem": "Mensagem de teste da API com anexos. Testando anexos de html no envio da api",
"mensagemTipo": "html",
"mensagemEncoding": "quoted-printable",
"mensagemAlt": "mensagem de teste da API JSON com anexos"
}'
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
// URL do endpoint da API
private static readonly string apiUrl = "https://api.mailgrid.net.br/sendmail/";
// Método principal assíncrono
static async Task Main(string[] args)
{
// Cria a instância do HttpClient
using (var client = new HttpClient())
{
// Cria a requisição HTTP com o método POST para a URL do endpoint
var request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
// Dados do corpo da requisição, incluindo as informações do e-mail e anexos
var jsonContent = "{\r\n" +
" \"host_smtp\": \"HOST-SMTP\",\r\n" +
" \"usuario_smtp\": \"USUARIO-SMTP\",\r\n" +
" \"senha_smtp\": \"SENHA-SMTP\",\r\n" +
" \"emailRemetente\": \"EMAIL-REMETENTE\",\r\n" +
" \"nomeRemetente\": \"NOME-REMETENTE\",\r\n" +
" \"emailDestino\": [\"dev@mailgrid.net.br\",\"postmaster@mailgrid.net.br\"],\r\n" +
" \"assunto\": \"Teste da API JSON com anexo\",\r\n" +
" \"mensagemAnexos\": [\r\n" +
" {\r\n" +
" \"name\": \"pixel.jpg\",\r\n" +
" \"type\": \"image/jpeg\",\r\n" +
" \"content\": \"/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYIC...\"\r\n" +
" },\r\n" +
" {\r\n" +
" \"name\": \"pixel2.jpg\",\r\n" +
" \"type\": \"image/jpeg\",\r\n" +
" \"content\": \"/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYIC...\"\r\n" +
" ],\r\n" +
" \"mensagem\": \"Mensagem de teste da API com anexos. Testando anexos de html no envio da api\",\r\n" +
" \"mensagemTipo\": \"html\",\r\n" +
" \"mensagemEncoding\": \"quoted-printable\",\r\n" +
" \"mensagemAlt\": \"mensagem de teste da API JSON com anexos\"\r\n" +
" }";
// Define o conteúdo da requisição como JSON
var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
// Adiciona o conteúdo ao corpo da requisição
request.Content = content;
try
{
// Envia a requisição HTTP de forma assíncrona
var response = await client.SendAsync(request);
// Garante que a resposta tenha sido bem-sucedida (código de status 2xx)
response.EnsureSuccessStatusCode();
// Exibe o conteúdo da resposta da API
Console.WriteLine("Resposta da API:");
string responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
catch (HttpRequestException ex)
{
Console.WriteLine($"Erro ao fazer a requisição: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"Erro inesperado: {ex.Message}");
}
}
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class mailgridSendEmail
public static void main(String[] args) {
// Definindo a URL do endpoint da API
String apiUrl = "https://api.mailgrid.net.br/sendmail/";
// Dados do email a ser enviado em formato JSON
String data = "{\n" +
" \"host_smtp\": \"HOST-SMTP\",\n" +
" \"usuario_smtp\": \"USUARIO-SMTP\",\n" +
" \"senha_smtp\": \"SENHA-SMTP\",\n" +
" \"emailRemetente\": \"EMAIL-REMETENTE\",\n" +
" \"nomeRemetente\": \"NOME-REMETENTE\",\n" +
" \"emailDestino\": [\"dev@mailgrid.net.br\", \"postmaster@mailgrid.net.br\"],\n" +
" \"assunto\": \"Teste da API JSON com anexo\",\n" +
" \"mensagemAnexos\": [\n" +
" {\n" +
" \"name\": \"pixel.jpg\",\n" +
" \"type\": \"image/jpeg\",\n" +
" \"content\": \"/9j/4AAQSkZJRgABAQEBLAEsAAD/....\"\n" +
" },\n" +
" {\n" +
" \"name\": \"pixel2.jpg\",\n" +
" \"type\": \"image/jpeg\",\n" +
" \"content\": \"/9j/4AAQSkZJRgABAQEBLAEsAAD/....\"\n" +
" ],\n" +
" \"mensagem\": \" Mensagem de teste da API com anexos. Testando anexos de html no envio da api\",\n" +
" \"mensagemTipo\": \"html\",\n" +
" \"mensagemEncoding\": \"quoted-printable\",\n" +
" \"mensagemAlt\": \"mensagem de teste da API JSON com anexos\"\n" +
"}";
try {
URL url = new URL(apiUrl);
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setRequestProperty("Content-Type", "application/json");
byte[] out = data.getBytes(StandardCharsets.UTF_8);
try (OutputStream os = httpConnection.getOutputStream()) {
os.write(out);
}
int statusCode = httpConnection.getResponseCode();
System.out.println("Código de Status: " + statusCode);
try (BufferedReader in = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()))) {
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
System.out.println("Resposta da API:\n" + response.toString());
} catch (IOException e) {
System.out.println("Erro ao ler a resposta da API: " + e.getMessage());
}
httpConnection.disconnect();
} catch (IOException e) {
System.out.println("Erro na requisição HTTP: " + e.getMessage());
}
}
}
// URL do endpoint da API para envio de e-mail
const url = 'https://api.mailgrid.net.br/sendmail/';
// Definição dos dados que serão enviados na requisição (e-mail, anexos, etc)
const data = JSON.stringify({
"host_smtp": "HOST-SMTP",
"usuario_smtp": "USUARIO-SMTP",
"senha_smtp": "SENHA-SMTP",
"emailRemetente": "EMAIL-REMETENTE",
"nomeRemetente": "NOME-REMETENTE",
"emailDestino": ["dev@mailgrid.net.br", "postmaster@mailgrid.net.br"],
"assunto": "Teste da API JSON com anexo",
"mensagemAnexos": [
{
"name": "pixel.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD..."
},
{
"name": "pixel2.jpg",
"type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQEBLAEsAAD..."
}
],
"mensagem": "Mensagem de teste da API com anexos. Testando anexos de html no envio da api",
"mensagemTipo": "html",
"mensagemEncoding": "quoted-printable",
"mensagemAlt": "mensagem de teste da API JSON com anexos"
});
// Função assíncrona para enviar a requisição POST para a API
async function sendEmail() {
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: data,
});
if (!response.ok) {
throw new Error(`Erro na requisição: ${response.status} - ${response.statusText}`);
}
const text = await response.text();
console.log("Resposta da API:", text);
} catch (error) {
console.error("Erro ao enviar o e-mail:", error);
}
}
sendEmail();
# Importa a biblioteca HTTParty para fazer requisições HTTP
require 'httparty'
# Define a URL da API como uma constante para fácil manutenção
API_URL = 'https://api.mailgrid.net.br/sendmail/'
# Define os cabeçalhos da requisição (headers)
headers = {
'Content-Type' => 'application/json'
}
# Cria o corpo da requisição como um hash Ruby
body = {
'host_smtp' => 'HOST-SMTP',
'usuario_smtp' => 'USUARIO-SMTP',
'senha_smtp' => 'SENHA-SMTP',
'emailRemetente' => 'EMAIL-REMETENTE',
'nomeRemetente' => 'NOME-REMETENTE',
'emailDestino' => [
'destinatario1@dominio.com.br',
'destinatario2@dominio.com.br'
],
'assunto' => 'Teste de envio com anexo via API JSON',
'mensagemAnexos' => [
{
'name' =>'anexoexemplo.pdf',
'type' =>'application/pdf',
'content' =>'UEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAYH/...//Z'
}
],
'mensagem' = 'Mensagem de teste da API com anexo. O arquivo codificado acima não funciona, é um exemplo.',
'mensagemTipo' => 'html',
'mensagemEncoding' => 'base64',
'mensagemAlt' = 'Mensagem de teste da API com anexo. O arquivo codificado acima não funciona, é um exemplo.'
}
# Faz a requisição POST para a API
response = HTTParty.post(
API_URL,
headers: headers,
body: body.to_json,
timeout: 0,
follow_redirects: true
)
# Exibe a resposta da API
puts response.body
// Importa a biblioteca axios para fazer requisições HTTP
const axios = require('axios');
// Define a URL da API
const apiUrl = 'https://api.mailgrid.net.br/sendmail/';
// Define os cabeçalhos da requisição
const headers = {
'Content-Type': 'application/json'
};
// Define o corpo da requisição como um objeto JavaScript
const data = {
host_smtp: 'HOST-SMTP',
usuario_smtp: 'USUARIO-SMTP',
senha_smtp: 'SENHA-SMTP',
emailRemetente: 'EMAIL-REMETENTE',
nomeRemetente: 'NOME-REMETENTE',
emailDestino: [
'destinatario1@dominio.com.br',
'destinatario2@dominio.com.br'
],
assunto: 'Teste de envio com anexo via API JSON',
mensagemAnexos: [
{
name: 'anexoexemplo.pdf',
type: 'application/pdf',
content: 'UEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAYH/...//Z'
}
],
mensagem: 'Mensagem de teste da API com anexo. O arquivo codificado acima não funciona, é apenas um exemplo.',
mensagemTipo: 'html',
mensagemEncoding: 'base64',
mensagemAlt: 'Mensagem de teste da API com anexo. O arquivo codificado acima não funciona, é apenas um exemplo.'
};
// Faz a requisição POST usando axios
axios.post(apiUrl, data, {
headers: headers,
maxRedirects: 10,
timeout: 0,
httpAgent: new (require('http').Agent)({ keepAlive: true }),
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Erro na requisição:', error.message);
});
Relatório de emails
É através desta API que você irá integrar seu sistema ao nosso para obter relatórios detalhados e consolidados dos envios realizados através de nosso SMTP dedicado. A seguir, você encontrará tudo o que precisa para começar.
Endpoint para Relatório de Envios
URL
https://api.mailgrid.net.br/report/
Parâmetros
Abaixo estão os parâmetros aceitos pela API de relatório:
Parâmetro
Descrição
Obrigatório
token_auth
Token de autenticação (localizado no painel do cliente)
Não
dataini
Data de início da consulta (formato: YYYY-MM-DD)
Sim
horaini
Hora de início da consulta (formato: HH:MM)
Sim
datafim
Data de fim da consulta (formato: YYYY-MM-DD)
Sim
horafim
Hora de fim da consulta (formato: HH:MM)
Sim
status
Status dos envios a serem consultados (erro, sucesso, soft (apenas soft bounces) e hard (apenas hard bounces)
Não
emaildestino
E-mail para onde a mensagem foi enviada (filtro por destinatário específico)
Não
remetente
E-mail utilizado como remetente do envio (filtro por remetente específico)
Não
idMensagem
ID de uma mensagem enviada (filtro por mensagem específica)
Não
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
Os relatórios de envios são atualizados aproximadamente a cada 10 minutos. Caso realize um envio e não o veja imediatamente no painel, aguarde a próxima atualização.
using System;
using System.IO;
using System.Net;
using System.Text;
class Program
{
static void Main()
{
var url = "https://api.mailgrid.net.br/report/";
try
{
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.ContentType = "application/json";
var data = "{\"token_auth\": \"INFORME-O-TOKEN-AQUI\", " +
"\"dataini\": \"2022-09-27\", \"horaini\": \"00:01\", \"datafim\": \"2022-09-27\",
\"horafim\": \"23:59\"}";
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream(), Encoding.UTF8))
{
streamWriter.Write(data);
}
using (var httpResponse = (HttpWebResponse)httpRequest.GetResponse())
{
if (httpResponse.StatusCode == HttpStatusCode.OK)
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Console.WriteLine("Resposta da API:\n" + result);
}
}
else
{
Console.WriteLine($"Erro na requisição. Código de status HTTP: {httpResponse.StatusCode}");
}
}
}
catch (WebException webEx)
{
using (var streamReader = new StreamReader(webEx.Response.GetResponseStream()))
{
var errorResponse = streamReader.ReadToEnd();
Console.WriteLine($"Erro na requisição: {errorResponse}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro inesperado: {ex.Message}");
}
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class mailgrid Report {
public static void main(String[] args) {
String apiUrl = "https://api.mailgrid.net.br/report/";
String data = "{\n" +
" \"token_auth\": \"INFORME-O-TOKEN-AQUI\",\n" +
" \"dataini\": \"2022-09-27\",\n" +
" \"horaini\": \"00:01\",\n" +
" \"datafim\": \"2022-09-27\",\n" +
" \"horafim\": \"23:59\"\n" +
"}";
try {
URL url = new URL(apiUrl);
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setRequestProperty("Authorization", "Bearer YOUR_AUTH_TOKEN");
httpConnection.setRequestProperty("Content-Type", "application/json");
byte[] out = data.getBytes(StandardCharsets.UTF_8);
try (OutputStream os = httpConnection.getOutputStream()) {
os.write(out);
}
int statusCode = httpConnection.getResponseCode();
System.out.println("Código de Status: " + statusCode);
StringBuilder response = new StringBuilder();
try (BufferedReader in =
new BufferedReader(new InputStreamReader(httpConnection.getInputStream()))) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
} catch (IOException e) {
System.out.println("Erro ao ler a resposta da API: " + e.getMessage());
}
if (statusCode == HttpURLConnection.HTTP_OK) {
System.out.println("Resposta da API:\n" + response.toString());
} else {
System.out.println("Erro: " + httpConnection.getResponseMessage());
}
httpConnection.disconnect();
} catch (IOException e) {
System.out.println("Erro na requisição HTTP: " + e.getMessage());
}
}
}
// URL do endpoint da API para gerar relatórios
var url = "https://api.mailgrid.net.br/report/";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log("Código de status:", xhr.status);
console.log("Resposta:", xhr.responseText);
if (xhr.status >= 200 && xhr.status < 300) {
console.log("Relatório gerado com sucesso!");
} else {
console.error("Erro ao gerar o relatório. Código de status:", xhr.status);
}
}
};
var data = JSON.stringify({
"token_auth": "INFORME-O-TOKEN-AQUI,
"dataini": "2022-09-27",
"horaini": "00:01",
"datafim": "2022-09-27",
"horafim": "23:59"
});
xhr.send(data);
É através desta API que você irá integrar seu sistema ao nosso para obter o relatório consolidado dos envios realizados através de nosso SMTP dedicado. A seguir, você encontrará tudo o que precisa para consultar os dados consolidados dos seus envios.
URL
https://api.mailgrid.net.br/consolidate/
Parâmetros
Abaixo estão os parâmetros aceitos pela API de relatório:
Parâmetro
Descrição
Obrigatório
token_auth
Token de autenticação (fornecido no painel do cliente) Não é obrigatório caso sejam passados os parâmetros usuario_smtp e senha_smtp, para autenticação.
Não
dataini
Data de início da consulta (formato: YYYY-MM-DD)
Sim
horaini
Hora de início da consulta (formato: HH:MM)
Sim
datafim
Data de fim da consulta (formato: YYYY-MM-DD)
Sim
horafim
Hora de fim da consulta (formato: HH:MM)
Sim
status
Status dos envios a serem consultados (erro ou sucesso - ex.: se passar sucesso, retorna apenas e-mails entregues)
Não
emaildestino
E-mail para onde a mensagem foi enviada (filtro por destinatário específico)
Não
remetente
E-mail utilizado como remetente do envio (filtro por remetente específico)
Não
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
// Importa o módulo https nativo do Node.js para realizar requisições HTTPS
const https = require('https');
const url = "https://api.mailgrid.net.br/consolidate/";
const data = JSON.stringify({
"token_auth": "INFORME-O-TOKEN-AQUI",
"dataini": "2023-02-01",
"horaini": "00:01",
"datafim": "2023-08-30",
"horafim": "23:59"
});
const options = {
hostname: 'api.mailgrid.net.br',
path: '/consolidate/',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
try {
const parsedResponse = JSON.parse(responseData);
if (res.statusCode === 200) {
console.log("Resposta da API:");
console.log(JSON.stringify(parsedResponse, null, 2));
} else {
console.log(`Erro na requisição. Código de status HTTP: ${res.statusCode}`);
}
} catch (error) {
console.log("Erro ao processar a resposta JSON:", error.message);
}
});
});
req.on('error', (error) => {
console.error("Erro na requisição:", error.message);
});
req.write(data);
req.end();
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.mailgrid.net.br/consolidate/")
data = {
"token_auth" => "INFORME-O-TOKEN-AQUI",
"dataini" => "2023-02-01",
"horaini" => "00:01",
"datafim" => "2023-08-30",
"horafim" => "23:59"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path, {'Content-Type' => 'application/json'})
request.body = data.to_json
response = http.request(request)
if response.code.to_i != 200
puts "Erro na requisição. Código de status HTTP: #{response.code}"
else
begin
decoded_response = JSON.parse(response.body)
puts "Resposta da API:"
puts JSON.pretty_generate(decoded_response)
rescue JSON::ParserError
puts "Erro ao processar a resposta JSON."
end
end
const axios = require('axios');
const url = "https://api.mailgrid.net.br/consolidate/";
const data = {
"token_auth": "INFORME-O-TOKEN-AQUI",
"dataini": "2023-02-01",
"horaini": "00:01",
"datafim": "2023-08-30",
"horafim": "23:59"
};
const config = {
headers: {
'Content-Type': 'application/json'
}
};
axios.post(url, data, config)
.then((response) => {
console.log("Resposta da API:");
console.log(JSON.stringify(response.data, null, 2));
})
.catch((error) => {
if (error.response) {
console.log("Erro na requisição. Código de status HTTP: " + error.response.status);
console.log("Resposta do servidor:", error.response.data);
} else if (error.request) {
console.log("Erro na requisição. Sem resposta do servidor:", error.request);
} else {
console.log("Erro ao configurar a requisição:", error.message);
}
});
Adicionar domínio
Integre seu sistema à nossa plataforma de maneira eficiente com esta API, projetada para facilitar a adição de novos domínios à sua conta mailgrid. Este recurso permite que você expanda os domínios remetentes associados ao seu plano, garantindo flexibilidade e controle total sobre seus envios de e-mail. Confira abaixo todos os detalhes necessários para começar.
A adição de domínios funciona de maneira assíncrona, executando a inclusão do domínio em uma chamada e retornando um status de sucesso ou erro. Após a inclusão, o endpoint /check pode ser utilizado para consultar os dados de validação, incluindo a chave de segurança, registros SPF e DKIM.
URL
https://api.mailgrid.net.br/domain/add/
Parâmetros
Os parâmetros a seguir são essenciais para que a API processe corretamente a adição de um domínio. Certifique-se de fornecer informações precisas para evitar erros:
Parâmetro
Descrição
Obrigatório
token_auth:
Token de autenticação exclusivo, gerado no seu painel de cliente mailgrid, acessível no menu "API". Este token valida sua identidade e autoriza a operação.
Sim
dominio:
O domínio completo que você deseja adicionar (ex.: "seudominio.com.br"). Este será o domínio remetente utilizado em seus envios de e-mail. Deve incluir o TLD (ex.: .com, .net.br) e seguir padrões válidos de nomenclatura de domínio.
Sim
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
Exemplo de Chamada e Resposta
Substitua os valores pelos dados específicos da sua conta:
Após adicionar o domínio, você receberá um e-mail com instruções detalhadas para validar o cadastro. Siga os passos indicados para ativar seu domínio e começar a utilizá-lo.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
private static string url = "https://api.mailgrid.net.br/domain/add/";
static async Task Main(string[] args)
{
var data = new
{
token_auth = "SEU_TOKEN_AQUI",
dominio = "dominioaseradicionado.net.br"
};
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
var jsonData = JsonConvert.SerializeObject(data);
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
try
{
HttpResponseMessage response = await client.PostAsync(url, content);
int statusCode = (int)response.StatusCode;
Console.WriteLine($"Código de status: {statusCode}");
if (response.IsSuccessStatusCode)
{
string responseBody = await response.Content.ReadAsStringAsync();
var decodedResponse = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("Resposta da API:");
string formattedResponse =
JsonConvert.SerializeObject(decodedResponse, Formatting.Indented);
Console.WriteLine(formattedResponse);
}
else
{
Console.WriteLine($"Erro na requisição. Código de status: {statusCode}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao processar a requisição: {ex.Message}");
}
}
}
}
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://api.mailgrid.net.br/domain/add/")
data = {
"token_auth" => "SEU_TOKEN_AQUI",
"dominio" => "dominioaseradicionado.net.br"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path, {'Content-Type' => 'application/json'})
request.body = data.to_json
http.read_timeout = 30
begin
response = http.request(request)
if response.code.to_i >= 400
puts "Erro na requisição. Código de status HTTP: #{response.code}"
else
parsed_response = JSON.parse(response.body)
if parsed_response.is_a?(Hash)
puts "Resposta da API:"
puts JSON.pretty_generate(parsed_response)
else
puts "Erro ao processar a resposta JSON."
end
end
rescue StandardError => e
puts "Erro na requisição: #{e.message}"
end
const axios = require('axios');
const url = "https://api.mailgrid.net.br/domain/add/";
const data = {
"token_auth": "SEU_TOKEN_AQUI",
"dominio": "dominioaseradicionado.net.br"
};
const config = {
headers: {
'Content-Type': 'application/json'
}
};
axios.post(url, data, config)
.then((response) => {
console.log("Resposta da API:");
console.log(JSON.stringify(response.data, null, 2));
})
.catch((error) => {
if (error.response) {
console.log("Erro na requisição. Código de status HTTP: " + error.response.status);
console.log("Resposta do servidor:", error.response.data);
} else if (error.request) {
console.log("Erro na requisição. Sem resposta do servidor:", error.request);
} else {
console.log("Erro ao configurar a requisição:", error.message);
}
});
Remover domínio
Utilize este endpoint para remover um domínio remetente da sua conta mailgrid. O domínio será marcado para remoção e não poderá mais ser utilizado para envios. Veja abaixo os detalhes necessários para a requisição.
A remoção de domínios exige autenticação válida e o domínio já cadastrado. O processo é assíncrono e retorna status de sucesso ou erro. Certifique-se de que o domínio informado está correto e pertence à sua conta.
URL
https://api.mailgrid.net.br/domain/remove/
Parâmetros
Os parâmetros a seguir são essenciais para que a API processe corretamente a remoção de um domínio:
Parâmetro
Descrição
Obrigatório
token_auth:
Token de autenticação exclusivo, gerado no seu painel de cliente mailgrid, acessível no menu "API".
Sim
dominio:
O domínio completo que você deseja remover (ex.: "seudominio.com.br").
Sim
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
Exemplo de Chamada e Resposta
Substitua os valores pelos dados específicos da sua conta:
Integre seu sistema à nossa API para consultar o status de um domínio cadastrado em sua conta de maneira prática e confiável. Essa funcionalidade permite verificar rapidamente se um domínio está validado e pronto para envios.
URL
https://api.mailgrid.net.br/domain/check/
Parâmetros
Os parâmetros a seguir são essenciais para que a API processe corretamente a consulta do domínio. Certifique-se de fornecer informações precisas para evitar erros:
Parâmetro
Descrição
Obrigatório
token_auth:
token de autenticação exclusivo, encontrado no painel de cliente, na aba "API".
Sim
dominio:
O domínio que deseja verificar (exemplo: "seudominio.com.br").
Sim
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
Exemplo de Chamada e Resposta
Substitua os valores pelos dados específicos da sua conta:
A resposta indicará se o domínio está validado e apto para envios. Se ele ainda não estiver liberado, confira o e-mail com as instruções de validação enviadas anteriormente e siga os passos indicados.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
private static string url = "https://api.mailgrid.net.br/domain/check/";
static async Task Main(string[] args)
{
var data = new
{
token_auth = "SEU_TOKEN_AQUI",
dominio = "dominioaserchecado.net.br"
};
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
var jsonData = JsonConvert.SerializeObject(data);
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
try
{
HttpResponseMessage response = await client.PostAsync(url, content);
int statusCode = (int)response.StatusCode;
Console.WriteLine($"Código de status: {statusCode}");
if (response.IsSuccessStatusCode)
{
string responseBody = await response.Content.ReadAsStringAsync();
var decodedResponse = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("Resposta da API:");
string formattedResponse =
JsonConvert.SerializeObject(decodedResponse, Formatting.Indented);
Console.WriteLine(formattedResponse);
}
else
{
Console.WriteLine($"Erro na requisição. Código de status: {statusCode}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao processar a requisição: {ex.Message}");
}
}
}
}
require 'net/http'
require 'json'
require 'uri'
url = URI.parse("https://api.mailgrid.net.br/domain/check/")
data = {
"token_auth" => "SEU_TOKEN_AQUI",
"dominio" => "dominioaserchecado.net.br"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path, {'Content-Type' => 'application/json'})
request.body = data.to_json
http.read_timeout = 30
begin
response = http.request(request)
if response.code.to_i >= 400
puts "Erro na requisição. Código de status HTTP: #{response.code}"
else
parsed_response = JSON.parse(response.body)
if parsed_response.is_a?(Hash)
puts "Resposta da API:"
puts JSON.pretty_generate(parsed_response)
else
puts "Erro ao processar a resposta JSON."
end
end
rescue StandardError => e
puts "Erro na requisição: #{e.message}"
end
const axios = require('axios');
const url = "https://api.mailgrid.net.br/domain/check/";
const data = {
"token_auth": "SEU_TOKEN_AQUI",
"dominio": "dominioaserchecado.net.br"
};
const config = {
headers: {
'Content-Type': 'application/json'
}
};
axios.post(url, data, config)
.then((response) => {
console.log("Resposta da API:");
console.log(JSON.stringify(response.data, null, 2));
})
.catch((error) => {
if (error.response) {
console.log("Erro na requisição. Código de status HTTP: " + error.response.status);
console.log("Resposta do servidor:", error.response.data);
} else if (error.request) {
console.log("Erro na requisição. Sem resposta do servidor:", error.request);
} else {
console.log("Erro ao configurar a requisição:", error.message);
}
});
Listar domínios
Utilize esta API para integrar seu sistema e obter uma lista completa de todos os domínios associados à sua conta, incluindo seus respectivos status de validação e liberação para envios.
URL
https://api.mailgrid.net.br/domain/list/
Parâmetros
Os parâmetros a seguir são essenciais para que a API processe corretamente a listagem de um domínio. Certifique-se de fornecer informações precisas para evitar erros:
Parâmetro
Descrição
Obrigatório
token_auth:
token de autenticação exclusivo, encontrado no painel de cliente, na aba "API".
Sim
Requisitos Técnicos
Os dados devem ser enviados via POST, codificados em JSON. Não esqueça de incluir o cabeçalho Content-Type: application/json.
Exemplo de Chamada e Resposta
Substitua os valores pelos dados específicos da sua conta:
{
"token_auth": "SEU_TOKEN_AQUI"
}
Exemplo de resposta
Ao enviar os parâmetros corretamente, você receberá uma confirmação como esta:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
private static string url = "https://api.mailgrid.net.br/domain/list/";
static async Task Main(string[] args)
{
var data = new
{
token_auth = "SEU_TOKEN_AQUI"
};
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Content-Type", "application/json");
var jsonData = JsonConvert.SerializeObject(data);
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
try
{
HttpResponseMessage response = await client.PostAsync(url, content);
int statusCode = (int)response.StatusCode;
Console.WriteLine($"Código de status: {statusCode}");
if (response.IsSuccessStatusCode)
{
string responseBody = await response.Content.ReadAsStringAsync();
var decodedResponse = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("Resposta da API:");
string formattedResponse =
JsonConvert.SerializeObject(decodedResponse, Formatting.Indented);
Console.WriteLine(formattedResponse);
}
else
{
Console.WriteLine($"Erro na requisição. Código de status HTTP: {statusCode}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao processar a requisição: {ex.Message}");
}
}
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class mailgridDomainList {
public static void main(String[] args) {
String url = "https://api.mailgrid.net.br/domain/list/";
String tokenAuth = "SEU_TOKEN_AQUI";
String jsonInputString = "{"
+ "\"token_auth\": \"" + tokenAuth + "\""
+ "}";
try {
URL urlObj = new URL(url);
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int statusCode = connection.getResponseCode();
try (BufferedReader br =
new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
StringBuilder response = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
response.append(line);
}
if (statusCode >= 200 && statusCode < 300) {
System.out.println("Resposta da API: ");
System.out.println(response.toString());
} else {
System.out.println("Erro na requisição. Código de status HTTP: " + statusCode);
}
}
} catch (IOException e) {
System.out.println("Erro na requisição: " + e.getMessage());
}
}
}
Certifique-se de enviar esses dados via método POST, codificados em JSON, e incluir o cabeçalho Content-Type: application/json. Sem credenciais válidas ou um token apropriado, as requisições para os endpoints protegidos serão recusadas.
GitHub
No repositório github.com/mailgridbr, disponível no GitHub, você encontra exemplos práticos e fáceis de entender para usar a API de envio de e-mails da mailgrid. Esses exemplos foram criados para ajudar você ou sua equipe a integrar nosso serviço de envio de e-mails transacionais e de marketing ao seu sistema de forma rápida e sem complicações.
O que você encontra lá?
Temos instruções e códigos simples em várias linguagens populares, como PHP, Python, JavaScript, Ruby, Node.js, C#, Java e até comandos cURL. Cada exemplo mostra passo a passo como enviar e-mails usando nossa API, incluindo mensagens com anexos, como fotos ou documentos, e personalizações como remetente, destinatário, assunto e corpo do e-mail.
Por que isso é útil para você?
Fácil de Começar: Os exemplos são projetados para iniciantes e especialistas, com instruções claras que ajudam a configurar tudo rapidamente, mesmo sem muito conhecimento técnico.
Flexibilidade: Você pode escolher a linguagem que melhor se adapta ao seu sistema ou ao que sua equipe já usa, garantindo uma integração suave.
Economia de Tempo: Com esses modelos prontos, você evita começar do zero, acelerando o processo de implementação e testando envios em poucos minutos.
Suporte Completo: Além de enviar e-mails, os exemplos mostram como lidar com relatórios e verificar o status dos envios, ajudando você a acompanhar tudo de perto.
Como usar?
Basta acessar o repositório, escolher o exemplo na linguagem que você prefere, e seguir as instruções básicas. Os códigos vêm com dicas simples para substituir informações como credenciais (usuário e senha do SMTP) e ajustar os detalhes do e-mail para o seu negócio. Se precisar de ajuda, nossa equipe de suporte está pronta para orientar você! Esses exemplos são como um guia amigável para aproveitar ao máximo a API da mailgrid, permitindo que você envie e-mails de forma confiável, rápida e personalizada para seus clientes, sem preocupações. Experimente hoje mesmo e veja como é fácil transformar sua comunicação por e-mail!