कमांड लाइन से मेल कैसे भेजें?


215

कमांड लाइन से मेल कैसे भेजें?


1
ubuntuforums.org/showthread.php?t=780509 आपकी मदद कर सकता है।
उपयोगकर्ता

1
आप पाइन का उपयोग भी कर सकते हैं।
केव

1
आप msmtp को भी स्थापित कर सकते हैं और ArchWiki में वर्णित निर्देशों का पालन कर सकते हैं
थियागो

2
यह बहुत बुरा है इस के जवाब बहुत पुराने हैं। यह एक महत्वपूर्ण प्रश्न है जो एक अच्छे ट्यूटोरियल का उपयोग कर सकता है
6005

जवाबों:


36

म्यूट ई-मेल क्लाइंट को स्थापित करने का प्रयास करें । अन्य विकल्प gnus के साथ emacs का उपयोग कर रहा है । अन्य विकल्प भी उपलब्ध ... IMHO, आपको अपने प्रश्नों में अधिक विवरण का उपयोग करना चाहिए, या आपके प्रश्न के कई अलग-अलग उत्तर आपको प्राप्त होंगे :-)


2
इसे स्वीकार कर लिया गया क्योंकि इसे किसी भी कॉन्फ़िगरेशन की आवश्यकता नहीं है और यह काफी उपयोगकर्ता के अनुकूल है।
ओलिवियर लालोंडे

21
रुको। mutt - उपयोगकर्ता के अनुकूल? सबसे शानदार वन-लाइनर मैंने आज ही पढ़ा है :)
Stann

155
  1. Ssmtp स्थापित करें Ssmtp स्थापित करें:

    sudo apt-get install ssmtp
    
  2. Ssmtp config फाइल संपादित करें:

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. निम्नलिखित पाठ जोड़ें:

    root=username@gmail.com
    mailhub=smtp.gmail.com:465
    rewriteDomain=gmail.com
    AuthUser=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Ssmtp चलाएं और प्राप्तकर्ता ईमेल पता प्रदान करें:

    ssmtp recepient_name@gmail.com
    
  5. संदेश का विवरण इस प्रकार है:

    To: recipient_name@gmail.com
    From: username@gmail.com
    Subject: Sent from a terminal!
    
    Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing.
    (Notice the blank space between the subject and the body.)
    
  6. भेजने के लिए Ctrl+ दबाएं D


आप पाठ को फ़ाइल में भी रख सकते हैं और निम्नानुसार भेज सकते हैं:

ssmtp recipient_name@gmail.com < filename.txt

29
ऐसा लगता है कि कंप्यूटर पर कुछ फ़ाइल में उजागर किए गए मेरे ईमेल पासवर्ड को छोड़ देना अजीब है। क्या यह सुरक्षित है?
ओडाम्स

2
@oadams बहुत सुरक्षित नहीं है। अपने जोखिम को कम करने के लिए 2-चरणीय सत्यापन का उपयोग करें, या एक मेल गेटवे का उपयोग करें जिसे आपके ISP की तरह पासवर्ड की आवश्यकता नहीं है।
इसका 13

5
स्थापित उपसर्ग के साथ एक सर्वर पर ssmtp स्थापित न करें। पोस्टफ़िक्स को हटा दिया जाएगा। इसके बजाय, केवल sendmail user@example.com <file.txt का उपयोग करें जो पोस्टफ़िक्स या ssmtp के साथ काम करेगा।
एलिस्टेयर बुक्सटन

2
एक और अजीब बात जो मैं यहां साझा करना चाहता था, वह मेरे लिए तब काम नहीं हुई जब मेरे पास एक लंबा / जटिल पासवर्ड था, लेकिन जब मैंने इसे एक साधारण पासवर्ड में बदल दिया, तो काम किया। मैंने भी किसी और से ऐसा ही सुना, लेकिन मेल भेजने के बहुत सारे असफल प्रयासों के बाद इसे आज़माया और जैसे ही मैंने पासवर्ड को सरलीकृत किया, मेरे आश्चर्य को, बस काम किया;)
रजत गुप्ता

यदि जीमेल आपके सर्वर तक पहुंचने की अनुमति नहीं देता है, तो कमांड लाइन ब्राउज़र वाले सर्वर पर जीमेल लॉगिन करें। Askubuntu.com/questions/460022/use-terminal-as-a-web-browser
संघी ली

87

