SDKs
Use os SDKs oficiais do Resend contra a sua instância MepMail — não há cliente nosso para instalar.
O MepMail fala o protocolo do Resend, então não existe SDK nosso para instalar. Os SDKs oficiais do Resend funcionam como estão, bastando apontá-los para a origem da API da sua instância — o que também significa que sair do Resend custa uma linha, não uma reescrita de cada chamada.
Cada trecho abaixo foi conferido no código-fonte do próprio SDK, e Node e Python
foram executados contra uma instância real (envio, com delivered).
O que os SDKs oficiais alcançam
| Alcança o MepMail | Não implementado |
|---|---|
emails domains contacts audiences broadcasts contactProperties segments suppressions templates topics webhooks | automations events logs oauthGrants |
A coluna da direita responde 404. Se alguma chamada de que você depende estiver
lá, fale com a gente — o formato de comunicação é compatível, então o endpoint
costuma ser trabalho de um dia, não de um redesenho.
URL base
https://api-mepmail.je4ndev.com — o que todos os exemplos desta página usam.
As contas são provisionadas por convite: não há cadastro público. Fale com a gente e configuramos sua conta, seu domínio e sua primeira chave de API.
Barra final
A URL base é unida ao caminho da requisição por cada SDK, e eles divergem sobre o caminho já começar ou não com barra. Errar isso é um 404 em toda chamada, então vale copiar exatamente:
| URL base | SDKs |
|---|---|
| Sem barra final | Node, Python, Rust, Elixir |
| Exige barra final | Go, Ruby |
| Indiferente | PHP, .NET |
Node.js / TypeScript
resend no npm — Node 18+.
npm install resendimport { Resend } from "resend";
const resend = new Resend("ms_123", {
baseUrl: "https://api-mepmail.je4ndev.com",
});
const { data, error } = await resend.emails.send({
from: "Acme <[email protected]>",
to: "[email protected]",
subject: "Olá do MepMail",
html: "<strong>Funciona!</strong>",
});Python
resend no PyPI — Python 3.9+.
pip install resendimport resend
resend.api_key = "ms_123"
resend.api_url = "https://api-mepmail.je4ndev.com" # sem barra no final
email = resend.Emails.send({
"from": "Acme <[email protected]>",
"to": "[email protected]",
"subject": "Olá do MepMail",
"html": "<strong>Funciona!</strong>",
})PHP
resend/resend-php no Packagist — PHP 8.1+.
Em PHP a URL base não é argumento de construtor: o SDK a lê da variável de
ambiente RESEND_BASE_URL no momento em que o cliente é criado.
composer require resend/resend-phpputenv("RESEND_BASE_URL=https://api-mepmail.je4ndev.com");
$resend = Resend::client('ms_123');
$email = $resend->emails->send([
'from' => 'Acme <[email protected]>',
'to' => '[email protected]',
'subject' => 'Olá do MepMail',
'html' => '<strong>Funciona!</strong>',
]);Ruby
resend no RubyGems — Ruby 3.0+.
O Ruby também lê apenas a variável de ambiente — e a lê uma única vez, quando a
biblioteca é carregada, então ela precisa existir antes do require "resend".
Repare na barra final.
gem install resendENV["RESEND_BASE_URL"] = "https://api-mepmail.je4ndev.com/"
require "resend"
Resend.api_key = "ms_123"
email = Resend::Emails.send({
"from" => "Acme <[email protected]>",
"to" => "[email protected]",
"subject" => "Olá do MepMail",
"html" => "<strong>Funciona!</strong>"
})Go
github.com/resend/resend-go/v4 — Go 1.21+.
Use o módulo com /v4. O github.com/resend/resend-go sem o sufixo é uma tag de
2023 que não compila mais.
go get github.com/resend/resend-go/v4import (
"net/url"
"github.com/resend/resend-go/v4"
)
client := resend.NewClient("ms_123")
client.BaseURL, _ = url.Parse("https://api-mepmail.je4ndev.com/")
sent, err := client.Emails.Send(&resend.SendEmailRequest{
From: "Acme <[email protected]>",
To: []string{"[email protected]"},
Subject: "Olá do MepMail",
Html: "<strong>Funciona!</strong>",
})Rust
resend-rs no crates.io — async
(tokio + reqwest).
[dependencies]
resend-rs = "0.32"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }use resend_rs::types::CreateEmailBaseOptions;
use resend_rs::{Config, Resend};
let resend = Resend::with_config(
Config::builder("ms_123")
.base_url("https://api-mepmail.je4ndev.com".parse()?)
.build(),
);
let sent = resend
.emails
.send(
CreateEmailBaseOptions::new(
"Acme <[email protected]>",
["[email protected]"],
"Olá do MepMail",
)
.with_html("<strong>Funciona!</strong>"),
)
.await?;Java
O SDK oficial de Java fixa https://api.resend.com em uma constante e não expõe
nenhuma forma de trocá-la, então não há trecho Java para apontar para nós — fale
HTTP direto:
var body = """
{
"from": "Acme <[email protected]>",
"to": ["[email protected]"],
"subject": "Olá do MepMail",
"html": "<strong>Funciona!</strong>"
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api-mepmail.je4ndev.com/emails"))
.header("Authorization", "Bearer ms_123")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());.NET
Resend no NuGet — alvo net8.0.
dotnet add package Resendusing Resend;
var options = new ResendClientOptions
{
ApiToken = "ms_123",
ApiUrl = "https://api-mepmail.je4ndev.com",
};
var resend = ResendClient.Create(options);
await resend.EmailSendAsync(new EmailMessage
{
From = "Acme <[email protected]>",
To = { "[email protected]" },
Subject = "Olá do MepMail",
HtmlBody = "<strong>Funciona!</strong>",
});Elixir
resend no Hex — Elixir 1.15+. Este é
mantido pela comunidade, não publicado pelo Resend, então considere o ritmo
de releases dele com a devida reserva.
# mix.exs
def deps do
[{:resend, "~> 1.0-rc"}]
endclient = Resend.client(
api_key: "ms_123",
base_url: "https://api-mepmail.je4ndev.com"
)
{:ok, email} =
Resend.Emails.send(client, %{
from: "Acme <[email protected]>",
to: "[email protected]",
subject: "Olá do MepMail",
html: "<strong>Funciona!</strong>"
})O relay SMTP
Prefere SMTP? O MepMail também roda um relay de submissão (STARTTLS, porta
2587) para clientes legados e bibliotecas que não conseguem trocar a URL base —
o caso do Java acima é um deles. A credencial é uma chave de API, e as regras de
domínio remetente são as mesmas da API. Veja
Auto-hospedagem → relay SMTP.