Command line will do the trick (with some configuration). You will need to set it up to use your Google account authentication (I noted you tagged the question with "gmail" so I am assuming that's your provider).
This site has the details on how to set it up. If you use two-step authentication with your account just create an application password for command line and use that token when adding in SASL password.
This setup works well but won't handle attachments. If you need to send a file, you'll probably have an easier time using the Mail GUI.
However, your problem is that you don't want to open a program to send a message, correct? Because this requires you to have Terminal open, or to open Terminal when you need to send. But it would be fairly easy to knock together an Applescript that will prompt you for destination address, subject, and text of email, then bounce that directly to the shell and exit. Throw this into your user scripts folder and make sure your Mac is configured to show Scripts in the menu bar for quick access.
Second Edit: Updated the applescript to work a little more efficiently; uses the code from here to write the message body to a temp file in your home directory, then simply uses cat to read the file contents into an email message, and finally deletes the temp file. I tested it and it works well even with characters that were mishandled by the original script.
try
display dialog "Send email to:" default answer "[email protected]"
set theEmail to (text returned of result)
if theEmail is "[email protected]" 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