टर्मिनल से ईमेल कैसे भेजें?


169

मुझे पता है कि लिनक्स / मैकओएस में टर्मिनल से ईमेल भेजने के तरीके हैं, लेकिन मुझे ऐसा करने के लिए उचित दस्तावेज नहीं मिल सकता है।

मूल रूप से मुझे अपनी बैश स्क्रिप्ट के लिए इसकी आवश्यकता है जो हर बार मुझे सूचित करती है कि फाइल में कोई बदलाव है।


3
यह शायद यहां ध्यान दिया जाना चाहिए कि कुछ होस्ट और आईएसपी आपके लिए ईमेल भेजने की क्षमता को "बंद" करते हैं। मुझे लगता है कि यह लोगों को उनके माध्यम से स्पैमिंग और फ़िशिंग को रोकने का एक प्रयास है
जिम जेफ्रीज

@JimJeffries कौन से हैं? मैं Amazon EC2 वेब सर्वर का उपयोग कर रहा हूं।
cjjbgames

जवाबों:


125

टर्मिनल में जाएं और man mailमदद के लिए टाइप करें ।

आपको सेट SMTPअप करने की आवश्यकता होगी :

http://hints.macworld.com/article.php?story=20081217161612647

यह सभी देखें:

http://www.mactricksandtips.com/2008/09/send-mail-over-your-network.html

उदाहरण के लिए:

mail -s "hello" "example@example.com" <<EOF
hello
world
EOF

यह example@example.comविषय helloऔर संदेश के साथ एक ईमेल भेजेगा

हैलो

विश्व


मैंने बस कोशिश की, और यह मेरे लिए काम किया, लेकिन मेरी जिज्ञासा से दो सवाल हैं। 1। << का क्या अर्थ है, ऑनलाइन मैंने '<' या '<<' के साथ कुछ उदाहरण देखे हैं। ' इसका क्या उपयोग है? और आपने मैसेज के एंड में एंड का फाइल क्यों दिया है?
दीप

"<< EOF" और "EOF" एक "यहाँ-दस्तावेज़" को चिह्नित करते हैं। दो ईओएफ के बीच के पाठ को एक बहुस्तरीय उद्धृत स्ट्रिंग के रूप में माना जाता है। इसका वर्णन is मैन बैश ’में किया गया है
जो इनवाप

134
echo "this is the body" | mail -s "this is the subject" "to@address"

20
इस सभी समाधानों पर ध्यान दें कि आपके पास
Miquel

11
@ बहुत अच्छी बात है। उबंटू में, आप के माध्यम से आवश्यक शर्तें प्राप्त कर सकते हैं sudo apt-get install mailutils
इयरलडॉग्लस

3
@ जेम्स, यह मेरे मैक के लिए काम नहीं है ((और क्या आप मेरी मदद कर सकते हैं?
नव

1
स्टेप बाय स्टेप ट्यूटोरियल: rianjs.net/2013/08/…
Dušan Ma Marar

अजीब। यह मुझे एक "सिंटैक्सएयर: अमान्य सिंटैक्स" संदेश देता है, हालांकि मेरे द्वारा किए गए एकमात्र परिवर्तन पते को बदल रहा था।
ज्वैनाइल

41

यदि आप सभी की जरूरत है एक विषय पंक्ति है (एक चेतावनी संदेश के रूप में) बस करो:

mailx -s "This is all she wrote" < /dev/null "myself@myaddress"

आपको स्थापित करने की आवश्यकता हो सकती है mailutils। इसे एक पैकेज मैनेजर (जैसे। apt install mailutils) के माध्यम से स्थापित किया जा सकता है
जीवन टेकर

31

संभवतः इसका सबसे सरल तरीका इसके लिए उपयोग curlकरना है, किसी भी अतिरिक्त पैकेज को स्थापित करने की आवश्यकता नहीं है और इसे सीधे अनुरोध में कॉन्फ़िगर किया जा सकता है।

यहाँ gmail smtp सर्वर का उपयोग करके एक उदाहरण दिया गया है:

curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
  --mail-from 'from-email@gmail.com' \
  --mail-rcpt 'to-email@gmail.com' \
  --user 'from-email@gmail.com:YourPassword' \
  -T <(echo -e 'From: from-email@gmail.com\nTo: to-email@gmail.com\nSubject: Curl Test\n\nHello')

यह वास्तव में अच्छा विकल्प है। आप अपने Google खाते के लिए एक ऐप विशिष्ट पासवर्ड जनरेट कर सकते हैं और यह ईमेल को आपके स्वयं के खाते से डिलीवर करता है। बहुत ही शांत!
दक्खड़

2
महान जवाब, आखिरकार काम सुरक्षित बनाने के लिए कम सुरक्षित ऐप चालू करना न भूलें myaccount.google.com/lesssecureapps
yubaraj poudel

@ आलियाकेंद्र को अपने जवाब में यह आखिरी बिंदु जोड़ना चाहिए। डिफ़ॉल्ट रूप से यह विकल्प (कम सुरक्षित ऐप्स तक पहुंच प्रदान करता है) अक्षम है और यह स्पष्ट नहीं है। कम से कम अगर आप भेजने वाले ईमेल के रूप में gmail खाते का उपयोग कर रहे हैं।
ईएमेज़

18

यदि आप लिनक्स पर फाइल अटैच करना चाहते हैं

echo 'mail content' | mailx -s 'email subject' -a attachment.txt username@stackoverflow.com

4
यह invalid headerमेरी संलग्न फ़ाइल के लिए एक संदेश देता है । सही विकल्प एक अपरकेस था -A
स्टीफन

3
@ स्टेफेन पैट्रिक-ह्यूग के अनुसार, -एक अटैचमेंट स्विच है। -एड कमांड के लिए है। मैन पेज देखें: linux.die.net/man/1/mailx
MiaeKim

10

अपने मैक ओएस या लिनक्स ओएस पर टर्मिनल में इस कोड को टाइप करें

mail -s (subject) (receiversEmailAddress)  <<< "how are you?"

एक उदाहरण के लिए यह कोशिश करो

mail -s "hi" abc@example.com <<< "how are you?"<br>

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