---
title: "Mailgun کنیکٹر"
description: "Tajo کے ذریعے ای میل ڈیلیوری ڈیٹا، engagement میٹرکس، اور ٹرانزیکشنل ای میل ایونٹس کو Brevo کے ساتھ سنک کرنے کے لیے مکمل Mailgun انٹیگریشن گائیڈ۔"
url: https://tajo.io/ur/docs/connectors/marketing/mailgun/
markdown: https://tajo.io/ur/docs/connectors/marketing/mailgun.md
lang: ur-PK
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# Mailgun کنیکٹر

کنیکٹر کی حیثیت: منصوبہ بند ابھی تیار نہیں ہوا۔ Tajo آج یہ کنیکٹر نہیں چلاتا۔

| ماخذ فیلڈ | منزل فیلڈ | نمونہ قدر |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

اپنے ٹرانزیکشنل اور مارکیٹنگ ای میل ڈیٹا کو متحد کرنے، ڈیلیوری ایونٹس اور engagement میٹرکس سنک کرنے، اور اپنے ای میل بنیادی ڈھانچے کو ایک واحد گاہک view میں یکجا کرنے کے لیے Tajo کے ذریعے Mailgun کو Brevo سے منسلک کریں۔

## جائزہ

| خاصیت | قدر |
| --- | --- |
| **پلیٹ فارم** | Mailgun (by Sinch) |
| **زمرہ** | ای میل مارکیٹنگ |
| **سیٹ اپ کی پیچیدگی** | آسان |
| **آفیشل انٹیگریشن** | نہیں |
| **سنک شدہ ڈیٹا** | ایونٹس، رابطے، Deliverability، مہمات |
| **تصدیق کا طریقہ** | API Key (HTTP Basic Auth) |

## خصوصیات

- **ڈیلیوری ایونٹ سنک** - delivered، bounced، opened، اور clicked ایونٹس ٹریک کریں
- **Engagement میٹرکس** - open اور click ریٹس کو Brevo رابطہ خصوصیات پر سنک کریں
- **Bounce انتظام** - Brevo میں bounce شدہ پتوں کو خودکار طور پر suppress کریں
- **Complaint ہینڈلنگ** - فہرست hygiene کے لیے spam complaints سنک کریں
- **Domain reputation** - بھیجنے والے domain کی صحت اور deliverability کی نگرانی کریں
- **ٹرانزیکشنل ای میل ٹریکنگ** - مارکیٹنگ ڈیٹا کے ساتھ ٹرانزیکشنل sends کا تعلق قائم کریں

## شرائط

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

