Brock Rozen writes on 27 February 1996 at 17:54:41
On Tue, 27 Feb 1996, Monee C. Kidd wrote:
Can someone tell me how to set up a recipe that forwards a copy of a piece
of mail to a list of addresses? I know how to set up something like:
Here's what I've used previously...
[...]
Fairly crude, but I haven't used it for awhile and I don't remember what
the problems with it were (all basic problems were worked out). But, it
does the job...
I know there are other ways this can be done...I can already see one
Here's another way...not as efficient since it uses an external shell
script. But it does make use of aliases stored in your $HOME/.mailrc
file which may be convenient.
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
-----
# Nachrichten mailing list
# listserv(_at_)vm(_dot_)gmd(_dot_)de: SUB/SIGNOFF GERMNEWS J. Daniel Smith
##### forward "nachrichten" onto intested persons
:0c
* ^TOgermnews
| resend-message nachrichten
-----
#!/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