# SMTP गेटवे

SMTP गेटवे मानक मेल सबमिशन स्वीकार करता है और प्रत्येक संदेश को एक ट्रांसेक्शनल ईमेल के रूप में [Messaging API v2 `Notify`](/hi/developer/api-reference/messaging-api-v2/notify/) पर फॉरवर्ड करता है। इसका उपयोग तब करें जब एक मौजूदा मेल टूल — एक MTA, एक फ्रेमवर्क मेलर, एक SDK — को API पर JSON अनुरोध की तुलना में प्लग इन करना आसान हो।

<Aside type="note">
गेटवे केवल ट्रांसेक्शनल है। ऑडियंस सेगमेंट, शेड्यूलिंग, या A/B अभियानों के लिए, सीधे [`Notify`](/hi/developer/api-reference/messaging-api-v2/notify/) को कॉल करें।
</Aside>

## यह कैसे काम करता है

```
   any SMTP client          smtp gateway              Messaging API v2
   ──────────────── ──────> ──────────────── ──────> ─────────────────
       submission            STARTTLS                gRPC Notify
       AUTH PLAIN            + AUTH PLAIN            Authorization: Token
```

1. क्लाइंट `smtp.pushwoosh.com` से पोर्ट `587` पर कनेक्ट होता है, कनेक्शन को `STARTTLS` के साथ TLS में अपग्रेड करता है, फिर `AUTH PLAIN` के साथ प्रमाणित करता है।
2. गेटवे MIME संदेश को पार्स करता है और `platforms: ["EMAIL"]` और `message_type: TRANSACTIONAL` के साथ एक `Notify` अनुरोध बनाता है।
3. `AUTH PLAIN` से API टोकन को मैसेजिंग API में `Authorization` हेडर के रूप में फॉरवर्ड किया जाता है। टोकन सत्यापन, एप्लिकेशन मिलान, भेजने की पहचान, और बाउंस हैंडलिंग सभी API साइड पर होते हैं।

## एंडपॉइंट

| सेटिंग <div style="width:140px"></div> | मान <div style="width:340px"></div> |
|---------|-------|
| होस्ट    | `smtp.pushwoosh.com` |
| पोर्ट    | `587` (SMTP सबमिशन) |
| TLS     | `STARTTLS` — `AUTH` से पहले अनिवार्य |
| ऑथ    | `AUTH PLAIN` |

## प्रमाणीकरण

`AUTH PLAIN` दो Pushwoosh क्रेडेंशियल्स का उपयोग करता है।

