---
title: "Mailgun कनेक्टर"
description: "Tajo के माध्यम से Brevo के साथ ईमेल डिलीवरी डेटा, एंगेजमेंट मेट्रिक्स, और ट्रांज़ैक्शनल ईमेल इवेंट्स सिंक करने के लिए संपूर्ण Mailgun इंटीग्रेशन गाइड।"
url: https://tajo.io/hi/docs/connectors/marketing/mailgun/
markdown: https://tajo.io/hi/docs/connectors/marketing/mailgun.md
lang: hi-IN
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` |

अपने ट्रांज़ैक्शनल और मार्केटिंग ईमेल डेटा को एकीकृत करने, डिलीवरी इवेंट्स और एंगेजमेंट मेट्रिक्स सिंक करने, और अपने ईमेल इन्फ्रास्ट्रक्चर को एक एकल ग्राहक दृश्य में समेकित करने के लिए Tajo के माध्यम से Mailgun को Brevo से कनेक्ट करें।

## अवलोकन

| गुण | मान |
| --- | --- |
| **प्लेटफ़ॉर्म** | Mailgun (by Sinch) |
| **श्रेणी** | Email Marketing |
| **सेटअप जटिलता** | आसान |
| **आधिकारिक इंटीग्रेशन** | नहीं |
| **सिंक किया गया डेटा** | इवेंट्स, कॉन्टैक्ट्स, Deliverability, कैंपेन |
| **Auth Method** | API Key (HTTP Basic Auth) |

## विशेषताएं

- **Delivery इवेंट सिंक** - delivered, bounced, opened, और clicked इवेंट्स ट्रैक करें
- **एंगेजमेंट मेट्रिक्स** - open और click rates को Brevo कॉन्टैक्ट एट्रिब्यूट्स में सिंक करें
- **Bounce प्रबंधन** - Brevo में बाउंस्ड एड्रेस को स्वचालित रूप से suppress करें
- **Complaint हैंडलिंग** - list हाइजीन के लिए spam complaints सिंक करें
- **Domain reputation** - sending domain स्वास्थ्य और deliverability की निगरानी करें
- **Transactional ईमेल ट्रैकिंग** - transactional sends को मार्केटिंग डेटा के साथ correlate करें

## पूर्वावश्यकताएं

शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:

1. एक सत्यापित sending 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 का उपयोग करता है जिसमें username के रूप में `api` और password के रूप में आपकी API key होती है:

```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-specific sending keys और account-level API keys प्रदान करता है। message operations के लिए domain sending keys और management operations के लिए account 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 | ईमेल messages भेजें |
| `https://api.mailgun.net/v3/{domain}/events` | GET | इवेंट logs क्वेरी करें |
| `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 | tags सूचीबद्ध करें |
| `https://api.mailgun.net/v3/{domain}/tags/{tag}/stats` | GET | tag आंकड़े प्राप्त करें |
| `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/hr (free), असीमित (paid) |
| Events API | कोई स्पष्ट सीमा नहीं | 300 आइटम max के साथ pagination का उपयोग करें |
| Validation API | प्लान पर आधारित | Pay-per-validation |
| Webhooks | रीयल-टाइम | डिलीवरी पर कोई दर सीमा नहीं |
| Suppressions API | कोई स्पष्ट सीमा नहीं | मानक दर सीमा लागू होती है |

Sending सीमाएं

Mailgun आपके प्लान और domain reputation के आधार पर sending सीमाएं लागू करता है। नए domains कम सीमाओं के साथ शुरू होते हैं जो आपकी sender reputation में सुधार होने पर बढ़ती हैं। Mailgun डैशबोर्ड में अपने domain आंकड़ों की निगरानी करें।

## समस्या निवारण

| समस्या | कारण | समाधान |
| --- | --- | --- |
| 401 Unauthorized | अमान्य API key | Mailgun डैशबोर्ड में API key सत्यापित करें |
| Domain सत्यापित नहीं | DNS records गायब | आवश्यक TXT, CNAME, MX records जोड़ें |
| Webhook प्राप्त नहीं हुआ | URL एक्सेस योग्य नहीं | सुनिश्चित करें कि webhook URL सार्वजनिक रूप से पहुंच योग्य है |
| इवेंट्स गायब | Time range बहुत संकीर्ण | `begin`/`end` पैरामीटर का विस्तार करें |
| कम deliverability | Domain reputation | domain आंकड़े और प्रमाणीकरण जांचें |

### डीबग मोड

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

## सर्वोत्तम प्रथाएं

1. **sending domains सत्यापित करें** - इष्टतम deliverability के लिए DNS सत्यापन पूरा करें
2. **इवेंट्स के लिए webhooks का उपयोग करें** - रीयल-टाइम webhook डिलीवरी बनाम Events API पोलिंग
3. **bounces को सक्रिय रूप से हैंडल करें** - hard bounces को Brevo में तुरंत suppress करें
4. **अपने messages को tag करें** - ईमेल प्रदर्शन को वर्गीकृत और विश्लेषित करने के लिए tags का उपयोग करें
5. **domain reputation की निगरानी करें** - Mailgun डैशबोर्ड में deliverability मेट्रिक्स ट्रैक करें
6. **ईमेल validation का उपयोग करें** - Brevo lists में जोड़ने से पहले एड्रेस मान्य करें

## सुरक्षा

- **HTTP Basic Auth** - Authorization हेडर के माध्यम से API key प्रसारित
- **Webhook सिग्नेचर** - HMAC-SHA256 सिग्नेचर सत्यापन
- **Domain सत्यापन** - SPF, DKIM, और DMARC DNS प्रमाणीकरण
- **IP whitelisting** - dedicated IP प्लान्स के लिए उपलब्ध
- **TLS एन्क्रिप्शन** - सभी API एंडपॉइंट्स को HTTPS की आवश्यकता है
- **Key rotation** - Mailgun डैशबोर्ड के माध्यम से समय-समय पर API keys रोटेट करें

## संबंधित संसाधन

- [Brevo Connector](https://tajo.io/hi/docs/connectors/marketing/brevo)
- [Segment Connector](https://tajo.io/hi/docs/connectors/custom/segment)
- [Customer Sync Skill](https://tajo.io/hi/docs/skills/data-sync/customer-sync)
- [Mailgun API Documentation](https://documentation.mailgun.com/)
