कमांड लाइन ट्रिक (कुछ कॉन्फ़िगरेशन के साथ) करेगी। आपको अपने Google खाते के प्रमाणीकरण का उपयोग करने के लिए इसे स्थापित करने की आवश्यकता होगी (मैंने नोट किया कि आपने प्रश्न को "जीमेल" के साथ टैग किया है, इसलिए मैं मान रहा हूं कि यह आपका प्रदाता है)।
इस साइट पर विवरण है कि इसे कैसे स्थापित किया जाए। यदि आप अपने खाते के साथ दो-चरणीय प्रमाणीकरण का उपयोग करते हैं तो बस कमांड लाइन के लिए एक एप्लिकेशन पासवर्ड बनाएं और एसएएसएल पासवर्ड में जोड़ते समय उस टोकन का उपयोग करें।
यह सेटअप अच्छा काम करता है, लेकिन अटैचमेंट को हैंडल नहीं करेगा। यदि आपको कोई फ़ाइल भेजने की आवश्यकता है, तो संभवतः आपके पास मेल GUI का उपयोग करने का एक आसान समय होगा।
हालाँकि, आपकी समस्या यह है कि आप एक संदेश भेजने के लिए एक कार्यक्रम खोलना नहीं चाहते हैं, सही है? क्योंकि इसके लिए आपको टर्मिनल खुला होना चाहिए, या जब आपको भेजने की आवश्यकता हो तो टर्मिनल खोलना होगा। लेकिन एप्सस्क्रिप्ट को एक साथ खटखटाना काफी आसान होगा जो आपको गंतव्य पते, विषय और ईमेल के पाठ के लिए संकेत देगा, फिर सीधे उस शेल पर जाएं और बाहर निकलें। इसे अपने उपयोगकर्ता स्क्रिप्ट फ़ोल्डर में फेंक दें और सुनिश्चित करें कि आपका मैक त्वरित पहुँच के लिए मेनू बार में लिपियों को दिखाने के लिए कॉन्फ़िगर किया गया है।
दूसरा संपादित करें: थोड़ी और अधिक कुशलता से काम करने के लिए एप्सस्क्रिप्ट को अपडेट किया गया; अपने होम डायरेक्टरी में टेम्प बॉडी के लिए मैसेज बॉडी को लिखने के लिए यहाँ से कोड का उपयोग करता है , फिर बस ईमेल मैसेज में फाइल कंटेंट को पढ़ने के लिए कैट का इस्तेमाल करता है और आखिर में टेम्पे फाइल को डिलीट कर देता है। मैंने इसका परीक्षण किया और यह उन पात्रों के साथ भी अच्छा काम करता है जो मूल पटकथा से गुमराह थे।
try
display dialog "Send email to:" default answer "email@domain.com"
set theEmail to (text returned of result)
if theEmail is "email@domain.com" then error "No recipient specified!"
display dialog "Email subject:" default answer "Subject"
set theSubject to (text returned of result)
if theEmail is "Subject" then error "No subject specified!"
display dialog "Message:" default answer ¬
"Enter message text" & return & return & return & return
set theBody to (text returned of result)
set this_file to (((path to home folder) as text) & "message.tmp")
my write_to_file(theBody, this_file, true)
do shell script "cd ~/; cat message.tmp | mail -s \"" & theSubject & "\" " & theEmail & "; rm message.tmp"
on error theError
display dialog theError buttons {"Quit"} default button 1
end try
-- this subroutine saves input as a text file
on write_to_file(this_data, target_file, append_data) -- (string, file path as string, boolean)
try
set the target_file to the target_file as text
set the open_target_file to ¬
open for access file target_file with write permission
if append_data is false then ¬
set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file