| AUTH फ़ील्ड <div style="width:120px"></div> | Pushwoosh मान |
|------------|-----------------|
| `username` | [एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code), उदाहरण के लिए `XXXXX-XXXXX` |
| `password` | [सर्वर API टोकन](/hi/developer/api-reference/api-access-token/#server-api-token) |

`AUTH` को TLS के बाहर अस्वीकार कर दिया जाता है। टोकन कभी भी संदेश में दिखाई नहीं देता है — इसका उपयोग केवल अपस्ट्रीम `Notify` कॉल को अधिकृत करने के लिए किया जाता है।

## संदेश Notify से कैसे मैप होते हैं

| MIME या SMTP फ़ील्ड <div style="width:200px"></div> | Notify फ़ील्ड |
|--------------------|--------------|
| `RCPT TO`          | `target.users.list` — Pushwoosh इन पतों को सब्सक्राइबर्स के रूप में हल करता है |
| AUTH `username`    | `application` |
| `Subject:` हेडर  | `email_payload.subject["default"]` (RFC 2047 डीकोड किया गया) |
| `From:` हेडर     | `email_payload.from` — `नाम` और `ईमेल` |
| HTML भाग          | `email_payload.body` (जब दोनों भाग मौजूद हों तो पसंदीदा) |
| प्लेन-टेक्स्ट भाग    | `email_payload.body` (जब HTML अनुपस्थित हो तो उपयोग किया जाता है) |
| `MAIL FROM`        | अनदेखा किया गया — Pushwoosh अपनी खुद की भेजने वाली पहचान को प्रतिस्थापित करता है और बाउंस को स्वयं संभालता है |

प्रत्येक संदेश `schedule.send_date: now` के साथ भेजा जाता है।

## सीमाएं

| सीमा <div style="width:280px"></div> | मान |
|-------|-------|
| अधिकतम संदेश आकार       | 25 MiB |
| प्रति लिफाफा अधिकतम प्राप्तकर्ता (`RCPT TO`) | 50 |

## त्रुटि मैपिंग

मैसेजिंग API द्वारा लौटाए गए gRPC स्थिति कोड को मानक SMTP उत्तर कोड में अनुवादित किया जाता है ताकि कोई भी SMTP क्लाइंट एक सार्थक त्रुटि सतह पर ला सके।

| अपस्ट्रीम gRPC स्थिति <div style="width:280px"></div> | SMTP उत्तर <div style="width:120px"></div> | अर्थ |
|----------------------|------------|---------|
| `Unauthenticated`                                          | `535 5.7.8` | खराब एप्लिकेशन कोड या API टोकन। |
| `PermissionDenied`                                         | `550 5.7.1` | टोकन के पास इस एप्लिकेशन के लिए कोई अधिकार नहीं है। |
| `InvalidArgument` / `FailedPrecondition` / `OutOfRange`    | `550 5.6.0` | खराब MIME सामग्री (उदाहरण के लिए विषय या बॉडी का गायब होना)। |
| `NotFound`                                                 | `550 5.1.1` | एप्लिकेशन या प्राप्तकर्ता नहीं मिला। |
| `ResourceExhausted`                                        | `452 4.5.3` | दर सीमा तक पहुंच गया — बाद में पुनः प्रयास करें। |
| `DeadlineExceeded` / `Unavailable`                         | `451 4.4.1` | क्षणिक अपस्ट्रीम त्रुटि — बाद में पुनः प्रयास करें। |
| कोई अन्य विफलता                                          | `451 4.5.0` | क्षणिक आंतरिक त्रुटि — बाद में पुनः प्रयास करें। |

`4xx` रेंज के कोड अस्थायी हैं और क्लाइंट द्वारा पुनः प्रयास किए जाने चाहिए; `5xx` रेंज के कोड स्थायी हैं और क्लाइंट-साइड फिक्स की आवश्यकता होती है।

## उदाहरण: swaks के साथ भेजें

```bash
swaks --server smtp.pushwoosh.com:587 \
      --auth-user "XXXXX-XXXXX" \
      --auth-password "YOUR_API_TOKEN" \
      --tls \
      --from from@example.com \
      --to user@example.com \
      --header "Subject: Hello from SMTP gateway" \
      --body "Plain-text body"
```

MIME बॉडी में `From:` हेडर वह है जो Pushwoosh तक पहुंचता है — `--from` लिफाफा (`MAIL FROM`) को छोड़ दिया जाता है।

## टिप्पणियाँ

- गेटवे स्टेटलेस है और संदेशों को संग्रहीत नहीं करता है। एक बार फॉरवर्ड होने के बाद, डिलीवरी मैसेजिंग API के स्वामित्व में होती है।
- बाउंस, शिकायतें, और अनसब्सक्राइब लिंक Pushwoosh द्वारा संभाले जाते हैं, जैसे किसी अन्य ट्रांसेक्शनल ईमेल के लिए।
- अभियान भेजने (सेगमेंट, शेड्यूलिंग, A/B) के लिए, सीधे [`Notify`](/hi/developer/api-reference/messaging-api-v2/notify/) का उपयोग करें — SMTP गेटवे केवल सबमिशन के लिए है।

## यह भी देखें

<CardGrid>
  <LinkCard title="मैसेजिंग API v2 का अवलोकन" href="/developer/api-reference/messaging-api-v2/" />
  <LinkCard title="Notify" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="ईमेल पेलोड संदर्भ" href="/developer/api-reference/messaging-api-v2/email-payload-reference/" />
  <LinkCard title="मार्केटिंग बनाम ट्रांसेक्शनल" href="/product/messaging-channels/marketing-vs-transactional/" />
</CardGrid>