Referência
SDKs e bibliotecas
Bibliotecas oficiais do Emailit para Node.js, PHP, Laravel, Python, Ruby, Go, Java, .NET e Rust, além do pacote MCP e de como chamar a API por HTTP simples.
O Emailit mantém bibliotecas cliente de código aberto para nove linguagens e frameworks. Cada uma encapsula a API REST com erros tipados e os mesmos nomes de recursos que você vê na referência da API. Se a sua linguagem não estiver na lista, qualquer cliente HTTP funciona.
Bibliotecas oficiais
Todas as bibliotecas têm licença MIT e são publicadas em github.com/emailit.
| Linguagem | Pacote | Instalação | Requisitos | Código-fonte |
|---|---|---|---|---|
| Node.js | @emailit/node |
npm install @emailit/node |
Node.js 18+ | emailit-node |
| PHP | emailit/emailit-php |
composer require emailit/emailit-php |
PHP 8.1+ | emailit-php |
| Laravel | emailit/emailit-laravel |
composer require emailit/emailit-laravel |
Laravel 10, 11 ou 12 | emailit-laravel |
| Python | emailit |
pip install emailit |
Python 3.7+ | emailit-python |
| Ruby | emailit |
bundle add emailit |
Ruby 3.0+ | emailit-ruby |
| Go | github.com/emailit/emailit-go/v2 |
go get github.com/emailit/emailit-go/v2 |
Go 1.21+ | emailit-go |
| Java | com.emailit:emailit-java |
Maven ou Gradle, veja abaixo | Java 11+ | emailit-java |
| .NET | Emailit |
dotnet add package Emailit |
.NET 8+ | emailit-dotnet |
| Rust | emailit |
cargo add emailit |
Rust 1.85+ e Tokio | emailit-rust |
Para Java, adicione a dependência com a versão mais recente indicada no repositório:
<dependency>
<groupId>com.emailit</groupId>
<artifactId>emailit-java</artifactId>
<version>VERSION</version>
</dependency>implementation 'com.emailit:emailit-java:VERSION'Enviar um e-mail
Todas as bibliotecas recebem a sua chave de API quando você cria o cliente. Carregue-a de uma variável de ambiente em vez de deixá-la fixa no código.
import { Emailit } from '@emailit/node';
const emailit = new Emailit(process.env.EMAILIT_API_KEY);
const email = await emailit.emails.send({
from: 'Acme <hello@acme.com>',
to: 'ada@example.com',
subject: 'Welcome to Acme',
html: '<p>Thanks for signing up.</p>',
});
console.log(email.id);require 'vendor/autoload.php';
$emailit = Emailit::client(getenv('EMAILIT_API_KEY'));
$email = $emailit->emails()->send([
'from' => 'Acme <hello@acme.com>',
'to' => 'ada@example.com',
'subject' => 'Welcome to Acme',
'html' => '<p>Thanks for signing up.</p>',
]);
echo $email->id;use Emailit\Laravel\Facades\Emailit;
$email = Emailit::emails()->send([
'from' => 'Acme <hello@acme.com>',
'to' => 'ada@example.com',
'subject' => 'Welcome to Acme',
'html' => '<p>Thanks for signing up.</p>',
]);import os
from emailit import EmailitClient
client = EmailitClient(os.environ["EMAILIT_API_KEY"])
email = client.emails.send({
"from": "Acme <hello@acme.com>",
"to": "ada@example.com",
"subject": "Welcome to Acme",
"html": "<p>Thanks for signing up.</p>",
})
print(email.id)require "emailit"
client = Emailit::EmailitClient.new(ENV.fetch("EMAILIT_API_KEY"))
email = client.emails.send(
from: "Acme <hello@acme.com>",
to: "ada@example.com",
subject: "Welcome to Acme",
html: "<p>Thanks for signing up.</p>"
)
puts email.idpackage main
import (
"fmt"
"os"
"github.com/emailit/emailit-go/v2"
)
func main() {
client := emailit.NewClient(os.Getenv("EMAILIT_API_KEY"))
email, err := client.Emails.Send(&emailit.SendEmailRequest{
From: "Acme <hello@acme.com>",
To: []string{"ada@example.com"},
Subject: "Welcome to Acme",
Html: "<p>Thanks for signing up.</p>",
})
if err != nil {
panic(err)
}
fmt.Println(email.Id)
}import com.emailit.*;
import com.emailit.params.*;
import java.util.List;
EmailitClient emailit = new EmailitClient(System.getenv("EMAILIT_API_KEY"));
EmailitObject email = emailit.emails().send(
EmailSendParams.builder()
.setFrom("Acme <hello@acme.com>")
.setTo(List.of("ada@example.com"))
.setSubject("Welcome to Acme")
.setHtml("<p>Thanks for signing up.</p>")
.build()
);
System.out.println(email.getString("id"));using Emailit;
using Emailit.Options;
using Emailit.Resources;
var emailit = new EmailitClient(Environment.GetEnvironmentVariable("EMAILIT_API_KEY"));
Email email = emailit.Emails.Send(new EmailSendOptions
{
From = "Acme <hello@acme.com>",
To = new[] { "ada@example.com" },
Subject = "Welcome to Acme",
Html = "<p>Thanks for signing up.</p>",
});
Console.WriteLine(email.Id);use emailit::types::CreateEmailBaseOptions;
use emailit::{Emailit, Result};
#[tokio::main]
async fn main() -> Result<()> {
let emailit = Emailit::new(&std::env::var("EMAILIT_API_KEY").expect("EMAILIT_API_KEY is not set"));
let options = CreateEmailBaseOptions::new(
"Acme <hello@acme.com>",
["ada@example.com"],
"Welcome to Acme",
)
.with_html("<p>Thanks for signing up.</p>");
let email = emailit.emails.send(options).await?;
println!("{:?}", email.id);
Ok(())
}curl https://api.emailit.com/v2/emails \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <hello@acme.com>",
"to": "ada@example.com",
"subject": "Welcome to Acme",
"html": "<p>Thanks for signing up.</p>"
}'O endereço from precisa estar em um domínio de envio verificado. Até o seu workspace ter acesso de produção, você só pode enviar para os e-mails das contas dos membros do workspace.
O que as bibliotecas cobrem
Todas as bibliotecas expõem os mesmos serviços: e-mails, domínios, chaves de API, listas de contatos, inscritos, templates, supressões, verificações de e-mail, listas de verificação de e-mails, webhooks, contatos e eventos. Os erros são lançados como exceções ou valores de erro tipados, por exemplo um erro de autenticação para 401, um erro de limite de requisições para 429 e um erro de validação para 422, para que você possa tratar cada caso separadamente.
Alguns endpoints mais novos ainda não estão encapsulados, como o encaminhamento de e-mails, campanhas, automações, formulários e relatórios DMARC. As bibliotecas também não definem o cabeçalho Idempotency-Key. Nesses casos, chame o endpoint por HTTP com a mesma chave de API, como mostrado abaixo.
Para a configuração específica de cada framework, incluindo transportes de e-mail, rotas de webhook e configuração de SMTP, consulte os guias de frameworks: Node.js, Next.js, Nuxt, Laravel, PHP, Python, Ruby on Rails, Go, Java, .NET e WordPress.
Pacote do servidor MCP
O pacote de código aberto @emailit/emailit-mcp executa um servidor MCP na sua máquina para que assistentes de IA possam chamar o Emailit com a sua chave de API:
npx -y @emailit/emailit-mcpA maioria das pessoas não precisa dele: o servidor hospedado em https://api.emailit.com/mcp não exige instalação. Compare os dois em Servidor MCP local.
@emailit/js é um pacote diferente: é o script de navegador que mostra os formulários do Emailit no seu site, não um cliente da API.
Usar a API por HTTP
Você não precisa de uma biblioteca. Qualquer cliente HTTP que envie JSON funciona:
- URL base:
https://api.emailit.com/v2 - Cabeçalhos:
Authorization: Bearer <your API key>eContent-Type: application/json - Corpos e respostas: JSON
Por exemplo, para encaminhar um e-mail com uma chave de idempotência a partir do Node.js, sem o SDK:
const response = await fetch('https://api.emailit.com/v2/emails/em_4K6oASS7KP9ztzWmSN9ndEu13HW/forward', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': 'forward-order-1042',
},
body: JSON.stringify({ to: 'support@acme.com' }),
});
if (!response.ok) {
throw new Error(`Emailit returned ${response.status}: ${await response.text()}`);
}Leia Erros e Limites de requisições antes de criar o seu próprio cliente, para tratar corretamente as respostas 4xx e o retry-after. Se a sua aplicação já usa SMTP, você também pode dispensar a API e usar o SMTP relay.
Bibliotecas da comunidade
O Emailit não mantém bibliotecas fora da lista acima. Se você encontrar ou criar uma para outra linguagem ou framework, revise o código dela antes de lhe dar uma chave de API e prefira uma chave Sending Only restrita a um domínio. Avise-nos em support@emailit.com ou no Discord se quiser que ela seja mencionada aqui.