It's important to know when cron jobs fail. One way to do this is to put an entry in the crontab like MAILTO=me@example.com. But for this to work, the system needs a sendmail agent. A rather simplistic option is ssmtp; this is a good option for a system that only needs to send outgoing mail and since it won't receive mail it won't need the overhead of a full MTA.
sudo apt-get install ssmtp
After installing, the next step is to edit the config file. Check out man ssmtp.conf for more information, but here's a brief example
# most MTAs require authentication and TLS.
# ISPs tend to block port 25 now-a-days.
# SSMTP has us covered!
mailhub=smtp.example.com:465
UseTLS=yes
AuthUser=me@example.com
AuthPass=myPassword
If a password is stored in that file, it's important to modify the permissions.
chmod 640 /etc/ssmtp/ssmtp.conf
chgrp mail /etc/ssmtp/ssmtp.conf
If users need to sendmail, they can be added to the 'mail' group. Just remember that members of the mail group will be able to read the stored password; if that's a concern, the arch wiki has a great section which details a much better approach.
Keeping up appearances
We don't want to just receive mail from user@host, so the next stop is the /etc/ssmtp/revaliases file. The file should have an explanation and example in it like:
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
The final step is adjusting the full name. Use the chfn command.
chfn "User Name" user
Testing
First create a file called test.eml with the following contents:
To: receiver@example.com
Subject: Test
From: sender@example.com
Testing ssmtp!
Then run the following command:
sendmail -vt <test.eml