Paul Schmehl wrote:
--On Saturday, October 24, 2009 4:16 AM -0500 Matthew Seaman
Kelly Martin wrote:
How can I change the From: address of these emails to "Myserver Cron
Daemon" instead? I know cron runs as the user, so it's not immediately
obvious to me how to change the From: field. Already the subject line
says something like "Cron <r...@myserver> ..." but this doesn't stand
out enough for my tired eyes.
Do you control the mail server where you read your e-mail? Can you use
eg. procmail(1) as a delivery agent? You should be able to match e-mails
from Cron and rewrite headers, or deliver cron e-mails into per-machine
mailboxes. Something like this:
* From:.*Cron <r...@\/[^\.]+
The other alternative is to re-write the cron scripts to send e-mail
themselves, rather than relying on cron(8) to capture their stdout/stderr
and e-mail it for you. Here's a handy shell programming trick that can
make that easier. Somewhere near the top of the script, you can add
something like this:
exec 2>&1 | /usr/sbin/sendmail -oi -t
echo "From: Sender Name <sen...@add.ress>
echo "To: <recipi...@some.where>
echo "Subject: e-mail from cron job"
Then everything you print out in the script will be captured as the body
of the e-mail and sent to the specified recipient. You might get some
warnings about forgery in the mail headers if the userid the script runs
as is not the same as the 'From:' address.
Why not just echo `hostname` as the first line of every script? Isn't
that what he really wants to know?
Or echo "This script came from `hostname`"?
Or, on a related note, why have cron(8) do any mailing at all?
Most/all of my management scripts compile a mail message in
/tmp and then send it as the body of a message with mail(1),
so I can have whatever subject header I want, and the envelope
data comes from the user ("usually m...@myhost.tld"). Cron sees
nothing because stdout/err is redirected to dev/null.
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"