http://www.linuxplanet.com/linuxplanet/tips/6833/1

Back to article

Automating Email Reminders to Yourself

Emailing With Myself

September 9, 2009

Juliet Kemp

I've occasionally found it useful to set up reminders to be emailed to myself on a regular basis. The most straightforward tool to use for this is cron with mail.

If you're sending directly from the command line, this command:

mail -s "Subject test" juliet@example.com

will not actually send the mail straight away. Instead, it will wait for you to type in the body of the email (which can be empty), and hit Ctrl-D twice. This may be a nuisance if you want an empty mail body and the message to be sent immediately. To mitigate that, you can try this:

mail -s "Subject test" juliet@example.com < /dev/null

If you're sending mail from cron, however, mail is running noninteractively, and it will behave slightly differently. On my (Debian stable) system, I don't need that redirect. Just using this line in the crontab:

59 8 * * 1-5 mail -s "Check backup ran" juliet@example.com

will send the mail at the appropriate time (0859 on Monday-Friday) with any empty body and without any intervention. However, this may vary between systems depending on exactly what program the mail command runs. On my system, this is /usr/bin/bsd-mail via a couple of soft links. If you do have problems, try adding the /dev/null input pipe as it appears on the command-line.

You may also want to redirect any output, which you can do by adding a redirect in the other direction:

59 8 * * 1-5 mail -s "Check backup ran" juliet@example.com > /dev/null

If you want to send an email that does have a body (e.g., the contents of a logfile), try:

15 4 * * * mail -s "Today's logs" juliet@example.com <
/var/log/messages

In fact, if you want a regular log email, LogWatch is a better choice. But you can use this to create any mail body: Just write and save an appropriate file.

Follow ServerWatch on Twitter

Article courtesy of ServerWatch

Sitemap | Contact Us