क्या mailx SMTP रिले का उपयोग करके मेल भेजता है या क्या यह सीधे लक्ष्य SMTP सर्वर से जुड़ता है?


30

मान लीजिए कि मैं निम्नलिखित कमांड का उपयोग करके एक मेल भेजता हूं:

mailx person@x.com

फिर मेल पहले मेल को रिले करने के लिए मेरे आईएसपी के एसएमटीपी सर्वर का पता लगाने की कोशिश करता है या सीधे कनेक्ट करता है। क्या यह इस बात पर निर्भर करता है कि मेरे पीसी का सार्वजनिक आईपी पता है या यह NAT के पीछे है। मैं अपने पीसी पर mailx की सेटिंग्स कैसे जांच सकता हूं? मैं tcpdump का उपयोग करके इसे कैसे सत्यापित कर सकता हूं?

जवाबों:


29

परंपरागत रूप से, यूनिक्स mailऔर डेरिवेटिव (और कई अन्य यूनिक्स उपकरण) /usr/bin/sendmailइंटरफ़ेस का उपयोग करते हैं , जो लगभग सभी मेल ट्रांसफर एजेंटों (एमटीए - पोस्टफिक्स, एक्जिम, कूरियर, और निश्चित रूप से सेंडमेल) द्वारा प्रदान किया जाता है।

यही है, mailप्रोग्राम किसी भी नेटवर्क प्रोटोकॉल को नहीं बोलता है - यह sendmailस्टड के माध्यम से संदेश को खिलाता है , और इसे वास्तविक वितरण को संभालने देता है। (यह उन दिनों में वापस जाता है जब कुछ मेल एसएमटीपी का इस्तेमाल करते थे, कुछ यूयूसीपी का इस्तेमाल करते थे, कुछ ने बीआईटीनेट का इस्तेमाल किया था ...)

एक बार एक संदेश के माध्यम से पंक्तिबद्ध किया जाता है sendmail, एमटीए वास्तविक संदेश संचरण को संभालता है, चाहे एसएमटीपी या कुछ और के माध्यम से। कॉन्फ़िगरेशन के आधार पर, यह या तो सीधे गंतव्य एमटीए से जुड़ सकता है, या किसी अन्य होस्ट के माध्यम से मेल को रिले कर सकता है (जिसे स्मार्थोस्ट भी कहा जाता है)।

डायरेक्ट कनेक्शन सर्वर पर अधिक सामान्य है; घर के कनेक्शन पर निजी कंप्यूटरों पर स्मार्तोस्ट के माध्यम से रिले अधिक आम है - कंबल "डायनेमिक आईपी" एंटी-स्पैम फिल्टर से बचने के लिए अपने जीमेल या आईएसपी / कार्य ईमेल खाते के माध्यम से रिले करना आवश्यक है।

(कुछ एमटीए जैसे कि esmtpया nullmailerविशेष रूप से घरेलू उपयोगकर्ताओं के लिए बनाए गए हैं और हमेशा एक रिलेहोस्ट का उपयोग करते हैं। ये मेल प्राप्त करने का समर्थन नहीं करते हैं और संसाधनों पर बहुत हल्का हैं।)

mailx → [/ usr / bin / sendmail] → स्थानीय MTA कतार → [SMTP] → प्राप्तकर्ता MTA → प्राप्तकर्ता इनबॉक्स
mailx → [/ usr / bin / sendmail] → स्थानीय MTA कतार → [SMTP] → Gmail या ISP / कार्य सर्वर → [SMTP] → प्राप्तकर्ता MTA → प्राप्तकर्ता इनबॉक्स

अन्य प्रोग्राम, ज्यादातर उपयोगकर्ता के अनुकूल ग्राफ़िकल क्लाइंट जैसे थंडरबर्ड या आउटलुक, हमेशा सीधे रिले / स्मार्थोस्ट एसएमटीपी सर्वर से जुड़ते हैं (फिर से, आमतौर पर जीमेल या आईएसपी / एसएमटीपी सर्वर काम करते हैं), जो आपकी ओर से संदेश प्रसारित करता है।

मूल SMTP समर्थन में मौजूद है heirloom-mailx, लेकिन पारंपरिक में नहीं bsd-mailx

एप्लिकेशन → [SMTP] → जीमेल या आईएसपी / कार्य सर्वर → [SMTP] → प्राप्तकर्ता MTA → प्राप्तकर्ता इनबॉक्स

तीसरी विधि - प्राप्तकर्ता के सर्वर से सीधे जुड़ना - लगभग कभी भी उपयोग नहीं किया जाता है, और कोई भी MUA इसका समर्थन नहीं करता है। निजी कंप्यूटर पर, इसका उपयोग करने से आपका संदेश अस्वीकृत हो जाएगा (संक्रमित होम उपयोगकर्ता आईपी पते से बहुत अधिक स्पैम भेजा जाता है)।

एप्लिकेशन → [SMTP] → प्राप्तकर्ता MTA → स्पैम फ़िल्टर द्वारा पकड़ा गया

1
कैसे लिनक्स पर मेरे एमटीए पता लगाने के लिए?
रोहित बंगा

1
@iamrohitbanga 1) स्थापित पैकेजों की सूची की जाँच करें। (सभी डिस्ट्रोफ डिफ़ॉल्ट रूप से एमटीए के साथ नहीं आते हैं।)
भूरापन

