SSMTP is a program which delivers email from a local computer to a configured mailhost (mailhub). It is not a mail server (like feature-rich mail server sendmail) and does not receive mail, expand aliases or manage a queue. One of its primary uses is for forwarding automated email (like system alerts) off your machine and to an external email address.
ssmtp is unmaintained. Consider using something like msmtp instead.
Install the package .
Forward to a Gmail mail server
To configure SSMTP, you will have to edit its configuration file (
/etc/ssmtp/ssmtp.conf) and enter your account settings.
- If your Gmail account is secured with two-factor authentication, you need to generate a unique App Password to use in
ssmtp.conf. You can do so on your App Passwords page. Use the generated 16-character password in the
AuthPassline. Spaces in the password can be omitted.
- If you do not use two-factor authentication, you need to allow access to unsecure apps. You can do so on your Less Secure Apps page.
# The user that gets all the mails (UID < 1000, usually the admin) email@example.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 # The full hostname. Must be correctly formed, fully qualified domain name or GMail will reject connection. hostname=yourlocalhost.yourlocaldomain.tld # Use SSL/TLS before starting negotiation UseTLS=Yes UseSTARTTLS=Yes # Username/Password AuthUser=username AuthPass=password AuthMethod=LOGIN # Email 'From header's can override the default domain? FromLineOverride=yes
Create aliases for local usernames (optional)
To test whether the Gmail server will properly forward your email:
$ echo test | mail -v -s "testing ssmtp setup" firstname.lastname@example.org
Change the 'From' text by editing
/etc/passwd to receive mail from 'root at myhost' instead of just 'root'.
# chfn -f 'root at myhost' root # chfn -f 'mainuser at myhost' mainuser
$ grep myhost /etc/passwd
root:x:0:0:root at myhost,,,:/root:/bin/bash mainuser:x:1000:1000:mainuser at myhost,,,:/home/mainuser:/bin/bash
Because your email password is stored as cleartext in
/etc/ssmtp/ssmtp.conf, it is important that this file is secure. By default, the entire
/etc/ssmtp directory is accessible only by root and the mail group. The
/usr/bin/ssmtp binary runs as the mail group and can read this file. There is no reason to add yourself or other users to the mail group.
To send email from the terminal, do:
$ echo "this is the body" | mail -s "Subject" email@example.com
or interactively as:
$ mail firstname.lastname@example.org
don a blank line to end your message and automatically send it out.
An alternate method for sending emails is to create a text file and send it with ssmtp or mail
To:email@example.com From:firstname.lastname@example.org Subject: Test This is a test mail.
$ mail email@example.com < test-mail.txt
Alternatively, you can attach using uuencode:
$ uuencode file.txt file.txt | mail firstname.lastname@example.org