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


72

क्या एक अलग smtp सर्वर के माध्यम से भेजे जाने वाले लिनक्स बॉक्स पर सिस्टम मेल स्थापित करना संभव है - शायद प्रमाणीकरण के साथ भी? यदि हां, तो मैं यह कैसे करूँ?

यदि यह अस्पष्ट है, तो एक उदाहरण दें। यदि मैं कमांड लाइन पर हूं और टाइप करता हूं:

cat body.txt | mail -s "just a test" myfriend@hisdomain.com

क्या यह संभव है कि किसी बाहरी एसएमटीपी सर्वर के माध्यम से जी-मेल की तरह भेजा जाए?

मैं "कमांड लाइन से जीमेल से मेल भेजने का एक तरीका" नहीं ढूंढ रहा हूं, बल्कि एक विशिष्ट एसएमटीपी सर्वर का उपयोग करने के लिए पूरे सिस्टम को कॉन्फ़िगर करने का विकल्प, या एसएमटीपी सर्वर पर संभवतः एक खाता (शायद पते से ओवरराइडिंग) ।


यह जिस तरह से अधिकांश मशीनों को स्थापित करने के लिए उपयोग किया जाता है, वास्तव में यह है। क्या आपके मन में कोई विशेष एमटीए है? यदि नहीं (इसमें "क्या एमटीए है?") शामिल है, तो आप कौन से वितरण चला रहे हैं?
गिलीस

मैं Ubuntu 10.04 पर हूं, sstp की स्थापना पर यह लेख मिला , ऐसा लगता है कि यह काम कर सकता है। क्या आप इस बारे में अधिक विस्तार से बता सकते हैं कि अधिकांश मशीनें कैसे स्थापित की जाती हैं?
cwd

जवाबों:


71

मैंने sSMTP को उपयोग करने के लिए बहुत सरल पाया।

डेबियन आधारित प्रणालियों में:

apt-get install ssmtp

फिर /etc/ssmtp/ssmtp.conf में कॉन्फ़िगरेशन फ़ाइल को संपादित करें

ई-मेल भेजने के लिए अपने जीमेल का उपयोग करने के लिए एक नमूना विन्यास:

# root is the person who gets all mail for userids < 1000
root=your@email.com

# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
AuthUser=your@gmail.com
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES

नोट : सुनिश्चित करें कि "मेल" कमांड आपके सिस्टम में मौजूद है। mailutils पैकेज को डेबियन आधारित प्रणालियों में यह एक प्रदान करना चाहिए।

अपडेट : ऐसे लोग (और विभिन्न लिनक्स वितरण के लिए बग रिपोर्ट) रिपोर्ट कर रहे हैं कि sSMTP 'स्पेस' या '#' कैरेक्टर वाले पासवर्ड को स्वीकार नहीं करेगा। यदि sSMTP आपके लिए काम नहीं कर रहा है, तो यह मामला हो सकता है।


2
दूसरों के लिए एक नोट के रूप में आपको ssmtp और फिर mailutils स्थापित करना पड़ सकता है। मुझे लगता है कि mailutils मेल कमांड सेट करता है और ssmtp को सहानुभूति देता है ताकि आप नियमित mailवाक्यविन्यास का उपयोग कर सकें :)
cwd

1
@cwd ने उबंटू 13.04 पर परीक्षण किया। मुझे mailutilsपैकेज स्थापित करने की ज़रूरत नहीं थी (और यह स्वचालित रूप से स्थापित नहीं है)। ssmtpबाहर काम किया।
पीज्यूसन

मैं सिर्फ बीलबोन ब्लैक पर डेबियन में सफलतापूर्वक इसका उपयोग करता था और पहले मुझे मेलुइटल स्थापित करना पड़ता था।
डेव नेल्सन

कुबंटु 14.04 पर, ssmtp के बाद mailutils स्थापित करना था । हालाँकि इसने पहली कोशिश में काम किया।
मारियसमैटुटिया

