---
title: "Σύνδεσμος Mailgun"
description: "Πλήρης οδηγός ενσωμάτωσης Mailgun για συγχρονισμό δεδομένων παράδοσης email, μετρικών αφοσίωσης και εκδηλώσεων συναλλακτικού email με το Brevo μέσω Tajo."
url: https://tajo.io/gr/docs/connectors/marketing/mailgun/
markdown: https://tajo.io/gr/docs/connectors/marketing/mailgun.md
lang: el-GR
robots: noindex
---

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και την επαγγελματική διεύθυνση email. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

# Σύνδεσμος Mailgun

Κατάσταση συνδέσμου: Προγραμματισμένο Δεν έχει κατασκευαστεί ακόμη. Το Tajo δεν εκτελεί σήμερα αυτόν τον σύνδεσμο.

| Πεδίο πηγής | Πεδίο προορισμού | Ενδεικτική τιμή |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Συνδέστε το Mailgun με το Brevo μέσω Tajo για ενοποίηση δεδομένων συναλλακτικού και marketing email, συγχρονισμό εκδηλώσεων παράδοσης και μετρικών αφοσίωσης, και ενοποίηση της υποδομής email σε μία ενιαία εικόνα πελάτη.

## Επισκόπηση

| Ιδιότητα | Τιμή |
| --- | --- |
| **Πλατφόρμα** | Mailgun (by Sinch) |
| **Κατηγορία** | Email Marketing |
| **Πολυπλοκότητα Ρύθμισης** | Εύκολη |
| **Επίσημη Ενσωμάτωση** | Όχι |
| **Δεδομένα που Συγχρονίζονται** | Εκδηλώσεις, Επαφές, Δυνατότητα Παράδοσης, Καμπάνιες |
| **Μέθοδος Πιστοποίησης** | API Key (HTTP Basic Auth) |

## Χαρακτηριστικά

- **Συγχρονισμός εκδηλώσεων παράδοσης** - Παρακολούθηση εκδηλώσεων παράδοσης, αναπήδησης, ανοίγματος και κλικ
- **Μετρικά αφοσίωσης** - Συγχρονισμός ποσοστών ανοίγματος και κλικ σε χαρακτηριστικά επαφών Brevo
- **Διαχείριση αναπηδήσεων** - Αυτόματη καταστολή διευθύνσεων αναπήδησης στο Brevo
- **Χειρισμός παραπόνων** - Συγχρονισμός παραπόνων spam για υγιεινή λίστας
- **Φήμη τομέα** - Παρακολούθηση υγείας τομέα αποστολής και δυνατότητας παράδοσης
- **Παρακολούθηση συναλλακτικού email** - Συσχέτιση συναλλακτικών αποστολών με δεδομένα marketing

## Προαπαιτούμενα

Πριν ξεκινήσετε, βεβαιωθείτε ότι διαθέτετε:

