Exemplos de código
Use qualquer cliente HTTP ou biblioteca SMTP. Estes exemplos chamam a API REST diretamente, e você pode trocar pela biblioteca de sua preferência.
Como integrar
Há duas formas de enviar: a API REST via HTTPS ou o SMTP padrão. A API é ideal para código novo e retorna resultados estruturados. O SMTP serve para aplicações e ferramentas existentes. Ambos se autenticam com uma chave de API.
Node.js
Usa o fetch nativo das versões atuais do Node.
const res = await fetch("https://api.migosmtp.com/v1/send", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MIGOSMTP_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ from, to, subject, text }),
});
if (!res.ok) throw new Error(`send failed: ${res.status}`);
const { id } = await res.json();Python
Usa a biblioteca requests.
import os, requests
r = requests.post(
"https://api.migosmtp.com/v1/send",
headers={"Authorization": f"Bearer {os.environ['MIGOSMTP_KEY']}"},
json={"from": sender, "to": to, "subject": subject, "text": text},
timeout=10,
)
r.raise_for_status()PHP
Usa o cURL, que acompanha a maioria das instalações de PHP.
$ch = curl_init("https://api.migosmtp.com/v1/send");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("MIGOSMTP_KEY"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["from" => $from, "to" => $to, "subject" => $subject, "text" => $text]),
]);
$body = curl_exec($ch);Bons hábitos em qualquer linguagem
Defina um timeout em toda requisição. Repita apenas em respostas 429 e 5xx, com backoff exponencial e jitter. Nunca repita um 4xx diferente de 429, pois a requisição falhará da mesma forma. Registre o ID da mensagem retornado em cada envio para poder rastreá-la depois.
Bibliotecas SMTP
Qualquer biblioteca SMTP funciona: Nodemailer, PHPMailer, smtplib do Python, Java Mail e o suporte a SMTP embutido na maioria dos frameworks. Veja o guia de integração SMTP para as configurações de conexão.