> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ग्राहक ईमेल लॉग

> Dodo Payments द्वारा ग्राहक को भेजे गए हर transactional email को देखें, जाँचें कि वह पहुँचा या नहीं, ईमेल को ठीक उसी रूप में पढ़ें जिस रूप में भेजा गया था, और उसे फिर से भेजें।

<CardGroup cols={2}>
  <Card title="List Customer Emails" icon="list" href="/api-reference/customers/list-customer-emails">
    ग्राहक के भेजे गए ईमेल और उनके डिलीवरी परिणाम पढ़ें।
  </Card>

  <Card title="Get Email Content" icon="envelope-open" href="/api-reference/customers/get-customer-email-body">
    एक ईमेल को ठीक उसी रूप में पढ़ें जिस रूप में वह भेजा गया था।
  </Card>
</CardGroup>

## अवलोकन

Dodo Payments आपकी ओर से आपके ग्राहकों को transactional email भेजता है: रसीदें, रिफंड सूचनाएँ, subscription सूचनाएँ, बकाया भुगतान और recovery ईमेल, entitlement grants, और Customer Portal लॉगिन लिंक।

ग्राहक के रिकॉर्ड में **Sent Emails** टैब हर ईमेल को दर्ज करता है। हर ईमेल के लिए आप देख सकते हैं कि क्या भेजा गया, वह कहाँ तक पहुँचा, और विफल होने पर क्यों नहीं पहुँचा। आप ग्राहक को प्राप्त ईमेल खोल सकते हैं और उसे फिर से भेज सकते हैं।

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/sent-emails-tab.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=6c7fa235800cee5c32eb286312f2a52b" alt="ग्राहक का Sent Emails टैब, जिसमें हर ईमेल की डिलीवरी स्थिति दी गई है" style={{ maxHeight: '500px', width: 'auto' }} width="2310" height="996" data-path="images/email-logs/sent-emails-tab.png" />
</Frame>

<Info>
  ईमेल **180 दिनों** तक रखे जाते हैं। डिलीवरी स्थिति ईमेल provider से प्राप्त होती है और घटना के कुछ सेकंड के भीतर अपडेट हो जाती है।
</Info>

## ग्राहक के ईमेल देखना

<Steps>
  <Step title="Open the customer">
    डैशबोर्ड में **Customers** पर जाएँ और ग्राहक चुनें।
  </Step>

  <Step title="Open the Sent Emails tab">
    यह टैब पिछले 180 दिनों में इस ग्राहक को भेजे गए हर ईमेल को दिखाता है, जिसमें सबसे नया ईमेल पहले होता है।
  </Step>

  <Step title="Read a row">
    हर पंक्ति में विषय, उसके नीचे sender, category, तारीख और समय, तथा डिलीवरी स्थिति दिखाई जाती है।
  </Step>
</Steps>

## डिलीवरी स्थिति

| स्थिति       | अर्थ                                                                                      |
| ------------ | ----------------------------------------------------------------------------------------- |
| `sent`       | Dodo Payments ने ईमेल provider को सौंप दिया है। यह अपने रास्ते पर है।                     |
| `delivered`  | प्राप्तकर्ता के mail server ने ईमेल स्वीकार कर लिया।                                      |
| `failed`     | ईमेल नहीं पहुँचा। विफलता का कारण दिखाया जाता है।                                          |
| `complained` | प्राप्तकर्ता ने ईमेल को spam के रूप में चिह्नित किया।                                     |
| `blocked`    | कुछ भी नहीं भेजा गया। test mode में इसका अर्थ है कि साप्ताहिक allowance समाप्त हो गया है। |

### विफलता के कारण

जब कोई ईमेल विफल होता है, तो पंक्ति में एक कारण दिया जाता है ताकि आपको पता हो कि क्या कार्रवाई करनी है। उसे पढ़ने के लिए **Failed** स्थिति पर pointer रखें:

