Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

Mailgun Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

Illustration · Beispieldaten

Sync-Beispiel

Einen Datensatz prüfen

Quelle

Mailgun

Connector-Status: Geplant

Ziel

Ihr anderes Tool

Connector-Status: Eigenes Tool

QuellfeldZielfeldBeispielwert
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Entwerfen
  2. Einen Datensatz prüfen
  3. Diese Version freigeben

Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.

Verbinde Mailgun über Tajo mit Brevo, um deine Transactional- und Marketing-E-Mail-Daten zu vereinheitlichen, Zustell-Events und Engagement-Metriken zu synchronisieren und deine E-Mail-Infrastruktur in einer einzigen Kundensicht zu konsolidieren.

Überblick

EigenschaftWert
PlattformMailgun (by Sinch)
KategorieE-Mail-Marketing
EinrichtungsaufwandEinfach
Offizielle IntegrationNein
Synchronisierte DatenEvents, Kontakte, Zustellbarkeit, Kampagnen
Auth-MethodeAPI-Schlüssel (HTTP Basic Auth)

Funktionen

  • Zustell-Event-Sync - Tracke Delivered-, Bounced-, Opened- und Clicked-Events
  • Engagement-Metriken - Synchronisiere Open- und Click-Rates in Brevo-Kontaktattribute
  • Bounce-Management - Unterdrücke gebouncte Adressen automatisch in Brevo
  • Umgang mit Spam-Beschwerden - Synchronisiere Spam-Complaints für die Listen-Hygiene
  • Domain-Reputation - Überwache die Gesundheit der Sender-Domain und die E-Mail-Zustellbarkeit
  • Tracking von Transactional-E-Mails - Verbinde Transactional-Sends mit Marketingdaten

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Ein Mailgun-Konto mit einer verifizierten Sender-Domain
  2. Einen Mailgun-API-Schlüssel aus dem Mailgun-Dashboard
  3. Ein Brevo-Konto mit API-Zugriff
  4. Ein Tajo-Konto mit Connector-Berechtigungen

Authentifizierung

API-Schlüssel-Authentifizierung

Mailgun nutzt HTTP Basic Authentication mit api als Benutzername und deinem API-Schlüssel als Passwort:

Terminal window
# Get your API key from https://app.mailgun.com/settings/api_security
export MAILGUN_API_KEY=key-your-api-key
export MAILGUN_DOMAIN=your-domain.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// HTTP Basic Auth format
const headers = {
'Authorization': `Basic ${Buffer.from(
`api:${process.env.MAILGUN_API_KEY}`
).toString('base64')}`
};
// Or using curl
// curl -s --user 'api:YOUR_API_KEY' ...

API-Schlüssel-Typen

Mailgun bietet domain-spezifische Sending Keys und kontoweite API-Schlüssel an. Nutze Domain-Sending-Keys für Messaging-Operationen und den Account-API-Schlüssel für administrative Aufgaben.

Konfiguration

Grundeinrichtung

connectors:
mailgun:
enabled: true
api_key: "${MAILGUN_API_KEY}"
domain: "${MAILGUN_DOMAIN}"
region: "us" # or "eu" for EU region
sync:
events: true
contacts: true
bounces: true
complaints: true
schedule: "*/15 * * * *" # Every 15 minutes
webhook:
signing_key: "${MAILGUN_WEBHOOK_SIGNING_KEY}"
lists:
engaged: 30
bounced: 31
complained: 32

Feldzuordnung

field_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
open_rate: MG_OPEN_RATE
click_rate: MG_CLICK_RATE
last_delivered: MG_LAST_DELIVERED
bounce_type: MG_BOUNCE_TYPE
engagement_score: MG_ENGAGEMENT
unsubscribed: MG_UNSUBSCRIBED

API-Endpoints

EndpointMethodeBeschreibung
https://api.mailgun.net/v3/{domain}/messagesPOSTE-Mail-Nachrichten versenden
https://api.mailgun.net/v3/{domain}/eventsGETEvent-Logs abfragen
https://api.mailgun.net/v3/{domain}/bouncesGETBounces auflisten
https://api.mailgun.net/v3/{domain}/complaintsGETComplaints auflisten
https://api.mailgun.net/v3/{domain}/unsubscribesGETAbmeldungen auflisten
https://api.mailgun.net/v3/{domain}/tagsGETTags auflisten
https://api.mailgun.net/v3/{domain}/tags/{tag}/statsGETStatistiken für ein Tag abrufen
https://api.mailgun.net/v3/listsGETMailing-Listen auflisten
https://api.mailgun.net/v3/domainsGETDomains auflisten
https://api.mailgun.net/v4/address/validatePOSTE-Mail-Adresse validieren

EU-Region

Nutze für Mailgun-Konten in der EU https://api.eu.mailgun.net statt https://api.mailgun.net für alle API-Endpoints.

Code-Beispiele

Connector initialisieren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('mailgun', {
apiKey: process.env.MAILGUN_API_KEY,
domain: process.env.MAILGUN_DOMAIN,
region: 'us'
});

Eine Nachricht über die Mailgun-API senden

// Send an email using Mailgun's Messages API
const formData = new URLSearchParams();
formData.append('from', `Your App <noreply@${domain}>`);
formData.append('to', '[email protected]');
formData.append('subject', 'Welcome to our platform');
formData.append('html', '<h1>Welcome!</h1><p>Thanks for signing up.</p>');
formData.append('o:tag', 'welcome-email');
formData.append('o:tracking', 'yes');
const response = await fetch(
`https://api.mailgun.net/v3/${domain}/messages`,
{
method: 'POST',
headers: {
'Authorization': `Basic ${Buffer.from(`api:${apiKey}`).toString('base64')}`
},
body: formData
}
);
const result = await response.json();
// { id: '<[email protected]>', message: 'Queued. Thank you.' }