1
@iamrohitbanga 2) मैंने पहले ही जवाब दे दिया है। आउटलुक का उपयोग अक्सर घर पर एक पर्सनल कंप्यूटर पर किया जाता है, और कई मेलस्वर्स होम उपयोगकर्ताओं के पते से प्राप्त संदेशों को अस्वीकार कर देते हैं (क्योंकि उन से उच्च स्पैम दर)। इसलिए एक कॉर्पोरेट सर्वर के माध्यम से रिले करने की आवश्यकता है।
ग्रैविटी

1
@iamrohitbanga 3) "या" का अर्थ है "दोनों में से एक", "दोनों" नहीं। जो लोग अपने प्राथमिक मेल खाते के रूप में जीमेल का उपयोग करते हैं, वे जीमेल के सर्वर के माध्यम से मेल भेजते हैं। जिनके ISP पर मेलबॉक्स हैं वे अपने ISP के सर्वर का उपयोग करते हैं।
grawity

1
@iamrohitbanga 4) ऐसा इसलिए mailx है क्योंकि "तीसरी विधि" का उपयोग नहीं किया गया है। यह मेरे जवाब के शीर्ष पर वर्णित के रूप में एक एमटीए का उपयोग करता है। और एक बार फिर, यदि आप कॉर्पोरेट इंटरनेट कनेक्शन पर नहीं हैं, तो आपके पीसी से सीधे भेजे गए मेल (बिना रिले) के खारिज होने की संभावना है।
grawity

31

mailx SMTP का उपयोग कर सकते हैं। यह कॉन्फ़िगर फ़ाइल ~ / .mailrc है

एक उदाहरण जीमेल के एसएमटीपी का उपयोग करके मेलक्स है

कॉन्फ़िगर एक कमांड में भी हो सकता है:

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

एक सामान्य एसएमटीपी सर्वर का इस्तेमाल किया जाता है, यह बहुत आसान है (एक विस्तृत परिचय देखें यहाँ ):

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

आप इन्हें mailx की कॉन्फ़िगरेशन फ़ाइल ~ / .mailrc में भी डाल सकते हैं


ध्यान दें कि यह वारिस-मेलएक्स पर निर्भर करता है जो डिफ़ॉल्ट मेलक्स नहीं है।
स्कॉट

@ सच: हाँ। लेकिन लिनक्स वितरण पर निर्भर करता है। कुछ सिस्टमों पर, डिफॉल्ट हेयरलूम नहीं है (जैसे उबंटू: fclose.com/b/linux/1411/… । लगता है कि 3 मेलिक्स वर्जन हैं)। फेडोरा, ओपनएसयूएस जैसे कुछ अन्य लोगों पर, डिफ़ॉल्ट एक "सुविधा संपन्न" "हीरलोम-मेलक्स" है।
एरिकज़मा

@ericzma मुझे लगता है कि हिरलूम-मेलएक्स सबसे अच्छा है / क्या हीरलूम एकमात्र मेलक्स है जो इसे कर सकता है (कमांड लाइन पर और smtp सर्वर से निर्दिष्ट)? यह डेबियन पर अच्छी तरह से काम करता है, हालांकि डिफ़ॉल्ट रूप से स्थापित नहीं है। डेबियन मेलक्स लिंक्स पर / etc / अल्टरनेटिव / मेलक्स जो / usr / bin / bsd-mailx से लिंक करता है। हीरोलोम-मेलक्स को डेबियन, / etc / अल्टरनेटिव्स / mailx लिंक / usr / bin / heirloom-mailx में लिंक करने के बाद और अच्छी तरह से काम किया
barlop

@barlop आपकी खोज मेरे अनुरूप है: हीरलूम-मेलक्स काम करता है जबकि bsd-mailx नहीं करता है। अन्य कार्य कार्यान्वयन के बारे में अभी तक जानकारी नहीं है।
एरिकज़मा

सेंटोस 6.7 हीरलोम मेलक्स 12.4 का उपयोग करता है
जोशुआ ग्रिगोनिस

3

से mailx(1)आदमी पेज, विवरण अनुभाग, स्ट्रिंग विकल्प उपधारा:

   smtp   Normally, mailx invokes sendmail(8) directly to  transfer
          messages.  If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable  is
          used  instead.

इसने मुझे थोड़ा भ्रमित किया। क्या आप अधिक विस्तृत हो सकते हैं।
रोहित बंगा

उह ... यह उपयोग करता है sendmailजब तक कि यह विकल्प सेट नहीं होता है।
इग्नासियो वाज़केज़-अब्राम्स

1

सेंडमेल / पोस्टिक्स जैसे स्थानीय एमटीए के बिना एक विकल्प है।

डेबियन पैकेज ssmtp

आरपीएम विवरण से जानकारी:

Summary     : Extremely simple MTA to get mail off the system to a Mailhub
URL         : http://packages.debian.org/stable/mail/ssmtp
License     : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

स्टीफन के।


1
लगभग ... ssmtp एक MTA- जैसा SMTP क्लाइंट है। यह / usr / bin / sendmail की तरह व्यवहार करता है, लेकिन किसी विशेष डोमेन के MX रिकॉर्ड से सीधे जुड़ने के बजाय, यह इस कार्य को SMTP सर्वर (आमतौर पर उपयोगकर्ता नाम / पासवर्ड) के माध्यम से ssmtp चलाने वाली मशीन तक पहुँचाता है। यह उन प्रणालियों के लिए विशेष रूप से उपयोगी है जो ADSL डायनामिक आईपी रेंज, डोडी होस्टिंग प्रदाता आदि जैसे उच्च स्पैम आईपी रेंज से ईमेल भेजते हैं
आंद्रे डी मिरांडा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.