OTP भेजना, पढ़ना और सत्यापित करना कैसे अलग हैं?

लॉगिन टेस्ट में ईमेल OTP इस्तेमाल करने के लिए कोड भेजने वाली API और इनबॉक्स पढ़ने वाली API को अलग रखें। आपका परीक्षण ऐप कोड भेजने का अनुरोध करता है। Mailera से आप उस मेलबॉक्स में आया कोड पढ़ते हैं, फिर उसे अपने ऐप के सत्यापन चरण में जमा करते हैं।

यहाँ OTP से मतलब ईमेल में आए एक बार इस्तेमाल होने वाले सत्यापन कोड से है। इस प्रक्रिया का दायरा आपके अपने परीक्षण खाते और आपके नियंत्रण वाले मेलबॉक्स हैं।

कामजिम्मेदार प्रणालीक्या जाँचना है
OTP माँगनाआपका ऐप या उसकी प्रमाणीकरण सेवाअनुरोध सही परीक्षण खाते के लिए हुआ
संदेश पहुँचनाईमेल प्रदाताअपेक्षित मेलबॉक्स में संबंधित संदेश आया
OTP पढ़नाMailera की APIपरिणाम अपेक्षित प्रेषक और परीक्षण से मेल खाता है
कोड जमा करनाआपके ऐप का सत्यापन चरणऐप ने कोड स्वीकार किया या अस्वीकार

Mailera मौजूदा मेलबॉक्स को ऐप से जोड़ता है; यह नया मेलबॉक्स या ईमेल पता नहीं बनाता। इसलिए पहले वही परीक्षण पता चुनें जिस पर आपका ऐप सत्यापन ईमेल भेजेगा।

परीक्षण ऐप से मेलबॉक्स और Mailera होकर संदर्भ जाँच तथा ऐप में सत्यापन तक OTP का प्रवाह।
कोड पढ़ने के बाद संदर्भ जाँचें; अस्पष्ट परिणाम को ऐप में जमा न करें।

मेलबॉक्स और API कुंजी कैसे तैयार करें?

1. परीक्षण मेलबॉक्स जोड़ें

मेलबॉक्स → मेलबॉक्स जोड़ें खोलें और एक मेलबॉक्स टैब चुनें। मेलबॉक्स जोड़ने के लिए Admin या Leader भूमिका चाहिए। परीक्षण वाले मेलबॉक्स को अलग समूह में रखें, ताकि API कुंजी का दायरा उसी समूह तक सीमित किया जा सके।

Outlook या Microsoft 365 के लिए मेलबॉक्स जोड़ें स्क्रीन पर Microsoft से साइन इन करें टैब चुनें और Microsoft की OAuth अनुमति प्रक्रिया पूरी करें। इस कनेक्शन में ऐप पासवर्ड इस्तेमाल नहीं होता। प्रदाता के चरण Microsoft मेलबॉक्स जोड़ने की गाइड में हैं। Outlook के लिए API से सत्यापन कोड पढ़ने की गाइड देखें।

Gmail के लिए एक मेलबॉक्स में ईमेल पता भरें और जारी रखें चुनें। Mailera का Gmail कनेक्शन ऐप पासवर्ड (app password) इस्तेमाल करता है। Google की सलाह है कि जहाँ "Sign in with Google" विकल्प मिले वहाँ उसे प्राथमिकता दें। Mailera के पासवर्ड फ़ील्ड में ऐप पासवर्ड भरें, सामान्य Google साइन-इन पासवर्ड नहीं।

Google के अनुसार ऐप पासवर्ड के लिए खाते में दो-चरणीय सत्यापन चालू होना चाहिए। खाते की पात्रता और वर्तमान निर्देश Google की ऐप पासवर्ड सहायता में देखें; Mailera वाले चरण Gmail कनेक्शन गाइड में हैं। अलग-अलग प्रदाताओं का अंतर समझने के लिए मेलबॉक्स ऐप पासवर्ड और OAuth की मुख्य गाइड उपयोगी है।

