A linha de comando fará o truque (com algumas configurações). Você precisará configurá-lo para usar a autenticação da sua conta do Google (notei que você marcou a pergunta com "gmail", portanto, presumo que seja seu provedor).
Este site possui detalhes sobre como configurá-lo. Se você usar a autenticação em duas etapas com sua conta, crie uma senha do aplicativo para a linha de comando e use esse token ao adicionar a senha SASL.
Essa configuração funciona bem, mas não manipula anexos. Se você precisar enviar um arquivo, provavelmente terá mais facilidade usando a GUI do Mail.
No entanto, seu problema é que você não deseja abrir um programa para enviar uma mensagem, correto? Porque isso requer que você abra o Terminal ou abra o Terminal quando precisar enviar. Mas seria bastante fácil reunir um Applescript que solicitasse o endereço de destino, o assunto e o texto do email, depois devolva-o diretamente ao shell e saia. Jogue isso na pasta de scripts do usuário e verifique se o Mac está configurado para mostrar Scripts na barra de menus para acesso rápido.
Segunda Edição: Atualizado o AppleScript para funcionar um pouco mais eficientemente; usa o código daqui para gravar o corpo da mensagem em um arquivo temporário em seu diretório pessoal, depois simplesmente usa cat para ler o conteúdo do arquivo em uma mensagem de e-mail e, finalmente, exclui o arquivo temporário. Eu testei e funciona bem mesmo com personagens que foram mal manuseados pelo script original.
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