अधिकांश समय आपको एक एसएमटीपी सर्वर को कॉन्फ़िगर करने की आवश्यकता नहीं होनी चाहिए जिसे आप केवल mailकमांडलाइन से उपयोग कर सकते हैं (यदि यह पहले से मौजूद नहीं है, तो स्थापित करें sudo apt-get install mailutils)। (या यदि आप एक सर्वर पर हैं जहाँ Sendmail कॉन्फ़िगर किया गया है, आदि)

marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.

Hope all is well.
.
Cc: 

आप एक एकल .लाइन के साथ संदेशों को समाप्त करते हैं । वह mailआपको Cc:सूचना दर्ज करने के लिए संकेत देगा (या खाली छोड़ mailदेगा ) और फिर वह क्या करने की कोशिश कर रहा है, साथ ही मेल सर्वर से डेटा कनेक्ट करने, संचारित करने और प्राप्त करने की प्रक्रिया का विवरण देने पर अतिरिक्त जानकारी प्रिंट करेगा।


28
मैं "sudo apt-get install mailutils" को शामिल करने के उत्तर को जोड़ूंगा क्योंकि यह एक साफ Ubuntu 10.04 इंस्टॉल पर मौजूद नहीं है। इसके अलावा, संदेश को समाप्त करने के साथ। एक लाइन पर काम नहीं किया। मुझे इसके बजाय "Ctrl-D" करना था। अंत में, संदेश के माध्यम से जाना नहीं था!
ओलिवियर लालोंडे

7
@OlivierLalonde sudo apt-get install mailutilsएक SMTP सर्वर स्थापित करेगा postfix, जो कुछ लोगों के लिए थोड़ा अधिक वजन वाला हो सकता है।
वाब

5
mailutils भी स्थापित करेगा mysql!
चमीक

17
-v विकल्प मेरे मेल 2.99.98 के इंस्टॉल में नहीं, इसके लिए Ctrl + D का उपयोग समाप्त करने के लिए भी करना था
markmnl

2
कृपया इस प्रश्न को अपडेट करें, यह पुराना है।
ब्लाहिरन

47
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

उपयोग:

sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword 

यदि आप कमांड लाइन में अपना पासवर्ड निर्दिष्ट नहीं करना चाहते हैं (आमतौर पर करने के लिए एक अच्छी बात नहीं है), तो आप उस पैरामीटर को छोड़ सकते हैं और प्रेषण आपको पासवर्ड के लिए संकेत देगा ... और इसे स्क्रीन पर प्रदर्शित करें, लेकिन कम से कम यह आपकी कमांड लाइन के इतिहास में नहीं होगा।


sendmailअधिकांश निश्चितता का उपयोग करके GMail खाते से मेल भेजना । धन्यवाद।
मार्क टॉमलिन

पासवर्ड इको नहीं करने के लिए यहां एक पैच लगाएं ।
अरुण

मुझे पोर्ट के साथ निर्दिष्ट करना था -s smtp.gmail.com:587
जो मोर्निन

5
कमांड लाइन के इतिहास में इसे सहेजने के लिए कमांड लाइन से पहले एक स्थान जोड़ें
18

बैश स्क्रीन पर इसे प्रदर्शित न करने का दूसरा तरीका: पासवर्ड को किसी फाइल में सेव करें, फिर फाइल से एनवायरमेंट वेरिएबल तक, ex: pass=$(cat my_password); sendemail... -xp $name ...और निश्चित रूप से यदि आप इसे प्रोग्रामेटिक रूप से कह रहे हैं तो आप कुछ ऐसा ही कर सकते हैं, उदा: रूबी system("sendemail ... -xp #{File.read 'my_password'}...")भी विफल हो सकता है पहली बार, आपको उस खाते को एक ईमेल प्राप्त करना चाहिए जो आपको "कम सुरक्षित ऐप्स सक्षम करने" का सुझाव दे, तो यह काम कर सकता है।
rogerdpack

23

mpack फाइल अटैचमेंट भेजने का उत्कृष्ट कमांडलाइन तरीका है।

apt-get install mpack

उपयोग:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn

20

मेल भेजने के लिए आपको एक एमटीए की आवश्यकता होती है। इसके लिए, पोस्टफिक्स का उपयोग करें:

sudo apt-get install postfix

ईमेल भेजने के लिए:

echo "test message" | mailx -s 'test subject' myemail@mydomain.com

मदद


तुम भी mailxils के लिए mailutils स्थापित करने की आवश्यकता है, है ना?
निक

4
काश, यह वास्तव में इतना आसान होता, लेकिन जब तक आप कोई बहुत खास नहीं होते, यह काम करने वाला नहीं है। आईएसपी के 99.9999% निजी पोस्टफिक्स सर्वर से मेल को नजरअंदाज कर देंगे, क्योंकि वे 10 में से 9.99999 बार स्पैमर्स हैं।
सेरिन