| कारण                                   | इसका अर्थ                                                                    | क्या करें                    |
| -------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------- |
| Mailbox does not exist                 | यह पता मौजूद नहीं है।                                                        | ग्राहक का ईमेल पता सही करें। |
| Address rejected by the mail server    | प्राप्तकर्ता server ने पता अस्वीकार कर दिया।                                 | कोई दूसरा पता इस्तेमाल करें। |
| Address blocked after earlier failures | पहले hard bounce या complaint के बाद provider ने इस पते को suppress कर दिया। | कोई दूसरा पता इस्तेमाल करें। |
| Mailbox is full                        | प्राप्तकर्ता के mailbox में जगह नहीं है।                                     | बाद में फिर से भेजें।        |
| Temporary delivery failure             | प्राप्तकर्ता server पर अस्थायी समस्या है।                                    | बाद में फिर से भेजें।        |
| Message rejected as too large          | प्राप्तकर्ता server ने आकार के कारण इसे अस्वीकार कर दिया।                    | support से संपर्क करें।      |
| Recipient marked the email as spam     | प्राप्तकर्ता ने ईमेल की report की।                                           | इसे फिर से न भेजें।          |
| Email could not be sent                | provider ने भेजने से इनकार कर दिया।                                          | फिर से भेजें।                |

इनमें से पाँच कारणों के लिए resend करते समय अलग पते की आवश्यकता होती है, क्योंकि वही पता फिर से विफल होगा। ये हैं: mailbox does not exist, address rejected, address blocked after earlier failures, message rejected as too large, और recipient marked the email as spam।

## ईमेल पढ़ना

ईमेल panel खोलने के लिए किसी पंक्ति पर **Resend** चुनें। उस panel में **Email Preview** संग्रहित प्रति को ठीक उसी रूप में दिखाता है जिस रूप में वह भेजी गई थी।

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/email-preview.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=b0d00b4b6fe62c6ace0b8a2b4419619b" alt="संग्रहित ईमेल सामग्री, जिस रूप में ग्राहक को प्राप्त हुई" style={{ maxHeight: '500px', width: 'auto' }} width="824" height="1148" data-path="images/email-logs/email-preview.png" />
</Frame>

कुछ ईमेल में दिखाने के लिए कोई सामग्री नहीं होती:

* **Customer Portal login emails.** इनमें live लॉगिन लिंक होता है, इसलिए सामग्री कभी प्रदर्शित नहीं की जाती।
* **Blocked emails.** ये provider तक कभी नहीं पहुँचे, इसलिए इनकी कोई प्रति मौजूद नहीं है।
* **180 दिनों से पुराने ईमेल।** उस समय provider सामग्री हटा देता है।

## ईमेल फिर से भेजना

किसी पंक्ति पर **Resend** चुनकर वही ईमेल फिर से भेजें। Dodo Payments इसे मूल event से फिर render करता है, इसलिए receipt हमेशा payment की वर्तमान स्थिति दिखाती है।

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/resend-email.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=8751c05df35b14f116c8d487eaae7b70" alt="ईमेल पंक्ति पर resend नियंत्रण, जिसमें अलग पते पर भेजने का विकल्प है" style={{ maxHeight: '500px', width: 'auto' }} width="896" height="2104" data-path="images/email-logs/resend-email.png" />
</Frame>

panel मूल पता **To** field में रखता है। कहीं और भेजने के लिए इसे बदलें। स्थायी विफलता के बाद अलग पता आवश्यक है, क्योंकि वही पता फिर से विफल होगा।

<Warning>
  Resend एक नया ईमेल होता है। यह टैब में अपनी अलग पंक्ति के रूप में दिखाई देता है।
</Warning>

### सीमाएँ

* हर ईमेल अधिकतम **तीन बार** फिर से भेजा जा सकता है।
* प्रयासों के बीच प्रतीक्षा आवश्यक है: पहले resend से पहले पाँच मिनट, दूसरे से पहले दस मिनट और तीसरे से पहले पंद्रह मिनट।
* जो send provider तक कभी नहीं पहुँचा, वह तीन प्रयासों की सीमा में नहीं गिना जाता। फिर भी वह प्रतीक्षा अवधि बढ़ाता है।
* Resend केवल डैशबोर्ड में उपलब्ध है। API केवल read-only है।

### Resend उपलब्ध न होने पर