6
ssmtp वर्तमान डेबियन, ubuntu और redhat रिलीज पर दूरस्थ सर्वर के एसएसएल / टीएलएस प्रमाण पत्र को सत्यापित नहीं करता है और प्रमाण पत्र के होस्टनाम को भी सत्यापित नहीं करता है। यह एक प्रमुख मुद्दा है, क्योंकि यह प्रभावी रूप से एन्क्रिप्शन को बेकार कर देता है और आपका पासवर्ड समान रूप से प्लेनटेक्स्ट होने के लिए प्रेषित किया जा रहा है और कोई भी इसे सूँघ सकता है। 2009 से कम से कम ssmtp का कोई सक्रिय विकास नहीं हुआ है। इसलिए, यदि आप अपने सर्वर से आउटगोइंग ईमेल के लिए उपयोग किए जाने वाले ईमेल खाते की सुरक्षा की परवाह करते हैं, तो ssmtp का उपयोग न करें, लेकिन इसके बाद पोस्टफिक्स (या कुछ और): unix.stackexchange.com/ a / 118101/72087
ज़ुल्किस

23

के लिए पोस्टफ़िक्स :

  • अपने बाहरी मेल-रिले के लिए IP जोड़ें /etc/hostsऔर इसमें एक अन्य मेलरेली जोड़ें।
  • उपसर्ग विन्यास को संशोधित करें:

    relayhost = [mailrelay]
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
    smtp_sasl_security_options = noanonymous
    
  • संपादित करें /etc/postfix/smtp_auth

    mailrelay login:password
    
  • हैश-प्रारूप में परिवर्तित करें

postmap /etc/postfix/smtp_auth

यह कहने की ज़रूरत नहीं है कि केवल रूट को ही इसे पढ़ने में सक्षम होना चाहिए ... chmod u=r,og=-


9

mailx CLI पर smtp सर्वर सेट करने का समर्थन करता है ...

echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v foo@baa.com

कुछ भी स्थापित करने की आवश्यकता नहीं है, बशर्ते आपका smtp सर्वर आपको बिना प्रमाणित मेल भेजने की सुविधा देता है।

ऐसा कोई भी जवाब नहीं है जो आपके लिनक्स बॉक्स पर हो सकने वाले सभी बिट सॉफ़्टवेयर के लिए smtp सर्वर सेट करता है । प्रत्येक ईमेल क्लाइंट एक SMTP सर्वर को कॉन्फ़िगर कर सकता है।


अपने प्राप्तकर्ता के -S var=val सामने रखना सुनिश्चित करें ।
बेनोइट डफेज

यदि गैर-प्रमाणित मेल की अनुमति नहीं है तो क्या करें? मुझे लगता है कि ग्राहक को मेल के दौरान अनाम मेल भेजने के लिए प्रमाणित नहीं किया गया था,
मियां अस्बत अहमद


7

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

जीथब पर ईमेल प्रोजेट के उद्धरण

प्रश्न: 'ईमेल' क्या है?

A: 'ईमेल' एक ऐसा प्रोग्राम है जिसे मैंने डिज़ाइन किया है जो कमांड लाइन के माध्यम से रिमोट smtp सर्वर को ईमेल भेजेगा या आंतरिक रूप से 'सेंडमेल' का उपयोग करेगा, और अपने ई-मेल को एन्क्रिप्ट करने और हस्ताक्षर करने के लिए GNUPG के साथ पूरी तरह से बातचीत करेगा, इसलिए आप ऐसा करने का निर्णय लेते हैं। .. आप यहाँ पर GNUPG प्राप्त कर सकते हैं: http://www.gnupg.org

मुझे इस उपयोगी ईमेल क्लाइंट के बारे में बताने के लिए सागविन का धन्यवाद करें।

संकलित करें और स्थापित करें

./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc

ईमेल के कमांड लाइन विकल्प