E-Mail-Events mit Brevo synchronisieren

// Query Mailgun events and sync engagement data
const eventsResponse = await fetch(
`https://api.mailgun.net/v3/${domain}/events?` +
new URLSearchParams({
begin: lastSyncDate,
ascending: 'yes',
limit: 300,
event: 'delivered OR opened OR clicked'
}),
{
headers: {
'Authorization': `Basic ${Buffer.from(`api:${apiKey}`).toString('base64')}`
}
}
);
const { items, paging } = await eventsResponse.json();
for (const event of items) {
const email = event.recipient;
switch (event.event) {
case 'delivered':
await tajo.contacts.update(email, {
attributes: { MG_LAST_DELIVERED: event.timestamp }
});
break;
case 'opened':
await tajo.events.track({
email,
event: 'email_opened',
properties: { subject: event.message.headers.subject }
});
break;
case 'clicked':
await tajo.events.track({
email,
event: 'email_clicked',
properties: { url: event.url }
});
break;
}
}
// Follow pagination for more events
if (paging.next) {
// Fetch next page using paging.next URL
}

Mailgun-Webhooks verarbeiten

const crypto = require('crypto');
app.post('/webhooks/mailgun', async (req, res) => {
// Verify webhook signature
const { timestamp, token, signature } = req.body.signature;
const encodedToken = crypto
.createHmac('sha256', process.env.MAILGUN_WEBHOOK_SIGNING_KEY)
.update(timestamp.concat(token))
.digest('hex');
if (encodedToken !== signature) {
return res.status(401).send('Unauthorized');
}
const eventData = req.body['event-data'];
const event = eventData.event;
const email = eventData.recipient;
await tajo.connectors.handleWebhook('mailgun', {
topic: event,
payload: eventData
});
// Handle bounce suppression
if (event === 'failed' && eventData.severity === 'permanent') {
await tajo.contacts.update(email, {
attributes: { MG_BOUNCE_TYPE: 'hard_bounce' },
emailBlacklisted: true
});
}
res.status(200).send('OK');
});

Bounces und Complaints synchronisieren

// Sync bounced addresses for list hygiene
const bouncesResponse = await fetch(
`https://api.mailgun.net/v3/${domain}/bounces?limit=100`,
{
headers: {
'Authorization': `Basic ${Buffer.from(`api:${apiKey}`).toString('base64')}`
}
}
);
const { items: bounces } = await bouncesResponse.json();
for (const bounce of bounces) {
await tajo.contacts.update(bounce.address, {
attributes: {
MG_BOUNCE_TYPE: bounce.error.includes('550') ? 'hard_bounce' : 'soft_bounce',
MG_BOUNCE_DATE: bounce.created_at
},
emailBlacklisted: bounce.error.includes('550')
});
}

Rate Limits

EndpointLimitHinweise
Messages APIVariiert je nach Plan100/Std. (Free), unbegrenzt (Paid)
Events APIKein explizites LimitPagination mit max. 300 Items nutzen
Validation APIAbhängig vom PlanPay-per-Validation
WebhooksEchtzeitKein Rate Limit bei der Zustellung
Suppressions APIKein explizites LimitStandard-Rate-Limiting gilt

Versand-Limits

Mailgun wendet Versand-Limits abhängig von deinem Plan und der Domain-Reputation an. Neue Domains starten mit niedrigeren Limits, die mit steigender Absender-Reputation zunehmen. Behalte die Domain-Statistiken im Mailgun-Dashboard im Blick.

Fehlerbehebung

ProblemUrsacheLösung
401 UnauthorizedUngültiger API-SchlüsselAPI-Schlüssel im Mailgun-Dashboard prüfen
Domain nicht verifiziertDNS-Einträge fehlenErforderliche TXT-, CNAME-, MX-Einträge ergänzen
Webhook nicht empfangenURL nicht erreichbarSicherstellen, dass die Webhook-URL öffentlich erreichbar ist
Events fehlenZeitraum zu engDie Parameter begin/end erweitern
Niedrige ZustellbarkeitDomain-ReputationDomain-Statistiken und Authentifizierung überprüfen

Debug-Modus

connectors:
mailgun:
debug: true
log_level: verbose
log_webhooks: true
log_events: true

Best Practices

  1. Sender-Domains verifizieren - Schließe die DNS-Verifizierung für eine optimale E-Mail-Zustellbarkeit ab
  2. Webhooks für Events nutzen - Echtzeit-Webhook-Zustellung statt Polling der Events-API
  3. Proaktiv mit Bounces umgehen - Hard Bounces sofort in Brevo unterdrücken
  4. Nachrichten taggen - Nutze Tags, um die E-Mail-Performance zu kategorisieren und zu analysieren
  5. Domain-Reputation überwachen - Verfolge die Zustellbarkeitsmetriken im Mailgun-Dashboard
  6. E-Mail-Validierung nutzen - Validiere Adressen, bevor du sie zu Brevo-Listen hinzufügst

Sicherheit

  • HTTP Basic Auth - Der API-Schlüssel wird über den Authorization-Header übertragen
  • Webhook-Signaturen - HMAC-SHA256-Signaturprüfung
  • Domain-Verifizierung - SPF-, DKIM- und DMARC-DNS-Authentifizierung
  • IP-Whitelisting - Verfügbar bei Plänen mit dedizierter IP
  • TLS-Verschlüsselung - Alle API-Endpoints erfordern HTTPS
  • Schlüsselrotation - Rotiere API-Schlüssel regelmäßig über das Mailgun-Dashboard

Verwandte Ressourcen

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Diese Seite als Markdown: mailgun.md

Markdown wird geladen …
In Claude öffnen In ChatGPT öffnen