Riferimento
SDK e librerie
Le librerie ufficiali di Emailit per Node.js, PHP, Laravel, Python, Ruby, Go, Java, .NET e Rust, più il pacchetto MCP e come chiamare l’API in semplice HTTP.
Emailit mantiene librerie client open source per nove linguaggi e framework. Ognuna incapsula l’API REST con errori tipizzati e gli stessi nomi delle risorse che vedi nel riferimento API. Se il tuo linguaggio non è nell’elenco, va bene qualsiasi client HTTP.
Librerie ufficiali
Tutte le librerie hanno licenza MIT e sono pubblicate su github.com/emailit.
| Linguaggio | Pacchetto | Installazione | Requisiti | Sorgente |
|---|---|---|---|---|
| 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 o 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 o Gradle, vedi sotto | 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 |
Per Java, aggiungi la dipendenza con l’ultima versione indicata nel repository:
<dependency>
<groupId>com.emailit</groupId>
<artifactId>emailit-java</artifactId>
<version>VERSION</version>
</dependency>implementation 'com.emailit:emailit-java:VERSION'Invia un’email
Ogni libreria riceve la chiave API quando crei il client. Caricala da una variabile d’ambiente invece di scriverla nel codice.
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>"
}'L’indirizzo from deve appartenere a un dominio di invio verificato. Finché il workspace non ha l’accesso alla produzione, puoi inviare solo agli indirizzi email degli account dei membri del workspace.
Cosa coprono le librerie
Ogni libreria espone gli stessi servizi: email, domini, chiavi API, liste, iscritti, template, soppressioni, verifiche email, liste di verifica email, webhook, contatti ed eventi. Gli errori vengono sollevati come eccezioni tipizzate o valori di errore, ad esempio un errore di autenticazione per 401, un errore di limite di frequenza per 429 e un errore di convalida per 422, così puoi gestire ogni caso separatamente.
Alcuni endpoint più recenti non sono ancora inclusi, tra cui l’inoltro di un’email, le campagne, le automazioni, i moduli e i report DMARC. Inoltre le librerie non impostano l’header Idempotency-Key. In questi casi, chiama l’endpoint in HTTP con la stessa chiave API, come mostrato più avanti.
Per la configurazione specifica di ogni framework, compresi trasporti di posta, rotte dei webhook e configurazione SMTP, vedi le guide per framework: Node.js, Next.js, Nuxt, Laravel, PHP, Python, Ruby on Rails, Go, Java, .NET e WordPress.
Pacchetto del server MCP
Il pacchetto open source @emailit/emailit-mcp esegue un server MCP sulla tua macchina, così gli assistenti AI possono chiamare Emailit con la tua chiave API:
npx -y @emailit/emailit-mcpAlla maggior parte delle persone non serve: il server ospitato su https://api.emailit.com/mcp non richiede installazione. Confronta le due opzioni in Esegui il server MCP in locale.
@emailit/js è un pacchetto diverso: è lo script per browser che mostra i moduli di Emailit sul tuo sito, non un client API.
Usa l’API in HTTP
Non ti serve una libreria. Va bene qualsiasi client HTTP in grado di inviare JSON:
- URL di base:
https://api.emailit.com/v2 - Header:
Authorization: Bearer <your API key>eContent-Type: application/json - Corpi e risposte: JSON
Ad esempio, per inoltrare un’email con una chiave di idempotenza da Node.js senza l’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()}`);
}Prima di sviluppare un tuo client, leggi Errori e Limiti di frequenza, così gestirai correttamente le risposte 4xx e retry-after. Se la tua app usa già l’SMTP, puoi anche fare a meno dell’API e usare l’SMTP relay.
Librerie della community
Emailit non mantiene librerie al di fuori dell’elenco qui sopra. Se ne trovi o ne sviluppi una per un altro linguaggio o framework, esaminane il codice prima di darle una chiave API, e preferisci una chiave Sending Only limitata a un dominio. Scrivici a support@emailit.com o su Discord se vuoi che venga citata qui.