Sten Drescher writes on 18 December 1995 at 09:33:51
Suggestion: Put rfc822 Resent-From:/Resent-To: headers in mail
that is forwarded using ! actions:
rfc822> 4.2. FORWARDING
rfc822> Some systems permit mail recipients to forward a
rfc822> message, retaining the original headers, by adding some new
rfc822> fields. This standard supports such a service, through the
rfc822> "Resent-" prefix to field names.
[...]
message entirely unaltered, I have to explicitly add the headers with
formail rather than simply !ing it.
That's what I do via a little resend-message shell script (mostly to
also expand aliases in $HOME/.mailrc, but also because the "formail"
command line gets a little long).
Procmail's '!' command works just like an email address in your
~/.forward file - the headers don't change. I think it would be nice
if there was a procmail variable or something that would cause '!' to
insert Resent-* headers. Stephan?
Dan
--------------------- message is author's opinion only --------------------
J. Daniel Smith <DanS(_at_)bristol(_dot_)com>
http://www.bristol.com/~dan
Bristol Technology Inc. +1 203 438 6969, 438-5013 (FAX)
Ridgefield, Connecticut (USA)
{info,jobs}(_at_)bristol(_dot_)com
--------
Von guten Maechten wunderbar geborgen, erwarten wir getrost, was
kommen mag. Gott ist mit uns am Abend und am Morgen, und ganz gewiss
an jedem neuen Tag. - Dietrich Bonhoeffer
-----
#!/bin/sh
#
# J. Daniel Smith
# 13 January 1994
#
# resend a mail message expanding aliases from $HOME/.mailrc first
#
# note that your FQDN is needed in for the Errors-To: header. You can
# remove this header if you aren't forwarding mail from mailing lists;
# otherwise its VITAL you have this, w/o it the mailing list
# administrator will get email problems about addresses they know
# nothing about.
#
PATH=/bin:/usr/bin:/usr/local/bin:`dirname $0`
if [ $# != 1 ]; then
echo "Usage: $0 recipients < message"
exit 1
fi
#
# ugly alias expansion from $HOME/.mailrc. Probably could be done a
# lot better, but this seems to work OK
#
ALIAS_LIST=""
ADDRESS_LIST="$1"
until [ "$ALIAS_LIST" = "$ADDRESS_LIST" ] ; do
ALIAS_LIST="`echo "$ADDRESS_LIST"| sed -e 's/,/ /g' `"
ADDRESS_LIST=""
for ALIAS in $ALIAS_LIST ; do
ADDRESS=`grep '^[ ]*alias[ ][ ]*'"$ALIAS"'[ ]'
${HOME}/.mailrc |\
sed -e s/'^[ ]*alias[ ][ ]*'"$ALIAS"'[ ][
]*'// |\
sed -e s/'"'//g`
if [ "$ADDRESS" ] ; then
ADDRESS_LIST="$ADDRESS_LIST $ADDRESS"
else
ADDRESS_LIST="$ADDRESS_LIST $ALIAS"
# for elm alias expansion use the following line instead of the previous.
# ADDRESS_LIST="$ADDRESS_LIST "`elm -c "$ALIAS" | cut -f3 -d\ `
fi
done
done
ADDRESS_LIST="`echo "${ADDRESS_LIST}" | sed 's/^ //' | sed 's/ /, /g'`"
#
# now forward on the message
#
# get the date in RFC822 format for insertion into some messages;
# the "Resent-Date:" field is copied from the "Date:" field on some systems.
# RFC1123 says "All mail software SHOULD use 4-digit years in dates..."
DATE=`date '+%a, %d %h %Y %H:%M:%S %Z'`
# assume use of "formail" since that makes things a lot easier
# apparently sendmail ignores "To:" in the presence of "Resent-To:"
formail -b \
-IResent-From: -I "From " \
-i"Resent-To: $ADDRESS_LIST" \
-i"Resent-Date: $DATE" \
-I"Errors-To: $LOGNAME(_at_)`fqdn`" \
-a"Subject: No subject given in original message!" \
-a"To: $ADDRESS_LIST" \
| exec /usr/lib/sendmail -t -oi "$ADDRESS_LIST"
exit 0