Date: Sat, 24 Oct 2009 10:16:36 +0100 From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: Kelly Martin <kellymartin@gmail.com> Cc: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: changing cron's From: address in emails Message-ID: <4AE2C5F4.20109@infracaninophile.co.uk> In-Reply-To: <1338880b0910240008h5d5e7846q8ccf184728d9e036@mail.gmail.com> References: <1338880b0910240008h5d5e7846q8ccf184728d9e036@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigF5F4C721D6A84281256A3C65 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Kelly Martin wrote: > Greetings, here's a simple question for the FreeBSD gurus out there. I > have several servers running cron scripts daily for me, and they all > send me e-mail with their output. Regardless of which server it is, > each of these e-mails have the From: address looking exactly the same. > They all say they are from the "Cron Daemon". Fine, but I'd like to > know more clearly which server the cron output is from. >=20 > 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 <root@Myserver> ..." but this doesn't stand > out enough for my tired eyes. Hmmm... that's actually quite tricky. There's no facility within cron(8) for changing the address it sends /from/, and as the bit you want to change is technically a comment on the From: line, and not the actual sender address (the bit in the <angle brackets>) all the address rewriting-fu in sendmail won't really help. Besides, root@... is listed as a member of the 'Exposed User' class: that is, addresses that should be exempt from address rewriting, so you'ld also have to modify that. 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: :0 h * From:.*Cron <root@\/[^\.]+ $MATCH 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 <sender@add.ress> echo "To: <recipient@some.where> echo "Subject: e-mail from cron job" echo "" 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=20 warnings about forgery in the mail headers if the userid the script runs as is not the same as the 'From:' address. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW --------------enigF5F4C721D6A84281256A3C65 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEAREIAAYFAkrixfoACgkQ8Mjk52CukIzcbgCfftS2TJdmxZmk13UmF6c4Qydl Gh8An2JbP9562n+KzVPAnk4td+JmYCsA =l97P -----END PGP SIGNATURE----- --------------enigF5F4C721D6A84281256A3C65--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AE2C5F4.20109>