SendGrid आने वाला ईमेल
Status200 का Incoming Email Monitor आपको हर मॉनिटर के लिए अलग, अनोखे ईमेल पतों पर भेजे गए ईमेल के आधार पर अलर्ट बनाने और सुलझाने देता है। यह पुराने सिस्टम, अलर्टिंग टूल या ईमेल भेज सकने वाली किसी भी सेवा को जोड़ने के लिए उपयोगी है।
यही सेटअप वर्कफ़्लो को भी ईमेल पाने देता है: Incoming Email ट्रिगर वाले वर्कफ़्लो को उसी डोमेन पर अपना पता मिलता है, और उस पर आने वाला हर ईमेल वर्कफ़्लो शुरू करता है। देखें ट्रिगर।
यह गाइड बताती है कि आने वाले ईमेल को आपके सेल्फ-होस्टेड Status200 इंस्टेंस तक भेजने के लिए SendGrid Inbound Parse कैसे सेट करें। Status200 Cloud को इसमें से कुछ नहीं चाहिए: वहाँ पते शुरू से ही काम करते हैं।
यह कैसे काम करता है
कोई ईमेल मॉनिटर तक कैसे पहुँचता है
- आप Status200 में एक Incoming Email Monitor बनाते हैं
- Status200 उस मॉनिटर के लिए एक अनोखा ईमेल पता बनाता है (जैसे,
monitor-abc123@inbound.yourdomain.com) - जब उस पते पर कोई ईमेल भेजा जाता है, तो SendGrid उसे प्राप्त करता है और वेबहुक के ज़रिए Status200 को भेज देता है
- Status200 आपके कॉन्फ़िगर किए गए मानदंडों के आधार पर ईमेल का मूल्यांकन करके अलर्ट बनाता या सुलझाता है
पूर्व-आवश्यकताएँ
- Inbound Parse की पहुँच वाला एक SendGrid खाता
- आपके नियंत्रण वाला एक डोमेन, जिसकी DNS सेटिंग्स तक आपकी पहुँच हो
- एक सार्वजनिक HTTPS एंडपॉइंट जो SendGrid के वेबहुक आपके Status200 इंस्टेंस तक भेजे
नेटवर्क पहुँच
Inbound Parse में SendGrid ही Status200 से कनेक्शन शुरू करता है। Status200 को केवल बाहर जाने वाली इंटरनेट पहुँच देना काफ़ी नहीं है।
| दिशा | गंतव्य | प्रोटोकॉल / पोर्ट | उद्देश्य |
|---|---|---|---|
| SendGrid → Status200 | https://your-oneuptime-domain.com/incoming-email/sendgrid/YOUR_SECRET | HTTPS / TCP 443 | पार्स किए गए ईमेल को multipart POST के रूप में पहुँचाना। |
| भेजने वाले मेल सर्वर → SendGrid | mx.sendgrid.net, आपके इनबाउंड डोमेन के सार्वजनिक MX रिकॉर्ड से चुना गया | SMTP / TCP 25 | SendGrid पर ईमेल प्राप्त करना; यह कनेक्शन आपके Status200 सर्वर तक नहीं जाता। |
| Status200 → SendGrid, केवल तब जब SendGrid प्रदाता से ईमेल भेजना अलग से कॉन्फ़िगर किया गया हो | api.sendgrid.com | HTTPS / TCP 443 | Mail Send API से सूचना ईमेल भेजना। |
वेबहुक होस्टनाम के लिए DNS प्रकाशित करें और ऐसा प्रमाणपत्र दें जिस पर सार्वजनिक क्लाइंट भरोसा करते हों। निजी Status200 डिप्लॉयमेंट केवल वेबहुक पाथ को किसी ऐसे सार्वजनिक रिवर्स प्रॉक्सी या गेटवे के ज़रिए खोल सकता है जो अंदर से Status200 तक पहुँच सके। पाथ, सीक्रेट, कंटेंट टाइप और multipart अनुरोध बॉडी को वैसा ही रखें, और POST को बिना इंटरैक्टिव लॉगिन या ब्राउज़र चैलेंज के गुज़रने दें। Status200 सर्वर को आने वाले SMTP लिसनर की ज़रूरत नहीं है। देखें SendGrid का Inbound Parse सेटअप।
INBOUND_EMAIL_WEBHOOK_SECRET को एक मज़बूत यादृच्छिक मान पर सेट करें और URL में YOUR_SECRET को उसी मान से बदलें। रूट के लिए आख़िरी पाथ सेगमेंट ज़रूरी है, और Status200 कोई ईमेल तभी लेता है जब वह सेगमेंट सीक्रेट हो। जब तक सीक्रेट सेट नहीं होता, हर ईमेल 503 के साथ अस्वीकार किया जाता है, जिसे SendGrid तीन दिन तक फिर से भेजने की कोशिश करता है। पूरा URL और मॉनिटरों के ईमेल पते गोपनीय रखें, प्रॉक्सी लॉग में भी। Status200 अभी SendGrid के हस्ताक्षरित Inbound Parse हेडर या OAuth टोकन की जाँच नहीं करता। अगर आपको ये तंत्र चाहिए, तो SendGrid के वेबहुक सुरक्षा दस्तावेज़ के अनुसार एक ऐसा गेटवे कॉन्फ़िगर करें जो पूरे URL पर भेजने से पहले उनकी जाँच करे।
SendGrid, Inbound Parse के लिए स्थिर स्रोत IP की कोई भरोसेमंद सूची नहीं देता। SendGrid के ईमेल भेजने वाले IP और mx.sendgrid.net के लिए रिज़ॉल्व होने वाले पते वेबहुक की अनुमति-सूची नहीं हैं। किसी मौजूदा DNS नतीजे को स्थायी करने के बजाय SendGrid का फ़ायरवॉल मार्गदर्शन अपनाएँ।
Inbound Parse बाहर जाने वाले ईमेल भेजने से अलग है। मॉनिटर ईमेल पाने के लिए Status200 को SendGrid API कॉल करने की ज़रूरत नहीं है। अगर आप सूचनाएँ भेजने के लिए भी SendGrid चुनते हैं, तो DNS रिज़ॉल्यूशन और api.sendgrid.com तक बाहर जाने वाला HTTPS अनुमत करें; Mail Send को भेजने के लिए किसी आने वाले कॉलबैक की ज़रूरत नहीं होती। अगर आप इसके बजाय SMTP उपयोग करते हैं, तो Status200 में कॉन्फ़िगर किया गया SMTP सर्वर और पोर्ट अनुमत करें।
सेटअप निर्देश
अपना इनबाउंड ईमेल डोमेन चुनें
Status200 के लिए ईमेल पाने के लिए समर्पित एक सबडोमेन चुनें, जैसे
inbound.yourdomain.com,email.yourdomain.comयाmonitor.yourdomain.com। इसका उपयोग केवल Status200 मॉनिटरों और वर्कफ़्लो के ईमेल के लिए होता है, इसलिए इस पर आपका कोई मेलबॉक्स नहीं रहता।इसके MX रिकॉर्ड को SendGrid की ओर इंगित करें
एक MX रिकॉर्ड जोड़ें जो सबडोमेन के ईमेल को SendGrid तक भेजे:
प्रकार होस्ट/नाम प्राथमिकता मान MX inbound 10 mx.sendgrid.net अगर आपका डोमेन
example.comहै और आपinbound.example.comउपयोग कर रहे हैं, तो रिकॉर्ड ऐसा होगा:inbound.example.com. IN MX 10 mx.sendgrid.net.DNS बदलावों को फैलने में 48 घंटे तक लग सकते हैं, लेकिन आम तौर पर वे कुछ ही घंटों में पूरे हो जाते हैं।
SendGrid में डोमेन प्रमाणित करें
प्राप्त करने वाला डोमेन आपके SendGrid में प्रमाणित डोमेन में से किसी एक का होना चाहिए। SendGrid डैशबोर्ड में Settings > Sender Authentication पर जाएँ, Authenticate Your Domain पर क्लिक करें, और माँगे गए DNS रिकॉर्ड जोड़ें (DKIM के लिए CNAME रिकॉर्ड)।
Inbound Parse वेबहुक जोड़ें
SendGrid डैशबोर्ड में Settings > Inbound Parse पर जाएँ और Add Host & URL पर क्लिक करें। इसे नीचे दिए अनुसार भरें, फिर Add पर क्लिक करें:
फ़ील्ड मान Receiving Domain आपका इनबाउंड सबडोमेन (जैसे, inbound.yourdomain.com)Destination URL https://your-oneuptime-domain.com/incoming-email/sendgrid/YOUR_SECRETCheck incoming emails for spam वैकल्पिक - चाहें तो सक्षम करें Send raw, full MIME message बिना चुने छोड़ दें (आवश्यक नहीं) POST the raw, full MIME message बिना चुने छोड़ दें (आवश्यक नहीं) Status200 कॉन्फ़िगर करें
इनबाउंड ईमेल वेरिएबल सेट करें, उसी सीक्रेट के साथ जो Destination URL में है:
Docker Compose
INBOUND_EMAIL_PROVIDER=SendGrid INBOUND_EMAIL_DOMAIN=inbound.yourdomain.com INBOUND_EMAIL_WEBHOOK_SECRET=replace-with-a-strong-random-secretKubernetes
inboundEmail: provider: "SendGrid" domain: "inbound.yourdomain.com" webhookSecret: "replace-with-a-strong-random-secret"INBOUND_EMAIL_WEBHOOK_SECRETज़रूरी है: जब तक यह खाली है या अब भी इस पेज का कोई प्लेसहोल्डर है, Status200 हर ईमेल अस्वीकार करता है।openssl rand -hex 32एक लंबा यादृच्छिक मान बनाता है।फिर इन्हें लागू करें: Docker Compose पर
npm run startचलाएँ, जो नए मानों के साथ कंटेनर फिर से बनाता है, या Kubernetes पर Helm रिलीज़ अपग्रेड करें।एक Incoming Email मॉनिटर बनाएँ
एक Incoming Email मॉनिटर बनाएँ। इसका अवलोकन पृष्ठ इसका पता दिखाता है, जैसे
monitor-abc123def456@inbound.yourdomain.com, और इसके मानदंड तय करते हैं कि कौन-से ईमेल अलर्ट बनाते हैं और कौन-से उसे सुलझाते हैं।वर्कफ़्लो भी इसी डोमेन का उपयोग करते हैं। किसी वर्कफ़्लो में Incoming Email ट्रिगर जोड़ें और उस पर क्लिक करें: उसका पता (
workflow-…@inbound.yourdomain.com) उसकी सेटिंग्स में सबसे ऊपर होता है। जब तक ऊपर के इनबाउंड ईमेल वेरिएबल सेट नहीं होते, ट्रिगर बताता है कि सर्वर ईमेल पाने के लिए सेट नहीं है।एक टेस्ट ईमेल भेजें
मॉनिटर के पते पर ऐसे विषय वाला ईमेल भेजें जो उसके मानदंडों से मेल खाता हो। मॉनिटर का सारांश ईमेल दिखाता है, और मानदंड मेल खाने पर एक अलर्ट बनता है।
एनवायरनमेंट वेरिएबल संदर्भ
| वेरिएबल | Helm मान | विवरण | आवश्यक | डिफ़ॉल्ट |
|---|---|---|---|---|
INBOUND_EMAIL_PROVIDER | inboundEmail.provider | इनबाउंड ईमेल प्रदाता। केवल SendGrid उपलब्ध है। | नहीं | SendGrid |
INBOUND_EMAIL_DOMAIN | inboundEmail.domain | इनबाउंड ईमेल के लिए कॉन्फ़िगर किया गया सबडोमेन। इसके सेट होने तक आने वाला ईमेल बंद रहता है। | हाँ | खाली |
INBOUND_EMAIL_WEBHOOK_SECRET | inboundEmail.webhookSecret | वह सीक्रेट जिससे वेबहुक URL का आख़िरी सेगमेंट /incoming-email/sendgrid/YOUR_SECRET मेल खाना चाहिए। जब तक यह खाली या प्लेसहोल्डर है, हर ईमेल अस्वीकार किया जाता है। | हाँ | खाली |
कोई Incoming Email मॉनिटर किन चीज़ों पर मिलान कर सकता है - विषय, भेजने वाला, मुख्य भाग, प्राप्तकर्ता, और यह कि ईमेल समय पर पहुँचा या नहीं - यह उपलब्ध फ़िल्टर प्रकार में है।
समस्या निवारण
ईमेल प्राप्त नहीं हो रहे
- DNS प्रसार जाँचें:
dig MX inbound.yourdomain.comकोmx.sendgrid.netलौटाना चाहिए। - SendGrid Inbound Parse सेटिंग्स सत्यापित करें: SendGrid डैशबोर्ड में Settings > Inbound Parse के अंतर्गत अपना डोमेन और वेबहुक URL जाँचें।
- Status200 लॉग जाँचें: Status200 की
appसेवा के लॉग में आने वाले ईमेल के वेबहुक अनुरोध और कोई भी त्रुटि खोजें। SendGrid, Inbound Parse के विस्तृत लॉग नहीं रखता, इसलिए यही लॉग इस बात का रिकॉर्ड हैं कि क्या पहुँचा।
वेबहुक विफल हो रहे हैं
- सार्वजनिक वेबहुक रूट जाँचें: सीक्रेट सहित पूरा URL इंटरनेट से Status200 तक पहुँचना चाहिए। अपने आख़िरी सीक्रेट सेगमेंट के बिना URL रूट से मेल नहीं खाता।
- फ़ायरवॉल नियम जाँचें: वेबहुक पाथ पर HTTPS POST अनुरोधों को लॉगिन रीडायरेक्ट या ब्राउज़र चैलेंज के बिना अनुमति दें, और SendGrid के ईमेल भेजने वाले IP को वेबहुक स्रोत की अनुमति-सूची के रूप में उपयोग न करें।
- SSL प्रमाणपत्र सत्यापित करें: वेबहुक होस्टनाम के लिए एक मान्य, सार्वजनिक रूप से विश्वसनीय प्रमाणपत्र उपयोग करें और उसकी प्रमाणपत्र शृंखला शामिल करें।
- वेबहुक सीक्रेट जाँचें: Destination URL का अंत
INBOUND_EMAIL_WEBHOOK_SECRETके मान से होना चाहिए। जब तक वेरिएबल खाली या प्लेसहोल्डर है, हर ईमेल503के साथ अस्वीकार किया जाता है, औरappसेवा का लॉग शुरू होते समय यह बताता है; किसी और चीज़ पर ख़त्म होने वाले URL पर भेजा गया ईमेल403के साथ अस्वीकार किया जाता है।
मॉनिटर अलर्ट नहीं बनाता
- मानदंड सत्यापित करें: जाँचें कि अलर्ट बनाने के आपके मानदंड ईमेल की सामग्री से मेल खाते हैं, और पैटर्न मिलान उपयोग करने से पहले सटीक स्ट्रिंग से परीक्षण करें।
- मॉनिटर जाँचें: सुनिश्चित करें कि यह अक्षम नहीं है, और इसका प्रकार Incoming Email है।
- मॉनिटर का सारांश देखें: जाँचें कि ईमेल प्राप्त और प्रोसेस हुआ या नहीं, और मूल्यांकन लॉग में पढ़ें कि मानदंड कैसे मेल खाए।
ट्रिगर बताता है कि सर्वर ईमेल पाने के लिए सेट नहीं है
सर्वर पर INBOUND_EMAIL_DOMAIN खाली है। इसे सेट करें, बदलाव लागू करें, और वर्कफ़्लो का ट्रिगर फिर से खोलें।
सुरक्षा के सर्वोत्तम तरीके
- HTTPS उपयोग करें: अपने वेबहुक एंडपॉइंट के लिए हमेशा HTTPS उपयोग करें
- वेबहुक सीक्रेट:
INBOUND_EMAIL_WEBHOOK_SECRETके लिए अपना एक लंबा यादृच्छिक मान रखें, अपने वेबहुक URL के अंत में (जैसे,/incoming-email/sendgrid/your-secret): इसी से SendGrid के ईमेल बाकी सबके ईमेल से अलग पहचाने जाते हैं - डोमेन सत्यापन: बेहतर ईमेल सुरक्षा के लिए SendGrid में अपना डोमेन सत्यापित करें
- पहुँच सीमित करें: केवल भरोसेमंद ईमेल स्रोतों के लिए मॉनिटर बनाएँ
- लॉग की निगरानी करें: संदिग्ध गतिविधि के लिए आने वाले ईमेल के लॉग नियमित रूप से देखें