4

If a cron job produces output it is e-mailed to the user's account.

I would like to redirect this e-mail to another e-mail account. Preferably on a user-by-user basis.

I've looked into some options that are often mentioned in other postings:

  1. Using the cron MAILTO variable. Won't work. That one is not supported on Solaris. It is a Linux thing, potentially also a BSD thing, but certainly doesn't exist on Solaris.

  2. Using the ~/.forward file. Can't make that work. I suspect it is because this file is really related to sendmail universe and I'm not sure Solaris cron actually uses sendmail to send its e-mails.

To get to the bottom of this I guess I need to understand exactly by which mechanism Solaris cron sends e-mails.

Anyone ?

2

3 Answers 3

3

If you want to forward all of a user's mail, not just the mail from Cron, Solaris does support ~/.forward. Solaris also supports global aliases in /etc/mail/aliases; if you modify this file, you need to run newaliases.

If you only want to forward mail from cron, you can set a filter in ~/.forward or /etc/mail/aliases. I don't think Solaris comes with any useful filtering tool preinstalled; the classic program for this is procmail. Use |/usr/local/bin/procmail as your filter, and something like this as your ~/.procmailrc (untested):

:0
* ^From: Cron Daemon <[email protected]>
* ^Subject: Cron .*
! [email protected]

Alternatively, you can mail the output of the job explicitly from the crontab. Install moreutils (I don't know how easy it is to compile under Solaris), which contains a command ifne that executes a program only if its standard input is not empty.

… 2>&1 | ifne mailx -s 'Cron output' [email protected]
1
  • I've accepted this one as an answer. I believe my problems were completely related to having screwed up configuration for sendmail. Commented Jul 26, 2013 at 10:17
1

I do not remember that Solaris was that different.

Is there not the /etc/aliases file (might be a different location on Solaris?) where you can simply put a pair from - to?

After that newaliases should activate the change.

1
  • 1
    Thanks. Can't make that work. I got a suspicion that my underlying problem is that I've somehow messed up my sendmail setup on this particular host. (yes, I'm back to believing that sendmail is involved ... after all). Commented Jul 24, 2013 at 21:38
1

The code posted in Solaris cron ignoring mail aliases? could help clarify those for whom this still does not work.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.