$ email --help
Options information is as follows
email [options] recipient1,recipient2,...

    -h, -help module          Print this message or specify one of the below options
    -V, -verbose              Display mailing progress.
    -f, -from-addr            Senders mail address
    -n, -from-name            Senders name
    -b, -blank-mail           Allows you to send a blank email
    -e, -encrypt              Encrypt the e-mail for first recipient before sending
    -s, -subject subject      Subject of message
    -r, -smtp-server server   Specify a temporary SMTP server for sending
    -p, -smtp-port port       Specify the SMTP port to connect to
    -a, -attach file          Attach file and base64 encode
    -c, -conf-file file       Path to non-default configuration file
    -t, -check-config         Simply parse the email.conf file for errors
    -x, -timeout              Set socket timeout.
        -cc email,email,...   Copy recipients
        -bcc email,email,...  Blind Copy recipients
        -sign                 Sign the email with GPG
        -html                 Send message in HTML format ( Make your own HTML! )
        -tls                  Use TLS/SSL
    -m, -smtp-auth type       Set the SMTP AUTH type (plain or login)
    -u, -smtp-user username   Specify your username for SMTP AUTH
    -i, -smtp-pass password   Specify your password for SMTP AUTH
    -g, -gpg-pass             Specify your password for GPG
    -H, -header string        Add header (can be used multiple times)
        -high-priority        Send the email with high priority
        -no-encoding          Don't use UTF-8 encoding

नमूना उपयोग

निर्दिष्ट SMTP सर्वर के साथ सरल मेल

echo "mail body" | email -subject "unix.stackexchange.com Q36982" -from-name LiuYan刘研 -from-addr liuyan@domain.com -smtp-server smtp.domain.com -smtp-port 25 cwd@your-domain.com your-friends@his-domain.com

HTML मेल

echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" cwd@your-domain.com

अनुलग्नक (रों)

echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach cwd@your-domain.com

2

इस पृष्ठ पर दिए गए निर्देशों का पालन करके एक स्थानीय एक्जिम SMTP सर्वर सेट करें , लेकिन एक्ज़िम कॉन्फ़िगरेशन की पहली स्क्रीन से "smarthost; कोई लोकल मेल नहीं" विकल्प चुनें । यह आपके बॉक्स पर एक SMTP सर्वर स्थापित करेगा जो "मेल" या "mailx" कमांड से मेल प्राप्त कर सकता है और डिलीवरी के लिए smarthost (आपके मामले में एक जीमेल सर्वर) के सभी संदेशों को अग्रेषित करेगा।

एक जीमेल सर्वर के माध्यम से आउटगोइंग ईमेल भेजने के लिए आपको एक्ज़िम के लिए टीएलएस समर्थन स्थापित करना होगा , जो कि तुच्छ नहीं है। यह हाउटो कुछ स्पष्टीकरण देता है और यहां जीमेल के लिए विशिष्ट स्पष्टीकरण के साथ एक लिंक दिया गया है। इस काम को करने के लिए आपको कई घंटे लगने चाहिए। मेरा सुझाव है कि अपने बॉक्स से एक टीएलएस सक्षम एसएमटीपी सर्वर पर ईमेल भेजना शुरू करें, जिसमें आपके पास रूट एक्सेस है ताकि आप एक जीमेल सर्वर भेजने की कोशिश करने से पहले दोनों तरफ से अपने एक्जिम टीएलएस कॉन्फ़िगरेशन को डीबग कर सकें। चूंकि संचार एन्क्रिप्ट किया गया है, आप लाइन पर प्रोटोकॉल का विश्लेषण करने के लिए tcpdump जैसे उपकरणों का उपयोग करने में सक्षम नहीं होंगे।


1

यदि आपके पास अपने होस्ट के साथ बाहरी smtp सर्वर कनेक्टिविटी है तो आप अपने होस्ट पर smtp कॉन्फ़िगर कर सकते हैं और ईमेल भेज सकते हैं।

लिनक्स स्टेप्स में smtp विन्यास यहाँ पाया जा सकता है: http://kerneltalks.com/config/guide-smtp-configuration-linux/

ईमेल कॉमैंड के उदाहरण यहां देखे जा सकते हैं: http://kerneltalks.com/commands/examples-send-email-through-terminal/


उत्तर में अपने दम पर खड़े होने के लिए पर्याप्त विवरण शामिल होना चाहिए। अधिक व्यापक जानकारी के साथ लिंक करना ठीक है, लेकिन कम से कम लिंक वाली सामग्री के एक हिस्से को उत्तर में उद्धृत किया जाना चाहिए, ताकि लिंक सड़ने के बाद यह उपयोगी हो सके।
user4556274
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.