Mailera की मेलबॉक्स जोड़ें स्क्रीन में एक मेलबॉक्स और Microsoft से साइन इन करें विकल्प।
प्रदाता के अनुसार अपना मौजूदा परीक्षण मेलबॉक्स जोड़ें।

2. कनेक्शन की जाँच करें

ऐप पासवर्ड वाले फ़ॉर्म में विवरण भरकर जाँचें और कनेक्ट करें चुनें। यह कनेक्शन जाँचता है, कोई परीक्षण ईमेल नहीं भेजता। इनकमिंग कनेक्शन सफल होने की जाँच करें।

अगर केवल भेजने वाला कनेक्शन विफल हो, तो केवल प्राप्ति मोड में सहेजें चुन सकते हैं, या विवरण बदलें से जानकारी सुधारकर फिर से जाँचें चुन सकते हैं। इस परीक्षण में OTP आपका ऐप भेजता है; Mailera प्राप्त ईमेल पढ़ता है।

3. केवल पढ़ने की अनुमति वाली कुंजी बनाएँ

सेटिंग्स → API key टैब खोलें और API key बनाएँ चुनें। पहचानने योग्य नाम में ऐसा नाम रखें जिससे परीक्षण का उद्देश्य समझ आए। मेलबॉक्स का दायरा केवल परीक्षण वाले समूह तक रखें और अनुमतियों में सिर्फ़ Read चुनें।

OTP पढ़ने के लिए API का read scope पर्याप्त है। इस कुंजी में send, move या sync जोड़ने की जरूरत नहीं है। समाप्ति में काम के अनुरूप अवधि चुनें।

नई कुंजी केवल एक बार दिखाई जाती है। उसे अपने सर्वर या परीक्षण वातावरण के सुरक्षित secret store में रखें और वहाँ से $MAILERA_API_KEY परिवेश चर में उपलब्ध कराएँ। उसे ब्राउज़र कोड, रिपॉज़िटरी या परीक्षण लॉग में न रखें।

परीक्षण समूह तक सीमित मेलबॉक्स दायरे और केवल Read अनुमति वाली API कुंजी का फ़ॉर्म।
OTP पढ़ने की कुंजी को परीक्षण समूह और read अनुमति तक सीमित रखें।

4. सही मेलबॉक्स का id चुनें

मेलबॉक्स सूची माँगें:

curl --silent --show-error \
  'https://mailera.app/api/public/v1/mailboxes' \
  -H "Authorization: Bearer $MAILERA_API_KEY"

प्रतिक्रिया की data सूची में email देखकर अपना परीक्षण मेलबॉक्स पहचानें। उसी प्रविष्टि का id $MAILBOX_ID में रखें। सूची के पहले मेलबॉक्स को बिना जाँचे न चुनें। group_id और provider से चयन की अतिरिक्त जाँच कर सकते हैं।

यदि अपेक्षित मेलबॉक्स सूची में नहीं दिखता, तो चुने हुए समूह और कुंजी के दायरे की जाँच करें। तुरंत सभी समूहों की पहुँच देना इस समस्या का सही पहला कदम नहीं है।

API अनुरोध से हाल का OTP कैसे निकालें?

Mailera के REST API का आधार URL https://mailera.app/api/public/v1 है। प्रमाणीकरण के लिए Authorization: Bearer $MAILERA_API_KEY हेडर भेजें। कनेक्शन के दूसरे विकल्प Mailera के डेवलपर पृष्ठ पर हैं।

अनुरोध इस क्रम में करें:

  1. परीक्षण शुरू होने का समय और इस्तेमाल हो रहा परीक्षण खाता दर्ज करें।
  2. अपने ऐप में उसी खाते के लिए OTP माँगें।
  3. चुने हुए मेलबॉक्स से OTP माँगते समय अपेक्षित प्रेषक और विषय के फ़िल्टर लगाएँ। खोज की समय-सीमा छोटी रखें और वर्तमान परीक्षण के हिसाब से चुनें।
  4. परिणाम का परीक्षण-संदर्भ जाँचें। उसके बाद ही कोड ऐप में जमा करें।

