यह मॉड्यूल क्या करता है #
सर्वर पर बहुत सी चीज़ें आपको ईमेल से सूचित करती हैं: कोई प्रमाणपत्र जो समाप्त होने वाला है, कोई डिस्क जो भर रही है, किसी रात्रिकालीन कार्य की रिपोर्ट। लेकिन एक नया इंस्टॉल किया गया सर्वर वह मेल भेजना नहीं जानता — या वह उसे सीधे पहुँचाने की कोशिश करता है और स्पैम फ़ोल्डर में पहुँच जाता है, यदि उसे पूरी तरह अस्वीकार न कर दिया जाए।
smtp मॉड्यूल इसे होस्ट के आउटबाउंड मेल को किसी smarthost (एक relay जो वास्तव में पहुँचाने के लिए अधिकृत है: Amazon SES, एक कॉर्पोरेट मेल सर्वर, आपका प्रदाता…) के विरुद्ध कॉन्फ़िगर करके हल करता है। यह postfix को समायोजित करता है ताकि यह सभी सिस्टम मेल को उस smarthost पर अग्रेषित करे, पासवर्ड को सुरक्षित रूप से संग्रहीत करता है, प्रेषक को पुनर्लेखित करता है ताकि वह एक वैध हो, और आपको भेजने का परीक्षण करने देता है ताकि पुष्टि हो कि यह पहुँचता है — कुछ विफल होने पर वास्तविक त्रुटि की रिपोर्ट करते हुए।
अपने smarthost का विवरण तैयार रखें: host, port (आमतौर पर 587), और यदि इसे प्रमाणीकरण चाहिए तो क्रेडेंशियल। पासवर्ड कमांड लाइन पर नहीं दिया जाता: इसे stdin से या सीक्रेट्स स्टोर से पढ़ा जाता है, ताकि यह कभी आपके इतिहास में न पहुँचे।
सामान्य कार्य #
चुनें कि आप क्या करना चाहते हैं। हर रेसिपी में आदेश पहले से लिखा हुआ आता है — बस अपने smarthost और प्रेषक को डालें और कॉपी करें दबाएँ।
1
मेल relay कॉन्फ़िगर करें
सर्वर को अपने smarthost की ओर इंगित करें ताकि मेल सचमुच बाहर जाए।
ubuntu उपयोगकर्ता के साथ SSH से अपने सर्वर पर कनेक्ट करें।
अपने smarthost विवरण के साथ आदेश चलाएँ। पासवर्ड stdin के माध्यम से पूछा जाता है, ताकि यह कभी आपके इतिहास में न पहुँचे:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]यदि आपके smarthost को प्रमाणीकरण नहीं चाहिए, तो --user छोड़ें। किसी भिन्न पोर्ट या TLS मोड के लिए, --port या --no-tls जोड़ें।
[email protected] में पुनर्लेखित करते हुए। एक परीक्षण ईमेल भेजें रेसिपी के साथ जारी रखें।2
एक परीक्षण ईमेल भेजें
अलर्ट पर भरोसा करने से पहले पुष्टि करें कि कोई संदेश बाहर जाता है और पहुँचता है।
किसी ऐसे पते पर एक परीक्षण ईमेल भेजें जहाँ आप इसकी जाँच कर सकें:
$ sudo imaxe smtp test --to [email protected]यदि आप --to छोड़ते हैं, तो यह कॉन्फ़िगर किए गए प्रेषक को भेजा जाता है। डिलीवरी की पुष्टि के लिए अपना इनबॉक्स (और स्पैम फ़ोल्डर) जाँचें।
3
मेल स्थिति देखें
एक नज़र में जाँचें कि relay कॉन्फ़िगर और सक्रिय है या नहीं।
relay, smarthost, प्रेषक और MTA स्थिति का सारांश:
$ sudo imaxe smtp statusकिसी स्क्रिप्ट या डैशबोर्ड के लिए चाहिए? मशीन-पठनीय आउटपुट के लिए --json जोड़ें:
$ sudo imaxe smtp status --json4
प्रभावी कॉन्फ़िगरेशन देखें
पासवर्ड उजागर किए बिना सक्रिय सेटिंग्स जाँचें।
वास्तव में उपयोग में host, port, user, प्रेषक और TLS मोड दिखाता है (पासवर्ड कभी नहीं छापा जाता):
$ sudo imaxe smtp show5
relay हटाएँ
अग्रेषण अक्षम करें और postfix को उसकी पिछली स्थिति में लौटाएँ।
आउटबाउंड मेल relay अक्षम करें और आधार postfix कॉन्फ़िगरेशन पुनर्स्थापित करें:
$ sudo imaxe smtp removeconfigure से इसे फिर सेट कर सकते हैं।सबसे आम कारण यह है कि प्रेषक smarthost पर सत्यापित नहीं है (SES को डोमेन या --from पते को सत्यापित करना आवश्यक है), या क्रेडेंशियल गलत हैं। imaxe smtp test चलाएँ: यह वास्तविक MTA त्रुटि लौटाता है ताकि आप ठीक-ठीक जानें कि क्या समायोजित करना है।
सारांश #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]सभी उपआदेशों के लिए root विशेषाधिकार आवश्यक हैं (sudo का उपयोग करें) क्योंकि वे postfix कॉन्फ़िगरेशन को छूते हैं, /etc/imaxe/ में लिखते हैं और सिस्टम सेवाओं को पुनः लोड करते हैं। smarthost पासवर्ड कभी फ़्लैग के रूप में नहीं दिया जाता: इसे stdin से या सीक्रेट्स स्टोर से पढ़ा जाता है। मशीन-पठनीय आउटपुट के लिए, जो स्क्रिप्टिंग के लिए उपयुक्त है, status या show में --json जोड़ें।
उपआदेश #
| उपआदेश | यह क्या करता है | प्रासंगिक फ़्लैग |
|---|---|---|
| configure | आउटबाउंड मेल relay को किसी smarthost के विरुद्ध कॉन्फ़िगर करता है। पासवर्ड सीक्रेट्स/stdin से पढ़ा जाता है। | --host, --port, --user, --from, --tls / --no-tls |
| test | एक परीक्षण ईमेल भेजता है और विफल होने पर वास्तविक MTA त्रुटि की रिपोर्ट करता है। | --to |
| status | स्थिति: relay कॉन्फ़िगर, smarthost, प्रेषक और MTA सक्रिय। | --json |
| show | प्रभावी कॉन्फ़िगरेशन दिखाता है, पासवर्ड उजागर किए बिना। | --json |
| remove | relay अक्षम करता है और postfix पुनर्स्थापित करता है। | — |
आर्गुमेंट और फ़्लैग #
| फ़्लैग | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
| --host आव. | string | — | मेल अग्रेषित करने के लिए SMTP smarthost (जैसे email-smtp.eu-west-1.amazonaws.com)। configure के लिए आवश्यक। |
| --port | int | 587 | smarthost का SMTP पोर्ट। |
| --user | string | — | प्रमाणीकरण के लिए SMTP उपयोगकर्ता। यदि छोड़ा जाए, तो relay बिना प्रमाणीकरण के कॉन्फ़िगर होता है। |
| --from | string | — | सभी संदेशों के प्रेषक को पुनर्लेखित करता है (sender_canonical)। smarthost पर सत्यापित पते का उपयोग करने के लिए उपयोगी। |
| --tls / --no-tls | bool | --tls | smarthost से कनेक्शन पर TLS बाध्य करता है (डिफ़ॉल्ट)। --no-tls इसे अक्षम करता है। |
| --to | string | प्रेषक | test में: परीक्षण ईमेल का प्राप्तकर्ता। डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया प्रेषक। |
| --json | bool | false | status/show में, परिणाम को stdout पर JSON के रूप में निकालता है। |
कोई --password विकल्प नहीं है। क्रेडेंशियल configure के दौरान stdin से या सीक्रेट्स स्टोर से (password_secret, डिफ़ॉल्ट रूप से smtp) पढ़ा जाता है, ताकि यह कभी आपके इतिहास या प्रोसेस टेबल में न दिखे।
फ़ाइलें और पथ #
| पथ | सामग्री |
|---|---|
| /etc/imaxe/smtp.yml | मॉड्यूल कॉन्फ़िगरेशन: host, port, TLS, user, प्रेषक और पासवर्ड सीक्रेट का एक संदर्भ। |
| /etc/postfix/main.cf | Postfix कॉन्फ़िगरेशन जिसे मॉड्यूल अग्रेषण के लिए समायोजित करता है (relayhost, sender canonical…)। |
| /var/log/mail.log | Postfix लॉग, हर डिलीवरी प्रयास और अस्वीकृति के कारण के साथ। |
smtp.yml का उदाहरण:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpनिकास कोड और लॉग #
हर बार चलने पर एक कोड लौटाया जाता है जिसे आप echo $? से जाँच सकते हैं — स्क्रिप्ट में श्रृंखलाबद्ध करने के लिए उपयोगी:
test में, ईमेल डिलीवरी के लिए स्वीकार किया गया।किसी भेजने को डिबग करते समय मेल लॉग को लाइव देखें:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]समस्या निवारण #
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| AUTH (कोड 4) लौटाता है | गलत smarthost उपयोगकर्ता या पासवर्ड। | --user जाँचें और configure फिर चलाएँ, stdin के माध्यम से पासवर्ड दोबारा दर्ज करते हुए। |
| SEND (कोड 5) लौटाता है, प्रेषक अस्वीकृत | --from पता smarthost पर सत्यापित नहीं है (SES के साथ सामान्य)। | प्रदाता के साथ डोमेन या पता सत्यापित करें और test पुनः प्रयास करें। |
| CONFIG (कोड 3) लौटाता है | इस होस्ट पर relay अभी कॉन्फ़िगर नहीं है। | अपने smarthost विवरण के साथ imaxe smtp configure चलाएँ। |
| मेल बाहर जाता है पर स्पैम में पहुँचता है | प्रेषक के डोमेन पर SPF/DKIM संरेखण गायब है। | --from डोमेन के लिए मेल प्रदाता के रिकॉर्ड सेट करें। |
मेल मॉड्यूल में अटक गए?
हमें «imaxe <module> status --json» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।