| स्थिति                                               | कारण                                                            |
| ---------------------------------------------------- | --------------------------------------------------------------- |
| प्राप्तकर्ता ने ईमेल को spam के रूप में चिह्नित किया | दोबारा भेजना उनकी complaint का उल्लंघन होगा।                    |
| पता suppressed है                                    | provider send स्वीकार करता है और फिर उसे drop कर देता है।       |
| उसी ईमेल का बाद का send पहले ही हो चुका है           | यह पंक्ति history है। इसे फिर से भेजने पर दूसरी प्रति पहुँचेगी। |
| ग्राहक blocked है                                    | blocked ग्राहक को आपकी ओर से कोई और ईमेल नहीं मिलेगा।           |
| तीनों resends इस्तेमाल हो चुके हैं                   | सीमा प्रत्येक ईमेल पर लागू होती है।                             |

<Note>
  Customer Portal login email हमेशा उसी पते पर जाता है जिसने उसका अनुरोध किया था, और हर resend एक नया login link बनाता है।
</Note>

## Test Mode

Test mode वास्तविक ईमेल भेजता है, इसलिए इसमें allowance होता है: **प्रति business प्रति सप्ताह 100 ईमेल**। Resend भी इसी allowance में से उपयोग होते हैं।

जब allowance समाप्त हो जाता है, तो आगे के ईमेल `blocked` के रूप में दर्ज किए जाते हैं और कुछ भी नहीं भेजा जाता। पंक्ति में "Not sent: the test-mode email allowance for this week is spent" लिखा होता है। allowance हर सप्ताह reset होता है। Live mode में ऐसी कोई सीमा नहीं है।

<Info>
  Customer Portal login emails test mode में कभी नहीं भेजे जाते और allowance में से उपयोग नहीं होते।
</Info>

## API के माध्यम से ईमेल पढ़ना

सूची और सामग्री आपके API key के माध्यम से भी उपलब्ध हैं, इसलिए आप अपने support tools में delivery state दिखा सकते हैं।

<CodeGroup>
  ```bash cURL theme={null}
  curl https://live.dodopayments.com/customers/{customer_id}/emails?page_size=10 \
    -H "Authorization: Bearer $DODO_API_KEY"
  ```

  ```typescript Node.js theme={null}
  const res = await fetch(
    `https://live.dodopayments.com/customers/${customerId}/emails?page_size=10`,
    { headers: { Authorization: `Bearer ${process.env.DODO_API_KEY}` } },
  );
  const { items, total_count } = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      f"https://live.dodopayments.com/customers/{customer_id}/emails",
      params={"page_size": 10},
      headers={"Authorization": f"Bearer {os.environ['DODO_API_KEY']}"},
  )
  items = res.json()["items"]
  ```
</CodeGroup>

हर item में `status`, send विफल होने पर `failure_code` और `failure_reason`, तथा यह बताने के लिए `has_preview` होता है कि संग्रहित सामग्री मौजूद है या नहीं। इसमें एक `policies` object भी होता है, जो बताता है कि आप इस पंक्ति के साथ क्या कर सकते हैं:

| Field                        | अर्थ                                                        |
| ---------------------------- | ----------------------------------------------------------- |
| `resend_allowed`             | आप इस पंक्ति को फिर से भेज सकते हैं।                        |
| `retry_allowed`              | Send विफल हुआ और आप इसे फिर से भेजने का प्रयास कर सकते हैं। |
| `resends_remaining`          | ईमेल के लिए बचे हुए resends की संख्या।                      |
| `requires_different_address` | वही पता फिर से विफल होगा, इसलिए आपको दूसरा पता देना होगा।   |
| `superseded`                 | उसी ईमेल का बाद का send इस पंक्ति को replace कर चुका है।    |

अपनी eligibility स्वयं निर्धारित करने के बजाय `policies` पढ़ें। Server ऊपर दिए गए नियम लागू करता है।

<CardGroup cols={2}>
  <Card title="Customer Management" icon="user-group" href="/features/customers">
    ग्राहकों, खरीद इतिहास और self-service access को manage करें।
  </Card>

  <Card title="Communication Preferences" icon="bell" href="/features/communication-preferences">
    चुनें कि Dodo Payments आपकी ओर से कौन से ईमेल भेजे।
  </Card>
</CardGroup>