यह मेरे लिए काम नहीं किया, यह स्थापित करने के लिए कहा mailutilsजब मैं इस टर्मिनल में प्रवेश किया
Mostafiz रहमान

आगे बढ़ो और mailutils स्थापित करें। आपको पोस्टफ़ॉर्म IIRC की आवश्यकता नहीं है।
उव

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

15

पैकेज स्थापित करें sendmailफिर टाइप करें

sendmail -t receiver@example 

फिर अपना ईमेल लिखें और फिर Ctrl + D दबाएं


10
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

या

cat "afile" | mail -s "subject" someone@dest_email.com

बस आसान परीक्षण के लिए जोड़ने के लिए: गूंज "नमस्ते दुनिया!" | मेल -s "हैलो" mail@example.org
Bohne

2
यदि किसी के पास मेल कमांड नहीं है, तो बस चलाएं: sudo apt-get install mailutilsउबंटू / डेबियन में या yum install mailxसेंटोस / रेडहट में
जियोवानी बेनुसी

9

आप के साथ कमांड लाइन से एक ईमेल भेज सकते टेलनेट या netcat

सब कुछ यहाँ समझाया गया है

hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <netcat@postfix.com>
250 2.1.0 Ok
RCPT TO: <target@host.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is the body of my mail,
this is the second line...
.
250 2.0.0 Ok: queued as 9C12E7F404

2
इस विधि का उपयोग करते समय SSL का उपयोग करना थोड़ा कठिन है;)
iX3

1
@ iX3 सिर्फ उपयोग करें swaksऔर आप एसएसएल / टीएलएस के साथ ठीक हैं; ;-)
जर्मार

याopenssl s_client -starttls smtp ...
रमन

7

यदि आप किसी सिस्टम से ई-मेल भेजने की कोशिश करते हैं, तो व्हिच अपना स्वयं का ई-मेल-सर्वर (यानी डेस्कटॉप सिस्टम) नहीं चलाता है, आपको nullmailer या esmtp जैसी कोई चीज स्थापित करने की आवश्यकता होती है , जो आपके स्थानीय मेल को "वास्तविक" मेल पर भेजती है । सर्वर।

कमांड लाइन टूल के रूप में आप मेल या mailx (संकुल मेलुटिल, हिरलूम-मेलक्स या bsd-mailx) स्थापित कर सकते हैं। यदि आपको अटैचमेंट की आवश्यकता है तो बायबाम आज़माएँ।


1
मैं के लिए -E आदेश और cronjobs bsd-mailx चाहते
meffect

6

मैंने कभी इसकी कोशिश नहीं की लेकिन एक mailकमांड है जो मेल भेज सकती है। मैन मेल देखें ।

स्थानीय ईमेल का परीक्षण करने के लिए:

echo message | mail username@localhost

6
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

यह कहां filenameहै: यह इनपुट फाइल और रिमोट फाइल के लिए है।


sudo apt-get install sharutilsके लिएuuencode
Janus Troelsen

1
mailutils mysql स्थापित करता है! oO
chmike

3

आप यह कोशिश कर सकते हैं:

mail name@mailserver.com -s "Attached file" <<EOF                 
Hi

~| uuencode $HOME/filename.txt filename.txt

EOF

यह GNU Mailutils के साथ काम करता है , अधिक जानकारी के लिए वेबसाइट की जाँच करें।


2

रन :

sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf

निम्नलिखित जरूरतों को वहां जोड़ा जाना चाहिए:

# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN

# Email 'From header's can override the default domain?
FromLineOverride=yes

रन :

sudo -H gedit /etc/ssmtp/revaliases

वहां दर्ज करें:

root:yourusernameofgmail@gmail.com:smtp.gmail.com:587

Gmail पर "कम सुरक्षित ऐप्स" सक्षम करें :
https://support.google.com/accounts/answer/6010255?hl=en

टर्मिनल पर निम्नलिखित को चलाकर इसका परीक्षण करें:

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`

1

ऊपर के अलावा मुझे अभी भी यह त्रुटि मिल रही थी

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv  somebody@mil.gov
[<-] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] aG94Z2VuZUBrrrFpbC5jb20=
[<-] 334 UGFzweliecmQ6
[<-] 534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp
ssmtp: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp)

समाधान: वर्तमान पासवर्ड सही होने पर भी gmail पासवर्ड रीसेट करें ... संभवतः Google सुरक्षा एहतियात

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.