1. تصدیق شدہ بھیجنے والے domain کے ساتھ Mailgun اکاؤنٹ
2. [Mailgun Dashboard](https://app.mailgun.com/settings/api_security) سے Mailgun API key
3. API رسائی کے ساتھ Brevo اکاؤنٹ
4. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

## تصدیق

### API Key تصدیق

Mailgun HTTP Basic Authentication کا استعمال کرتا ہے جس میں `api` کو username اور آپ کی API key کو password کے طور پر استعمال کیا جاتا ہے:

```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 Key اقسام

Mailgun domain مخصوص بھیجنے والی keys اور اکاؤنٹ سطح کی API keys فراہم کرتا ہے۔ پیغام آپریشنز کے لیے domain sending keys اور انتظامی آپریشنز کے لیے اکاؤنٹ API key استعمال کریں۔

## تشکیل

### بنیادی سیٹ اپ

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

## API اینڈ پوائنٹس

| اینڈ پوائنٹ | طریقہ | تفصیل |
| --- | --- | --- |
| `https://api.mailgun.net/v3/{domain}/messages` | POST | ای میل پیغامات بھیجیں |
| `https://api.mailgun.net/v3/{domain}/events` | GET | ایونٹ لاگز کی کوئری |
| `https://api.mailgun.net/v3/{domain}/bounces` | GET | bounces کی فہرست |
| `https://api.mailgun.net/v3/{domain}/complaints` | GET | complaints کی فہرست |
| `https://api.mailgun.net/v3/{domain}/unsubscribes` | GET | unsubscribes کی فہرست |
| `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 | domains کی فہرست |
| `https://api.mailgun.net/v4/address/validate` | POST | ای میل پتہ کی توثیق |

EU Region

EU پر مبنی Mailgun اکاؤنٹس کے لیے، تمام API اینڈ پوائنٹس کے لیے `https://api.mailgun.net` کے بجائے `https://api.eu.mailgun.net` استعمال کریں۔

## کوڈ کی مثالیں

### کنیکٹر کو انیشیلائز کریں

```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.' }
```

### ای میل ایونٹس کو 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
}
```

### Mailgun Webhooks کو سنبھالیں

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

### Bounces اور Complaints سنک کریں

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

## شرح کی حدود

| اینڈ پوائنٹ | حد | نوٹس |
| --- | --- | --- |
| Messages API | پلان کے مطابق مختلف | 100/گھنٹہ (free), لامحدود (paid) |
| Events API | کوئی واضح حد نہیں | 300 آئٹمز زیادہ سے زیادہ کے ساتھ pagination استعمال کریں |
| Validation API | پلان پر مبنی | Pay-per-validation |
| Webhooks | ریئل ٹائم | ڈیلیوری پر کوئی شرح کی حد نہیں |
| Suppressions API | کوئی واضح حد نہیں | معیاری شرح کی حد لاگو ہوتی ہے |

بھیجنے کی حدود

Mailgun آپ کے پلان اور domain reputation کی بنیاد پر بھیجنے کی حدود نافذ کرتا ہے۔ نئے domains کم حدود کے ساتھ شروع ہوتے ہیں جو آپ کے sender reputation میں بہتری کے ساتھ بڑھتی ہیں۔ Mailgun dashboard میں اپنے domain کے اعدادوشمار کی نگرانی کریں۔

## ٹربل شوٹنگ

| مسئلہ | وجہ | حل |
| --- | --- | --- |
| 401 Unauthorized | غلط API key | Mailgun dashboard میں API key کی تصدیق کریں |
| Domain تصدیق شدہ نہیں | DNS records غائب | مطلوبہ TXT, CNAME, MX records شامل کریں |
| Webhook موصول نہیں ہوا | URL قابل رسائی نہیں | یقینی بنائیں کہ webhook URL عوامی طور پر قابل رسائی ہے |
| ایونٹس غائب | وقت کی حد بہت تنگ | `begin`/`end` پیرامیٹرز کو پھیلائیں |
| کم deliverability | Domain reputation | domain stats اور تصدیق چیک کریں |

### ڈیبگ موڈ

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

## بہترین طرز عمل

1. **بھیجنے والے domains کی تصدیق کریں** - بہترین deliverability کے لیے DNS verification مکمل کریں
2. **ایونٹس کے لیے webhooks استعمال کریں** - Events API کو polling کرنے کے بجائے ریئل ٹائم webhook ڈیلیوری
3. **Bounces کو فعال طور پر سنبھالیں** - hard bounces کو فوراً Brevo میں suppress کریں
4. **اپنے پیغامات کو ٹیگ کریں** - ای میل کارکردگی کو زمرہ بندی اور تجزیہ کرنے کے لیے ٹیگز استعمال کریں
5. **Domain reputation کی نگرانی کریں** - Mailgun dashboard میں deliverability میٹرکس ٹریک کریں
6. **ای میل توثیق استعمال کریں** - Brevo فہرستوں میں شامل کرنے سے پہلے پتوں کی توثیق کریں

## سیکیورٹی

- **HTTP Basic Auth** - API key Authorization ہیڈر کے ذریعے منتقل
- **Webhook دستخط** - HMAC-SHA256 دستخط کی توثیق
- **Domain تصدیق** - SPF, DKIM, اور DMARC DNS تصدیق
- **IP وائٹ لسٹنگ** - dedicated IP plans کے لیے دستیاب
- **TLS انکرپشن** - تمام API اینڈ پوائنٹس کو HTTPS درکار ہے
- **Key روٹیشن** - Mailgun dashboard کے ذریعے API keys کو وقتاً فوقتاً گردش دیں

## متعلقہ وسائل

- [Brevo کنیکٹر](https://tajo.io/ur/docs/connectors/marketing/brevo)
- [Segment کنیکٹر](https://tajo.io/ur/docs/connectors/custom/segment)
- [گاہک سنک اسکل](https://tajo.io/ur/docs/skills/data-sync/customer-sync)
- [Mailgun API دستاویزات](https://documentation.mailgun.com/)
