crontool
Paste a schedule, read it in English, see the next runs.

Cron Is Not Emailing Output: MAILTO and Logging

Cron mails any output a job prints to the crontab owner's local mailbox — but only if a mail transfer agent (like postfix or sendmail) is installed. On most servers there is none, so the mail silently disappears. Set MAILTO to choose the recipient, or skip mail entirely and redirect the output to a log file.

Why you get no mail

Cron pipes stdout+stderr to sendmail. If no MTA is installed, there is nothing to deliver the message and it is dropped. This is normal on minimal servers.

Choose the recipient

Add a MAILTO line above your jobs:

MAILTO=you@example.com
0 * * * * /home/me/job.sh

To silence mail for a job, set MAILTO="" (empty) at the top of the crontab.

The reliable alternative: log to a file

0 * * * * /home/me/job.sh >> /var/log/job.log 2>&1

>> appends stdout, and 2>&1 sends stderr to the same place. Now every run is captured no matter what mail is configured — this is the recommended approach.

Getting real email out

If you truly want email, install and configure an MTA (postfix with a relay/SMTP smarthost) so the local mail cron produces can actually be sent.

FAQ

Why is cron not sending me email?

Cron only mails output if a mail transfer agent (postfix/sendmail) is installed. Without one the mail is dropped. Set MAILTO and install an MTA, or redirect output to a log file instead.

How do I set who gets cron emails?

Add MAILTO=you@example.com on a line above your jobs in the crontab. Use MAILTO="" to disable mail for the jobs below it.

How do I see cron job output without email?

Redirect it to a file: append >> /var/log/job.log 2>&1 to the command. This captures both stdout and stderr on every run.