La ligne de commande fera l'affaire (avec une certaine configuration). Vous devrez le configurer pour utiliser l'authentification de votre compte Google (j'ai remarqué que vous avez marqué la question avec "gmail", donc je suppose que c'est votre fournisseur).
Ce site contient les détails sur la façon de le configurer. Si vous utilisez l'authentification en deux étapes avec votre compte, créez simplement un mot de passe d'application pour la ligne de commande et utilisez ce jeton lors de l'ajout du mot de passe SASL.
Cette configuration fonctionne bien mais ne gère pas les pièces jointes. Si vous devez envoyer un fichier, vous aurez probablement plus de facilité à utiliser l'interface graphique de messagerie.
Cependant, votre problème est que vous ne voulez pas ouvrir un programme pour envoyer un message, n'est-ce pas? Parce que cela vous oblige à ouvrir Terminal ou à ouvrir Terminal lorsque vous devez envoyer. Mais il serait assez facile de rassembler un Applescript qui vous demandera l'adresse de destination, le sujet et le texte de l'e-mail, puis de le renvoyer directement au shell et de quitter. Jetez-le dans votre dossier de scripts utilisateur et assurez-vous que votre Mac est configuré pour afficher les scripts dans la barre de menus pour un accès rapide.
Deuxième édition: mise à jour de l'applescript pour fonctionner un peu plus efficacement; utilise le code d' ici pour écrire le corps du message dans un fichier temporaire dans votre répertoire personnel, puis utilise simplement cat pour lire le contenu du fichier dans un e-mail, et enfin supprime le fichier temporaire. Je l'ai testé et cela fonctionne bien même avec des personnages mal gérés par le 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