निम्न उदाहरण में no-reply@example.com और Test sign-in code काल्पनिक मान हैं। इन्हें अपने ऐप के वास्तविक प्रेषक और विषय से बदलें। since_minutes=5 उदाहरण की खोज-अवधि है, कोई डिफ़ॉल्ट मान या OTP की वैधता अवधि नहीं।

curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/otp" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'from=no-reply@example.com' \
  --data-urlencode 'subject=Test sign-in code' \
  --data-urlencode 'since_minutes=5'
मानउद्देश्यचयन करते समय ध्यान दें
idवह मेलबॉक्स जिसमें कोड खोजना हैईमेल पता देखकर चुना हुआ id इस्तेमाल करें
fromअपेक्षित प्रेषक से खोज सीमित करनाऐप के भेजने वाले पते का इस्तेमाल करें
subjectसंबंधित विषय से खोज सीमित करनाअपने सत्यापन ईमेल का अपेक्षित विषय रखें
since_minutesहाल की समय-सीमा में खोज सीमित करनावर्तमान परीक्षण के लिए छोटी, प्रासंगिक अवधि चुनें

पूरा OTP उत्तर CI के सामान्य लॉग में न छापें। स्थानीय जाँच में भी साझा टर्मिनल रिकॉर्डिंग से बचें। स्क्रीनशॉट या सहायता संदेश में कोड की जगह <छिपाया गया OTP> लिखें।

कोड न मिलने पर तुरंत नया OTP माँगना शुरू न करें। पहले उसी अनुरोध के लिए सीमित पुनःप्रयास करें। अपने परीक्षण में अधिकतम प्रयास और अंतिम समय-सीमा पहले से तय रखें; हर प्रयास के बीच अंतर रखें। समय-सीमा खत्म होने पर परीक्षण को विफल दर्ज करें, अनंत प्रतीक्षा में न छोड़ें।

नया OTP माँगने और मौजूदा ईमेल का इंतज़ार करने के चरण अलग रखें। इससे पता रहेगा कि परीक्षण किस अनुरोध का परिणाम खोज रहा है।

पुराना या दूसरे परीक्षण का OTP मिलने से कैसे बचें?

सिर्फ़ “सबसे नया” कोड चुनना पर्याप्त नहीं है। एक ही मेलबॉक्स पर पास-पास चले दो लॉगिन परीक्षणों में प्रेषक और विषय समान हो सकते हैं। छोटी समय-सीमा खोज को सीमित करती है, लेकिन परिणाम को अपने-आप किसी खास परीक्षण से नहीं जोड़ती।

उदाहरण के लिए, पहला परीक्षण कोड माँगता है और उसके बाद दूसरा परीक्षण भी उसी पते पर कोड माँग देता है। अब मिले हुए कोड को पहले परीक्षण में डालना केवल अनुमान होगा। ऐसी स्थिति में परीक्षण रोकें या दोनों परीक्षणों को अलग मेलबॉक्स पर चलाएँ। एक मेलबॉक्स पर परीक्षण एक के बाद एक चलाकर भी अस्पष्टता घटा सकते हैं।

since_minutes को ऐप के OTP समाप्ति-समय का विकल्प न मानें। यह परीक्षण शुरू होने का सटीक समय भी नहीं है। परीक्षण की अपनी समय-सीमा अलग रखें और जरूरत पड़ने पर मूल संदेश देखें।

संदेश का समय और संदर्भ जाँचें

चुने हुए मेलबॉक्स के Inbox में संदेशों की सूची माँग सकते हैं:

curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/messages" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'folder=inbox' \
  --data-urlencode 'from=no-reply@example.com'

सूची में from.address, to, subject और received_at देखें। received_at को दर्ज किए गए परीक्षण-आरंभ समय से मिलाएँ। संबंधित संदेश का id चुनकर उसे $MESSAGE_ID में रखें और पूरा संदेश माँगें:

