SimplesMail

Integrações

Migrando para o SimplesMail

Mesmo modelo (REST + JSON, Bearer token), interface mais simples e cobrança em real com NF. Compare antes-e-depois e troque em poucas linhas.

Migrando do Resend

Antes
javascript
// Resend
import { Resend } from "resend";
const resend = new Resend(process.env.RESEND_KEY);

await resend.emails.send({
  from: "no-reply@suaempresa.com.br",
  to: "cliente@exemplo.com",
  subject: "Bem-vindo!",
  html: "<h1>Olá!</h1>",
});
Depois
javascript
// SimplesMail
const r = await fetch("https://api.simplesmail.itbooster.com.br/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SIMPLESMAIL_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "no-reply@suaempresa.com.br",
    to: "cliente@exemplo.com",
    subject: "Bem-vindo!",
    html: "<h1>Olá!</h1>",
  }),
});
const data = await r.json();
  • · Mesmos campos (from/to/subject/html) — só muda o transport.
  • · Webhooks de evento idênticos em estrutura: delivered, bounced, complained, opened, clicked.
  • · Conta em real, NF brasileira automática, suporte em PT-BR.

Migrando do Postmark

Antes
javascript
// Postmark
import { ServerClient } from "postmark";
const client = new ServerClient(process.env.POSTMARK_TOKEN);

await client.sendEmail({
  From: "no-reply@suaempresa.com.br",
  To: "cliente@exemplo.com",
  Subject: "Bem-vindo!",
  HtmlBody: "<h1>Olá!</h1>",
});
Depois
javascript
// SimplesMail
const r = await fetch("https://api.simplesmail.itbooster.com.br/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SIMPLESMAIL_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "no-reply@suaempresa.com.br",
    to: "cliente@exemplo.com",
    subject: "Bem-vindo!",
    html: "<h1>Olá!</h1>",
  }),
});
const data = await r.json();
  • · Campos viram lowercase (from, to, subject, html) — Postmark usa PascalCase.
  • · MessageStream do Postmark equivale ao Configuration Set isolado por tenant que o SimplesMail provisiona automaticamente.
  • · Importação de templates: ainda manual. Roadmap traz API de templates em breve.

Migrando do SendGrid

Antes
javascript
// SendGrid
import sgMail from "@sendgrid/mail";
sgMail.setApiKey(process.env.SENDGRID_KEY);

await sgMail.send({
  from: "no-reply@suaempresa.com.br",
  to: "cliente@exemplo.com",
  subject: "Bem-vindo!",
  html: "<h1>Olá!</h1>",
});
Depois
javascript
// SimplesMail
const r = await fetch("https://api.simplesmail.itbooster.com.br/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SIMPLESMAIL_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "no-reply@suaempresa.com.br",
    to: "cliente@exemplo.com",
    subject: "Bem-vindo!",
    html: "<h1>Olá!</h1>",
  }),
});
const data = await r.json();
  • · Mapeamento direto. SendGrid aceita 'personalizations'; SimplesMail recebe 1 destinatário por chamada (use loop ou batch).
  • · Custo: SendGrid Essentials começa em US$ 19,95/mês; SimplesMail Starter custa R$ 49 (10k emails) com NF.
  • · Pool de IP dedicado disponível no plano Business.

Migrando do Mailgun

Antes
javascript
// Mailgun
import formData from "form-data";
import Mailgun from "mailgun.js";
const mg = new Mailgun(formData).client({
  username: "api",
  key: process.env.MAILGUN_KEY,
});

await mg.messages.create("suaempresa.com.br", {
  from: "no-reply@suaempresa.com.br",
  to: "cliente@exemplo.com",
  subject: "Bem-vindo!",
  html: "<h1>Olá!</h1>",
});
Depois
javascript
// SimplesMail
const r = await fetch("https://api.simplesmail.itbooster.com.br/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SIMPLESMAIL_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "no-reply@suaempresa.com.br",
    to: "cliente@exemplo.com",
    subject: "Bem-vindo!",
    html: "<h1>Olá!</h1>",
  }),
});
const data = await r.json();
  • · Mailgun exige domínio no path — SimplesMail deriva o domínio a partir do 'from' (é mais simples).
  • · Formato JSON puro em vez de multipart/form-data.
  • · Sem cobrança por validação de email; sem add-ons surpresa.

Pronto para começar?

Comece em 5 minutos: cadastro → verifica domínio → manda o primeiro email.