28 Comments

  1. Akash Patel

    Ok after a lot of time on this, which my guess is everyone who initially uses ubuntu will eventually want to use the command line to send email. Here is the answer as of March 31st, 2019.
    Note since most people have 2FA on for gmail, if you still want to use that you, need to generate an "App password"
    which is under google security section, when you log on to gmail.
    Use the "App password" instead of your normal gmail password

    https://askubuntu.com/questions/12917/how-to-send-mail-from-the-command-line

    The answer is at the bottom of the page in above askubuntu link. The checked answers at the top don't work anymore.

    Run:

    sudo apt-get install ssmtp
    sudo -H gedit /etc/ssmtp/ssmtp.conf
    The following needs to be added there:

    # The user that gets all the mails (UID < 1000, usually the admin)
    root=yourusernameofgmail@gmail.com

    # The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
    # See also https://support.google.com/mail/answer/78799
    mailhub=smtp.gmail.com:587

    # The address where the mail appears to come from for user authentication.
    rewriteDomain=gmail.com

    # Use SSL/TLS before starting negotiation
    UseTLS=Yes
    UseSTARTTLS=Yes

    # Username/Password
    AuthUser=yourusernameofgmail
    AuthPass=yourGmailPassowrd
    AuthMethod=LOGIN

    # Email 'From header's can override the default domain?
    FromLineOverride=yes
    Run:

    sudo -H gedit /etc/ssmtp/revaliases
    Enter there:

    root:yourusernameofgmail@gmail.com:smtp.gmail.com:587

    Enable "less secure apps" on Gmail:
    https://support.google.com/accounts/answer/6010255?hl=en

    Test it by running the following on terminal:

    echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"

    Reply

    • Thank you for sharing your findings.

      Reply
  2. Akash Patel

    it's March 2019 and this doesn't work, why is setting up mail on the command line so complicated and no one has a working tutorial that works. It's insane!!! I have spent 4 hours on this and nothing works.
    I am on a new ubuntu 18.04 LTS

    ash-ThinkPad-P52:~$ sudo apt-get install heirloom-mailx
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Package heirloom-mailx is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    when I tried to send an email got the following:

    msmtp: no recipients found
    Sending data to /usr/bin/msmtp failed: Process exited with a non-zero status
    cannot send message: Process exited with a non-zero status

    Reply
  3. Gtron

    Thank you!
    To make it work I had to change the certificate to:
    tls_trust_file /usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R2.crt

    Reply
  4. Pedro Duarte

    With ubuntu 16.06 i used :
    tls_trust_file /etc/ssl/certs/ca-certificates.crt

    Reply
    • Derek

      Thanks! Fixed my issue on Linux Mint 18.3 "Sylvia".

      Reply
  5. test

    how to read mail using this? thank you

    Reply
  6. AMIT KUMAR DUBEY

    THANKS OR PROVIDING PERFECT CODE

    Reply
  7. fstanford

    This worked great for me on a beaglebone black.

    Initially i had problems getting the packages to install but then I replaced the april 2014 debian image with a march 2015 image and everything installed without a hitch at that point.

    the GPIO capability of the BBB combined with scriptable command line email opens new worlds of possibilities....

    Reply
  8. Danilo

    Ty, this appear to be the only one really working!

    Reply
  9. Juan C

    Oh man!

    Finally I've found something that really works!
    THANKS A LOT!

    Reply
  10. Ani Papyan

    Thanks a lot! it really helps

    Reply
  11. jason

    I use fedora13, and I get the following error when trying to send and email with mail command as you showed above.

    errormsg='cannot set X509 trust file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt for T
    LS session: Error while reading file.' exitcode=EX_NOINPUT

    I see that I do not have the Equifax_Secure_CA.crt file. How can I fix this problem.

    Thank you.

    Reply
    • Ito

      I'm also on Fedora (19) and I'm using file "/usr/share/kde4/apps/kssl/ca-bundle.crt" (package kdelibs)
      It works for me.

      Reply
  12. bk322

    Thanks, I've profited from this.

    Reply
  13. Luke Mackenzie

    I followed the insructions but get:

    send-mail: account default not found: no configuration file available

    Reply
  14. Tom

    nice, simple instructions. works a treat!
    is there any way to attach files?

    Reply
    • Linerd

      Great question. It turns out it's quite simple, just use the -a switch followed by the path to your attachment file. In the example below the attachment is an image called "attachment.png".

      mail -s "Subject" -a attachment.png address@example.com < message.txt
      Reply
      • Tom

        awesome, thanks very much

        Reply
      • troy nall

        thanks from 2017 !!!

        Reply
  15. Edward G Prentice

    To use with Gmail's two-step authentication, generate a password for msmtp and use that instead of your regular password in the .msmtprc file.

    http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833

    Reply
    • Linerd

      Thanks for the tip on 2 Factor authentication.

      Reply
  16. Mike

    Exactly what I was looking for and it works! Thanks!

    Reply
  17. James

    Perfect, and super-easy to set up (Ubuntu Precise here). Thanks!

    Reply
  18. unni smohan

    hi thanks this really worked.
    I need to know whether we can do it in redhat linux enterprise editon 5 also?
    if yes then how?

    Reply
  19. Menno

    Does this work if you normally use two-factor authentication for your gmail account?

    Reply
    • Ton van Overbeek

      Yes, works with two-factor authentication.
      You will have to generate an application specific password for msmtp on your pi on your Google account page.
      Use this application specific password in your .msmtprc file.

      Reply
      • Linerd

        Thanks for the tip!

        Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.