How to get cron job errors in email with MAILTO?

Better Stack Team
Updated on January 9, 2023

One of the neat features of Cron is the ability to send emails when an error occurs during the execution of the cronjob. This can be done using the MAILTO environmental variable. When executing cronjob, any output is mailed to the owner of the crontab or to the user or email address specified in the MAILTO environment variable in the crontab, if such exists.

Setting the MAILTO variable

MAILTO environmental variable is set in the same way as any other variable using the = operator.

As a value of the variable, you can specify either a specific email address or a specific user, or even an empty string in which case no email will be sent.

 
#mail to an email
MAILTO=email@example.com

#mail to a selected user
MAILTO=someuser

Sending an email

First, open preferred crontab in the select text editor. Then assign a value to the MAILTO variable on the line above the select cronjob as shown in the example below.

 
MAILTO=email@example.com
*   *  *   *   *   /bin/backup.sh

This will execute the /bin/backup.sh shell script every minute. If the script generates any output during the execution, it will be sent to email@example.com.

Make sure that your script doesn't generate output if everything goes as planned as it will send this output regardless of its nature.

Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →

Reliability is the
ultimate feature

Delightful observability tools that turn your logs & monitoring into a secret weapon for shipping better software faster.

Explore Better Stack