एक अच्छा दिन, बिना किसी स्पष्ट कारण के, मेरे उबंटू 18.04 बिजनेस सर्वर ने मेरे जीमेल पते पर मेल अग्रेषित करना बंद कर दिया।
ठीक एक दिन पहले, मेरे द्वारा ईमेल के लिए उपयोग किए जाने वाले स्थानीय सर्वर खातों की होम निर्देशिकाओं में बनाई गई .forward फ़ाइलें - जैसे /home/office/.forward - मेरे दैनिक पते पर मेरे व्यावसायिक पते के उद्देश्य से सभी मेल को खुशी-खुशी रीडायरेक्ट कर रही थीं। - जीमेल अकाउंट का इस्तेमाल करें। और फिर वे अचानक रुक गए।
जब मैंने देखा कि कुछ गड़बड़ है, तो मैंने तुरंत अपने सर्वर लॉग से परामर्श किया। /var/log/mail.err आकर्षक संदेश दे रहा था जिसमें निम्न चीज़ें शामिल थीं:
status=deferred (delivery temporarily suspended: connect to alt2.gmail-smtp-in.l.google.com[219.8.202.27]:25: Connection timed out)
सर्वर मेलबॉक्स की जाँच करने से मुझे पता चला कि मेल आ रहा था, लेकिन वह पोस्टफ़िक्स मेरे पते पर संदेशों को अग्रेषित करने के लिए जीमेल से कनेक्शन स्थापित नहीं कर सका।
स्वाभाविक रूप से मैंने पोस्टफिक्स को फिर से शुरू किया, लेकिन इससे कोई फायदा नहीं हुआ।
sudo systemctl restart postfix
मैंने पुष्टि की है कि मेरे सर्वर को पोर्ट 25 (एसएमटीपी) पर छोड़ने से आउटगोइंग संदेशों को अवरुद्ध करने वाला कुछ भी नहीं था। फिर मैंने यह सुनिश्चित करने के लिए जांच की कि मेरे डोमेन को किसी तरह से ब्लैकलिस्ट नहीं किया गया है (ऐसे कई ऑनलाइन टूल हैं जो आपके लिए ऐसा करेंगे), और कमांड लाइन से डिग चलाकर अपने एमएक्स रिकॉर्ड की स्थिति को देखा:
dig MX bootstrap-it.com
नहीं चलेगा। सब कुछ ठीक लग रहा था।
कुछ निराशाजनक समस्या निवारण सत्रों के बाद मैंने हार मान ली और लगा कि मैं पूरी तरह से कुछ अलग करने की कोशिश करूंगा।
एडब्ल्यूएस समाधान वास्तुकार होने के नाते और एडब्ल्यूएस पर विले/साइबेक्स के लिए दो पुस्तकों का सह-लेखक होने के बाद (एक क्लाउड प्रैक्टिशनर्स परीक्षा के लिए एक गाइड और समाधान आर्किटेक्ट एसोसिएट परीक्षा के लिए एक), क्या मुझे अपना खुद का स्टैक बनाने के लिए तैयार और सक्षम नहीं होना चाहिए क्लाउड में मेरे ईमेल सर्वर की ज़रूरतों को पूरा करने वाले AWS टूल की संख्या?
खैर यह पता चला है कि मैं कुछ गंभीर शोध और परीक्षण और त्रुटि के बाद तैयार और सक्षम था। इसे पूरा करने की आवश्यकता होगी:
- एक S3 बकेट बनाना जहां आने वाले ईमेल संग्रहीत किए जाएंगे।
- हर बार एक नया ईमेल आने पर मुझे एक नोटिस ईमेल करने के लिए एक साधारण अधिसूचना सेवा (एसएनएस) विषय बनाना।
- मेरे ईमेल डोमेन (bootstrap-it.com) पर कब्जा करने और आने वाली मेल को संभालने के लिए Amazon की सरल ईमेल सेवा (SES) को कॉन्फ़िगर करना। इसमें रूट 53 (जहां मेरे डोमेन प्रबंधित किए जाते हैं) में एक एमएक्स रिकॉर्ड जोड़ना और एसईएस को मेरे डोमेन पर इंगित करना शामिल है; प्रत्येक ईमेल पते को जोड़ना और सत्यापित करना मैं चाहता हूं कि एसईएस नियंत्रित हो; और फिर एसईएस विषय के लिए अलर्ट ट्रिगर करते हुए एसईएस को मेरी एस3 बाल्टी में नए संदेश भेजने के लिए कह रहा है।
- यह मानते हुए कि आप भेजना भी चाहेंगे सेवा के माध्यम से ईमेल संदेश, DomainKeys Identified Mail (DKIM) का उपयोग करके अपने आउटगोइंग संदेशों पर हस्ताक्षर करने के लिए SES को कॉन्फ़िगर करना भी एक अच्छा विचार है।
मैं यहाँ उन सभी चरणों का विस्तार से वर्णन नहीं करने जा रहा हूँ। उसके लिए बहुत सारे उत्कृष्ट दस्तावेज उपलब्ध हैं। लेकिन मैं संक्षेप में कुछ ऐसे दर्द बिंदुओं का उल्लेख करूंगा जिनका आप सामना कर सकते हैं।
आपके द्वारा उपयोग किए जा रहे प्रत्येक डोमेन के लिए आपको अपने DNS होस्टेड ज़ोन में एक MX रिकॉर्ड जोड़ना होगा। भले ही आपके डोमेन Amazon के रूट 53 में प्रबंधित हों, आपको अपने रिकॉर्ड के लिए एक मान प्रदान करना होगा।
उस मान के लिए आप जो उपयोग करते हैं वह AWS क्षेत्र पर निर्भर करेगा जहां आपका SES संसाधन स्थित है। मेरे मामले में, यह इस तरह दिखता था:
10 inbound-smtp.us-east-1.amazonaws.com
SNS सूचनाएं टेक्स्ट की एक लंबी स्ट्रिंग में पहुंचेंगी, जिसमें उपयोगी लेकिन पढ़ने में मुश्किल जानकारी के केवल कुछ छोटे टुकड़े होंगे। यह स्पैम की पहचान करने के लिए पर्याप्त होगा, लेकिन आमतौर पर आपको यहां मिलने वाली जानकारी से अधिक जानकारी की आवश्यकता होगी। मैं सूचनाओं का उपयोग एक हेड-अप के रूप में करता हूं जो मुझे बताता है कि मेरी S3 बकेट में नया मेल है।
AWS प्रबंधन कंसोल के माध्यम से अपने S3 बकेट के भीतर स्वयं ईमेल देखना दुनिया का अंत नहीं है यदि यह महीने में केवल एक या दो बार होता है। लेकिन अगर वे इससे भी तेज़ी से आ रहे हैं, तो आपको अपने संदेशों तक पहुँचने और पढ़ने का एक बेहतर तरीका खोजना होगा।
हालांकि, उस प्रक्रिया को स्वचालित करने के लिए एक प्रोटोकॉल बनाना वास्तव में एक स्थानीय ऑपरेटिंग सिस्टम समस्या है जिसके लिए उपकरणों के एक पूरी तरह से अलग सेट की आवश्यकता होती है। मैंने एडब्ल्यूएस सीएलआई और एक शांत बैश स्क्रिप्ट का उपयोग करके अपने लिए समस्या हल की। यदि आप देखना चाहते हैं कि मैंने यह कैसे किया, तो इस लेख पर क्लिक करें।
मेरे bootstrap-it.com पर उपलब्ध पुस्तकों, पाठ्यक्रमों और लेखों के रूप में प्रशासन की बहुत अधिक अच्छाई है।