1. Λογαριασμό Mailgun με επαληθευμένο τομέα αποστολής
2. Κλειδί API Mailgun από το [Mailgun Dashboard](https://app.mailgun.com/settings/api_security)
3. Λογαριασμό Brevo με πρόσβαση API
4. Λογαριασμό Tajo με δικαιώματα συνδέσμου

## Πιστοποίηση

### Πιστοποίηση με Κλειδί API

Το Mailgun χρησιμοποιεί HTTP Basic Authentication με `api` ως username και το κλειδί API σας ως κωδικό:

```bash
# 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
```

```javascript
// 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

Το Mailgun παρέχει κλειδιά αποστολής ανά τομέα και κλειδιά API επιπέδου λογαριασμού. Χρησιμοποιήστε κλειδιά αποστολής τομέα για λειτουργίες μηνυμάτων και το κλειδί API λογαριασμού για λειτουργίες διαχείρισης.

## Διαμόρφωση

### Βασική Ρύθμιση

```yaml
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
```

### Αντιστοίχιση Πεδίων

```yaml
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
```

## Endpoints API

| Endpoint | Μέθοδος | Περιγραφή |
| --- | --- | --- |
| `https://api.mailgun.net/v3/{domain}/messages` | POST | Αποστολή email μηνυμάτων |
| `https://api.mailgun.net/v3/{domain}/events` | GET | Ερώτημα αρχείων καταγραφής εκδηλώσεων |
| `https://api.mailgun.net/v3/{domain}/bounces` | GET | Λίστα αναπηδήσεων |
| `https://api.mailgun.net/v3/{domain}/complaints` | GET | Λίστα παραπόνων |
| `https://api.mailgun.net/v3/{domain}/unsubscribes` | GET | Λίστα διαγραφών |
| `https://api.mailgun.net/v3/{domain}/tags` | GET | Λίστα ετικετών |
| `https://api.mailgun.net/v3/{domain}/tags/{tag}/stats` | GET | Λήψη στατιστικών ετικέτας |
| `https://api.mailgun.net/v3/lists` | GET | Λίστα mailing lists |
| `https://api.mailgun.net/v3/domains` | GET | Λίστα τομέων |
| `https://api.mailgun.net/v4/address/validate` | POST | Επικύρωση διεύθυνσης email |

Περιοχή EU

Για λογαριασμούς Mailgun με έδρα την EU, χρησιμοποιήστε `https://api.eu.mailgun.net` αντί για `https://api.mailgun.net` για όλα τα endpoints API.

## Παραδείγματα Κώδικα

### Αρχικοποίηση Συνδέσμου

```javascript
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'
});
```

### Αποστολή Μηνύματος μέσω Mailgun API

```javascript
// Send an email using Mailgun's Messages API
const formData = new URLSearchParams();
formData.append('from', `Your App <noreply@${domain}>`);
formData.append('to', 'recipient@example.com');
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: '<message-id@domain.com>', message: 'Queued. Thank you.' }
```

### Συγχρονισμός Εκδηλώσεων Email στο Brevo

```javascript
// 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
}
```

### Χειρισμός Webhooks Mailgun

```javascript
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');
});
```

### Συγχρονισμός Αναπηδήσεων και Παραπόνων

```javascript
// 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')
  });
}
```

## Όρια Ρυθμού

| Endpoint | Όριο | Σημειώσεις |
| --- | --- | --- |
| Messages API | Διαφέρει ανά πλάνο | 100/ώρα (δωρεάν), απεριόριστο (επί πληρωμή) |
| Events API | Χωρίς ρητό όριο | Χρησιμοποιήστε σελιδοποίηση με μέγιστο 300 στοιχεία |
| Validation API | Βάσει πλάνου | Χρέωση ανά επικύρωση |
| Webhooks | Σε πραγματικό χρόνο | Χωρίς όριο ρυθμού παράδοσης |
| Suppressions API | Χωρίς ρητό όριο | Ισχύει τυπικός περιορισμός ρυθμού |

Όρια Αποστολής

Το Mailgun επιβάλλει όρια αποστολής βάσει του πλάνου και της φήμης τομέα σας. Νέοι τομείς ξεκινούν με χαμηλότερα όρια που αυξάνονται καθώς βελτιώνεται η φήμη αποστολής. Παρακολουθήστε τα στατιστικά τομέα σας στο dashboard Mailgun.

## Αντιμετώπιση Προβλημάτων

| Πρόβλημα | Αιτία | Λύση |
| --- | --- | --- |
| 401 Unauthorized | Μη έγκυρο κλειδί API | Επαληθεύστε κλειδί API στο dashboard Mailgun |
| Μη επαληθευμένος τομέας | Λείπουν εγγραφές DNS | Προσθέστε τις απαιτούμενες εγγραφές TXT, CNAME, MX |
| Δεν λαμβάνεται webhook | Μη προσβάσιμο URL | Βεβαιωθείτε ότι το URL webhook είναι δημόσια προσβάσιμο |
| Λείπουν εκδηλώσεις | Υπερβολικά στενό χρονικό εύρος | Διευρύνετε παραμέτρους `begin`/`end` |
| Χαμηλή δυνατότητα παράδοσης | Φήμη τομέα | Ελέγξτε στατιστικά τομέα και πιστοποίηση |

### Λειτουργία Εντοπισμού Σφαλμάτων

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

## Βέλτιστες Πρακτικές

1. **Επαληθεύστε τομείς αποστολής** - Ολοκληρώστε επαλήθευση DNS για βέλτιστη δυνατότητα παράδοσης
2. **Χρησιμοποιήστε webhooks για εκδηλώσεις** - Παράδοση webhook σε πραγματικό χρόνο έναντι polling του Events API
3. **Χειριστείτε αναπηδήσεις προληπτικά** - Καταστείλετε αμέσως σκληρές αναπηδήσεις στο Brevo
4. **Επισημάνετε τα μηνύματά σας** - Χρησιμοποιήστε ετικέτες για κατηγοριοποίηση και ανάλυση απόδοσης email
5. **Παρακολουθήστε φήμη τομέα** - Παρακολουθήστε μετρικά δυνατότητας παράδοσης στο dashboard Mailgun
6. **Χρησιμοποιήστε επικύρωση email** - Επικυρώστε διευθύνσεις πριν τη προσθήκη σε λίστες Brevo

## Ασφάλεια

- **HTTP Basic Auth** - Κλειδί API μεταδίδεται μέσω κεφαλίδας Authorization
- **Υπογραφές webhook** - Επαλήθευση υπογραφής HMAC-SHA256
- **Επαλήθευση τομέα** - Πιστοποίηση DNS με SPF, DKIM και DMARC
- **Λίστα επιτρεπόμενων IP** - Διαθέσιμο για πλάνα αφιερωμένης IP
- **Κρυπτογράφηση TLS** - Όλα τα endpoints API απαιτούν HTTPS
- **Εναλλαγή κλειδιών** - Εναλλαγή κλειδιών API περιοδικά μέσω dashboard Mailgun

## Σχετικοί Πόροι

- [Σύνδεσμος Brevo](https://tajo.io/gr/docs/connectors/marketing/brevo)
- [Σύνδεσμος Segment](https://tajo.io/gr/docs/connectors/custom/segment)
- [Δεξιότητα Συγχρονισμού Πελατών](https://tajo.io/gr/docs/skills/data-sync/customer-sync)
- [Mailgun API Documentation](https://documentation.mailgun.com/)
