บรรทัดคำสั่งจะทำเคล็ดลับ (มีการกำหนดค่าบางอย่าง) คุณจะต้องตั้งค่าให้ใช้การตรวจสอบบัญชี Google ของคุณ (ฉันสังเกตเห็นว่าคุณติดแท็กคำถามด้วย "gmail" ดังนั้นฉันจึงสันนิษฐานว่าเป็นผู้ให้บริการของคุณ)
ไซต์นี้มีรายละเอียดเกี่ยวกับวิธีการตั้งค่า หากคุณใช้การตรวจสอบสองขั้นตอนกับบัญชีของคุณเพียงแค่สร้างรหัสผ่านแอปพลิเคชันสำหรับบรรทัดคำสั่งและใช้โทเค็นนั้นเมื่อเพิ่มในรหัสผ่าน SASL
การตั้งค่านี้ทำงานได้ดี แต่จะไม่จัดการกับไฟล์แนบ หากคุณต้องการส่งไฟล์คุณอาจจะมีเวลาง่ายขึ้นในการใช้ Mail GUI
อย่างไรก็ตามปัญหาของคุณคือคุณไม่ต้องการเปิดโปรแกรมเพื่อส่งข้อความใช่ไหม? เพราะสิ่งนี้ทำให้คุณต้องเปิด Terminal หรือเปิด Terminal เมื่อคุณต้องการส่ง แต่มันจะค่อนข้างง่ายที่จะเคาะ Applescript ที่จะแจ้งให้คุณระบุที่อยู่หัวข้อและข้อความอีเมลจากนั้นก็ตีกลับที่เชลล์โดยตรงและออก โยนสิ่งนี้ลงในโฟลเดอร์สคริปต์ผู้ใช้ของคุณและตรวจสอบให้แน่ใจว่า Mac ของคุณได้รับการกำหนดค่าให้แสดงสคริปต์ในแถบเมนูเพื่อการเข้าถึงที่รวดเร็ว
แก้ไขที่สอง: อัปเดตแอปเปิ้ลเพื่อทำงานได้อย่างมีประสิทธิภาพมากขึ้นเล็กน้อย ใช้รหัสจากที่นี่เพื่อเขียนเนื้อหาของข้อความไปยังไฟล์ temp ในโฮมไดเร็กตอรี่ของคุณ, จากนั้นใช้ cat เพื่ออ่านเนื้อหาของไฟล์ลงในข้อความอีเมล, และในที่สุดก็ลบไฟล์ temp ออกไป. ฉันทดสอบและใช้งานได้ดีแม้กับตัวละครที่ผิดพลาดโดยสคริปต์ต้นฉบับ
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