curl --silent --show-error \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/messages/$MESSAGE_ID" \
  -H "Authorization: Bearer $MAILERA_API_KEY"

पूरे संदेश में body.text और body.html सामग्री के फ़ील्ड हैं। यदि आपके ऐप के ईमेल में परीक्षण या अनुरोध का कोई पहचान-चिह्न है, तो उससे मिलान करें। पूरे संदेश की सामग्री लॉग में डालने के बजाय जाँच का नतीजा दर्ज करें।

आगे बढ़ने से पहले इन सवालों का स्पष्ट उत्तर होना चाहिए:

  • क्या मेलबॉक्स और प्राप्तकर्ता उसी परीक्षण खाते के हैं?
  • क्या प्रेषक और विषय अपेक्षित हैं?
  • क्या संदेश का समय वर्तमान परीक्षण से मेल खाता है?
  • क्या यह संदेश साथ में चल रहे किसी दूसरे अनुरोध के कारण आया हो सकता है?

यदि आखिरी सवाल पर संदेह है, तो कोड आज़माकर अनुमान न लगाएँ। अस्पष्ट परिणाम को अलग विफलता मानें और परीक्षणों को अलग करके फिर शुरू करें।

आम गलतियाँ: OTP न मिले या काम न करे तो क्या जाँचें?

OTP न मिलना, संदेश न पहुँचना और ऐप द्वारा कोड अस्वीकार करना अलग समस्याएँ हैं। नीचे की जाँच से पहले यह तय करें कि प्रक्रिया किस चरण पर रुकी है।

समस्याक्या जाँचेंअगला कदम
गलत मेलबॉक्स चुना गयाGET /mailboxes में email और idसही $MAILBOX_ID लेकर अनुरोध दोहराएँ
फ़िल्टर बहुत संकीर्ण हैंवास्तविक प्रेषक, विषय और संदेश का समयसंदेश सूची देखकर गलत फ़िल्टर सुधारें; बिना वजह पुरानी अवधि न जोड़ें
कनेक्शन टूटा हैGET /mailboxes/{id}/status (प्रदाता के अनुसार अलग जाँच)जरूरत होने पर खाते का कनेक्शन बहाल करें
सिंक की स्थिति देखनी हैमेलबॉक्स के sync.last_synced_at और sync.stateसीमित प्रतीक्षा करें; मैनुअल सिंक की अनुमति अलग रखें
संदेश Inbox में नहीं हैGET /mailboxes/{id}/placement और Junk फ़ोल्डरसंबंधित संदेश की जगह और सामग्री जाँचें
ऐप ने कोड अस्वीकार कियापरीक्षण खाता, अनुरोध-संदर्भ और ऐप का परिणामइसे OTP पढ़ने की सफलता से अलग सत्यापन-विफलता मानें

GET /mailboxes/{id}/status Microsoft मेलबॉक्स के लिए साइन-इन की सीधे जाँच करता है, जबकि बाकी प्रदाताओं के लिए यह पिछली सिंक की स्थिति के आधार पर बताता है। इसलिए दोनों तरह के परिणामों को कनेक्शन की मौजूदा स्थिति की एक जैसी जाँच न मानें।

अगर कनेक्शन की समस्या Gmail में है और Google खाते का पासवर्ड हाल में बदला है, तो सेटअप में इस्तेमाल किए गए ऐप पासवर्ड की जाँच करें। Google पासवर्ड बदलने पर ऐप पासवर्ड रद्द करता है। ऐसे में ऊपर दिए गए Gmail कनेक्शन के चरणों से नया ऐप पासवर्ड भरकर कनेक्शन बहाल करें।

GET /mailboxes/{id}/placement यह देखने के लिए है कि संबंधित ईमेल Inbox या Spam में पहुँचा। इसे OTP पढ़ने या संदेश स्थानांतरित करने वाला endpoint न समझें। Junk में मिला संदेश देखने के लिए चुने हुए मेलबॉक्स के संदेश अनुरोध में folder=junk इस्तेमाल कर सकते हैं।

