API compatibile con Mailgun: cambi indirizzo e chiave
SMTP Senpai accetta le richieste di invio nello stesso formato dell’API Messages di Mailgun. Punti il codice su SMTP Senpai, usi la chiave msp_ e tieni il tuo SDK, i tuoi campi e la tua gestione degli errori.
14 giorni gratis · fino a 100 email al giorno · serve la carta · se non disdici entro 14 giorni parte il piano che hai scelto
- Stessi percorsi, campi ed errori
- Server di invio e registro in Europa
- Prova gratis 14 giorni
import Mailgun from 'mailgun.js'; import FormData from 'form-data'; const mailgun = new Mailgun(FormData); - const mg = mailgun.client({ username: 'api', key: process.env.MAILGUN_API_KEY }); + const mg = mailgun.client({ + username: 'api', + key: process.env.SMTP_SENPAI_KEY, // msp_… + url: 'https://app.mailsenpai.com/relay/compat/mailgun', + });
Cambiano due cose, il resto resta
Stessi percorsi, stessi campi, stesse risposte e stessa forma degli errori dell’API Messages di Mailgun.
Il mittente deve stare su un dominio verificato nella tua area SMTP Senpai e firmato DKIM: altrimenti la richiesta viene rifiutata con un errore nel formato di Mailgun. Per provare senza spedire usa o:testmode=yes: la richiesta viene controllata e non parte nulla.
Il tuo codice, puntato su SMTP Senpai
import Mailgun from 'mailgun.js';
import FormData from 'form-data';
const mailgun = new Mailgun(FormData);
const mg = mailgun.client({
username: 'api',
key: process.env.SMTP_SENPAI_KEY, // msp_…
url: 'https://app.mailsenpai.com/relay/compat/mailgun',
});Provato con mailgun.js 14.1.0: eseguito con l’SDK ufficiale contro gli endpoint di SMTP Senpai.
Altri linguaggi e framework
Impostazioni lette nel codice sorgente di ogni SDK: seguono la stessa regola (indirizzo base o host, più la tua chiave). Provale con un invio di prova prima di andare in produzione.
| SDK | Impostazione | Stato |
|---|---|---|
| PHP mailgun/mailgun-php | Mailgun::create($key, 'https://mailgun-api.mailsenpai.com') | Letto nel codice dell’SDK, non ancora provato |
| Ruby mailgun-ruby | Mailgun::Client.new(key, 'app.mailsenpai.com/relay/compat/mailgun') | Letto nel codice dell’SDK, non ancora provato |
| Python mailgun | Client(auth=('api', key), api_url='https://app.mailsenpai.com/relay/compat/mailgun') | Letto nel codice dell’SDK, non ancora provato |
| Laravel | 'mailgun' => ['domain' => 'yourdomain.com', 'secret' => KEY, 'endpoint' => 'mailgun-api.mailsenpai.com', 'scheme' => 'https'] | Letto nel codice dell’SDK, non ancora provato |
| Symfony Mailer | MAILER_DSN=mailgun+api://KEY:[email protected] | Letto nel codice dell’SDK, non ancora provato |
Cosa funziona, cosa viene ignorato, cosa viene rifiutato
Funziona
from, to (ripetuti o separati da virgola), cc, bcc, subject, text, html, attachment, inline (cid:), h:
Accettato senza effetto
o:tag, o:tracking*, altre opzioni o:, v: variables, amp-html
Indicato nell’intestazione di risposta X-MailSenpai-Ignored.
Rifiutato con l’errore di Mailgun
template, t: options, o:deliverytime e le altre opzioni di programmazione (400)
Il dominio nel percorso deve essere uno dei tuoi domini di invio verificati in SMTP Senpai. Funzionano sia i corpi multipart sia urlencoded; i campi to ripetuti e più allegati restano.
Gli esiti delle consegne dall’API di SMTP Senpai
Gli endpoint di Mailgun per log, eventi, statistiche e webhook non sono riprodotti. Gli esiti (sent, delivered, bounce, defer, complaint, dropped, open, click) arrivano dall’API di SMTP Senpai con la stessa chiave: GET /relay/v1/eventi, oppure un webhook firmato impostato nella tua area SMTP Senpai.
L’id nella risposta all’invio è il message_id di quegli eventi. Ogni risposta porta anche X-MailSenpai-Result (sent, queued, suppressed, failed).
Leggi il riferimento di eventi e webhook
curl "https://app.mailsenpai.com/relay/v1/eventi?quanti=50" \
-H "Authorization: Bearer $SMTP_SENPAI_KEY"
# {"ok": true, "eventi": [{"type": "delivered",
# "email": "…", "message_id": "…", …}], "prossimo": …}Domande frequenti
Devo riscrivere il codice che usa Mailgun?
No. Cambi l’indirizzo base (o l’host) e la chiave. Percorsi, campi, risposte e formato degli errori restano quelli dell’API Messages di Mailgun, quindi il tuo SDK e la gestione degli errori continuano a funzionare.
E i template e l’invio programmato?
Non sono supportati: le richieste che li usano vengono rifiutate con l’errore nativo, così non parte nulla per sbaglio. Prepara il contenuto finale nel tuo codice e mandalo quando vuoi che parta.
Come ricevo rimbalzi, aperture e webhook?
Dall’API di SMTP Senpai, con la stessa chiave: GET /relay/v1/eventi oppure un webhook firmato impostato nella tua area SMTP Senpai. Gli endpoint di eventi e webhook di Mailgun non sono riprodotti.
Posso provare senza spedire?
Sì, come con Mailgun: imposta o:testmode=yes. La richiesta viene controllata e non parte nulla.
Che dominio va nel percorso?
Uno dei tuoi domini di invio verificati in SMTP Senpai, come /v3/tuodominio.it/messages.
Gli altri formati che SMTP Senpai accetta
Tutte le 14 API compatibili
La tabella con indirizzi base, host dedicati e chiavi.
ApriAPI compatibile con SendGrid
API v3 Mail Send di SendGrid
ApriAPI compatibile con Amazon SES
API di Amazon SES (v2 SendEmail, v1 SendEmail e SendRawEmail)
ApriAPI compatibile con Postmark
API Email di Postmark
ApriAPI compatibile con Resend
API Emails di Resend
ApriAPI compatibile con Brevo
API delle email transazionali di Brevo
ApriProva SMTP Senpai con il tuo codice di oggi
14 giorni per cambiare indirizzo base e chiave, mandare le tue email vere e controllare ogni esito nel registro. Poi decidi.
Mailgun è un marchio di Mailgun Technologies, Inc., società del gruppo Sinch. È citato solo per descrivere il formato di richiesta che SMTP Senpai accetta. MailSenpai non è affiliata a Mailgun né a Sinch e questa pagina non è approvata da loro. Informazioni verificate il 9 ottobre 2026.