How can I send an email from the command line?

Hal Burgiss hal at
Sun Mar 2 15:02:34 UTC 2008

On Sat, Mar 01, 2008 at 08:27:53PM -0600, Dan Farrell wrote:
> if you apt-get install mailx, chances are you'll be able to use the
> mail command as such:
> $ mail dan at
> and type the subject, mail, then a . on a line by itself to terminate
> the message.  if you are really hard core, you can talk directly to the
> recipient's smtp server.  I emailed you an example.  (using that
> technique! :) ) 

>From within a script, it would be easier to something like ...

  echo "this is a test" | mail -s "My Subject" to at

Or you can 'cat' a file to the mail command in the same manner.

Alternately, if there is a MTA installed (eg sendmail, or postifx),
this would work without a mailx package installed:

    ( echo "From: $from"
       echo "To: $to"
       echo "Subject: $subject"
       ! [ "$replyto" == "" ] && echo "Reply-To: $replyto"
       ! [ "$cc" == "" ] && echo "Cc: $cc" 
       ! [ "$bcc" == "" ] && echo "Bcc: $bcc" 
       ! [ "$x_lines" == "" ] && echo "$x_lines"
       if $HTML; then
            echo  "MIME-Version: 1.0"
            echo "Content-Type: text/html; charset=\"ISO-8859-1\""
       # Add required blank line to separate header/body.
       # Body goes now which we pull out of a saved textfile ...
       cat $mail_body_file 
     ) | /usr/sbin/sendmail -oi -t

And, mutt also has a commandline interface, and can do things like
send attachments (IIRC).


More information about the ubuntu-users mailing list