Baris perintah akan melakukan trik (dengan beberapa konfigurasi). Anda perlu mengaturnya untuk menggunakan otentikasi akun Google Anda (saya perhatikan Anda menandai pertanyaan dengan "gmail" jadi saya berasumsi itu penyedia Anda).
Situs ini memiliki rincian tentang cara mengaturnya. Jika Anda menggunakan otentikasi dua langkah dengan akun Anda, buat saja kata sandi aplikasi untuk baris perintah dan gunakan token itu saat menambahkan kata sandi SASL.
Pengaturan ini berfungsi dengan baik tetapi tidak akan menangani lampiran. Jika Anda perlu mengirim file, Anda mungkin akan lebih mudah menggunakan GUI Mail.
Namun, masalah Anda adalah Anda tidak ingin membuka program untuk mengirim pesan, benar? Karena ini mengharuskan Anda untuk membuka Terminal, atau membuka Terminal ketika Anda perlu mengirim. Tetapi akan cukup mudah untuk menggabungkan Applescript yang akan meminta Anda untuk alamat tujuan, subjek, dan teks email, kemudian memantulkannya langsung ke shell dan keluar. Lemparkan ini ke folder skrip pengguna Anda dan pastikan Mac Anda dikonfigurasi untuk menampilkan Skrip di bilah menu untuk akses cepat.
Edit Kedua: Memperbarui applescript agar bekerja sedikit lebih efisien; menggunakan kode dari sini untuk menulis isi pesan ke file temp di direktori home Anda, kemudian cukup menggunakan cat untuk membaca konten file menjadi pesan email, dan akhirnya menghapus file temp. Saya mengujinya dan berfungsi dengan baik bahkan dengan karakter yang salah penanganan oleh skrip asli.
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