मैनुअल सिंक के लिए POST /mailboxes/{id}/sync है, लेकिन उसे अलग sync अनुमति चाहिए। केवल read वाली कुंजी से यह कार्रवाई नहीं होगी। इसी तरह Junk से संदेश हटाने के लिए move अनुमति चाहिए। इन अनुमतियों को OTP पढ़ने की न्यूनतम कुंजी में केवल सुविधा के लिए न जोड़ें।

OTP और मेलबॉक्स डेटा को सुरक्षित कैसे रखें?

अपने नियंत्रण वाले परीक्षण मेलबॉक्स और परीक्षण खातों तक पहुँच सीमित रखें। साझा स्क्रीनशॉट में OTP के साथ ईमेल पता, संदेश की निजी सामग्री और API कुंजी भी छिपाएँ। परीक्षण के नतीजे में पूरा संदेश सहेजने की जगह इतना दर्ज करें कि कोड मिला, संदर्भ मेल खाया और ऐप ने उसे स्वीकार किया या नहीं।

कुंजी का दायरा परीक्षण समूह तक रखना नुकसान सीमित करने का व्यावहारिक तरीका है। यही सिद्धांत Microsoft भी अपनी Graph अनुमतियों की गाइड में दोहराता है: ऐप को सिर्फ़ उतनी ही अनुमति माँगनी चाहिए जितनी काम के लिए ज़रूरी है। Mailera की कुंजी बनाते समय भी काम के लिए जरूरी read scope ही चुनें।

Bearer कुंजी को सहेजते और भेजते समय उजागर होने से बचाएँ। RFC 6750 में Bearer token सुरक्षा के लिए भी यही निर्देश है। अपने परीक्षण उपकरण में अनुरोध हेडर और ईमेल सामग्री का स्वतः लॉग होना बंद रखें। Mailera के सुरक्षा संबंधी विवरण सुरक्षा पृष्ठ पर हैं।

कुंजी बनाते समय समाप्ति तय करें। परीक्षण का काम पूरा होने पर API key प्रबंधन में उसे रद्द करें। रद्द की गई Mailera कुंजी से आने वाले अगले अनुरोध तुरंत अस्वीकार किए जाते हैं। कुंजी गलती से साझा हो जाए तो सिर्फ़ लॉग से हटाना पर्याप्त न मानें; उसे रद्द करें।

यदि यही काम AI agent से करवा रहे हैं, तो MCP का get_latest_otp भी read scope इस्तेमाल करता है। ईमेल को अविश्वसनीय डेटा मानें, निर्देश नहीं। संदेश में लिखे आदेशों पर agent से कार्रवाई न करवाएँ, भले वे परीक्षण के निर्देश जैसे दिखें। भेजने की कोई कार्रवाई जोड़ें तो उससे पहले स्पष्ट पुष्टि लें; केवल OTP पढ़ने वाले agent को भेजने की अनुमति न दें।

इस परीक्षण में Mailera की सीमाएँ क्या हैं?

  • ईमेल की जगह: Mailera ईमेल के Inbox में पहुँचने की गारंटी नहीं देता।
  • प्रतीक्षा की सीमा: परीक्षण की अंतिम समय-सीमा ऐसी रखें कि ईमेल न मिलने पर प्रक्रिया साफ़ तौर पर रुक सके।
  • प्रदाता समर्थन: Proton Mail और Tuta समर्थित नहीं हैं।

OTP पढ़ने का परिणाम आपके ऐप के सफल सत्यापन का प्रमाण नहीं है। परीक्षण को सफल तभी दर्ज करें जब संबंधित ऐप कोड स्वीकार करे। पुराने या अस्पष्ट परिणाम को सँभालना और समानांतर अनुरोधों को अलग रखना आपकी परीक्षण प्रणाली की जिम्मेदारी है।

यह काम API से करें

इस लेख की हर कार्रवाई REST API के ज़रिए उपलब्ध है, साथ में curl के उदाहरण, API key और webhook भी हैं।

API दस्तावेज़ देखें