Pular para o conteúdo
JetSend
Voltar para a home

Integrações

Migrando para o JetSend

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
// Resendimport { 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
// JetSendconst r = await fetch("https://api.jetsend.com.br/v1/messages", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.JETSEND_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
// Postmarkimport { 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
// JetSendconst r = await fetch("https://api.jetsend.com.br/v1/messages", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.JETSEND_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 JetSend provisiona automaticamente.
  • · Importação de templates: ainda manual. Roadmap traz API de templates em breve.

Migrando do SendGrid

Antes
javascript
// SendGridimport 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
// JetSendconst r = await fetch("https://api.jetsend.com.br/v1/messages", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.JETSEND_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'; JetSend recebe 1 destinatário por chamada (use loop ou batch).
  • · Custo: SendGrid Essentials começa em US$ 19,95/mês; JetSend Starter custa R$ 49 (10k emails) com NF.
  • · Pool de IP dedicado disponível no plano Business.

Migrando do Mailgun

Antes
javascript
// Mailgunimport 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
// JetSendconst r = await fetch("https://api.jetsend.com.br/v1/messages", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.JETSEND_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, JetSend 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.