MepMail Docs

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 MepMailNão implementado
emails domains contacts audiences broadcasts contactProperties segments suppressions templates topics webhooksautomations 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 baseSDKs
Sem barra finalNode, Python, Rust, Elixir
Exige barra finalGo, Ruby
IndiferentePHP, .NET

Node.js / TypeScript

resend no npm — Node 18+.

npm install resend
import { 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 resend
import 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-php
putenv("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 resend
ENV["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/v4
import (
    "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 Resend
using 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"}]
end
client = 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.

Nesta página