1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/bin/sh -
#
# Quick hack for fetchmail to locally spool messages.
#
# To spool:
# fetchmail --mda "fetchspool -t %T %F"
# To de-spool
# fetchspool -f
#
# Robert de Bath <robert@mayday.cix.co.uk>
# updated by william boughton <bill@xencat.demon.co.uk>
# 4th/10/1998 and tested
#
# William Boughton comments:
# Still has some potential problems, with using inline from address.
# The use of _ is bad because fetchmails uses this if it notices
# shell escapes.
# 10th/11/1998
# Changed to using 3 _@@s to delimit the message, i hope this is ok.
# Whilst i have tested and used this script, with my demon account and
# SDPS, it may still have serious problems, that i've not noticed etc.
MAILSPOOL=/tmp/spool
if [ "$1" != "-f" ]
then
if [ "$1" = "-t" ]
then
ADDR="$2"
FROM="$3"
else
ADDR="$1"
FROM="$2"
fi
cat - > $MAILSPOOL/tmp.$$ || exit 1
mv $MAILSPOOL/tmp.$$ "$MAILSPOOL/msg.`date +%j%H%M%S`$$.to.${ADDR}_@@${FROM}" || exit 1
exit 0
else
for i in $MAILSPOOL/msg.*.to.*
do
[ -f "$i" ] || continue
# TO="`echo \"$i\" | sed 's/^msg.[^.]*.to.//'`"
TO=$(basename $i | sed -e 's/^msg.[^.]*.to.//' -e 's/_@@.*$//')
FROM=$(basename $i | sed 's/^msg.[^.]*.to.*_@@//')
# need the \<\> so for bounces to have a proper from addr
echo the to was \<$TO\> and the from \<$FROM\>
/usr/lib/sendmail -f \<${FROM}\> -oem "$TO" < "$i" ||
{
echo "Sendmail failed on `basename \"$i\"`"
continue
}
rm -f "$i"
done
exit 0
fi
uot;Remote username?: "
read USR
echo
echo "Remote password?: ? <What's the password for?: $USR>"
echo -n "Remote password?: "
read PASS
echo
echo -n "Create $HOME/.fetchmailrc file? (Y/n) : "
read ans
if [ "$ans" = "n" -o "$ans" = "N" ]; then
echo
echo "Fetchsetup cancelled."
echo
exit 0
fi
echo 'poll "'$SITE'"' > $HOME/.fetchmailrc
echo "protocol $PROTO" >> $HOME/.fetchmailrc
echo 'username "'$USR'"' >> $HOME/.fetchmailrc
echo 'password "'$PASS'"' >> $HOME/.fetchmailrc
PROCMAIL=`type -all procmail | sed -n "1 p" | cut -d' ' -f3`
SENDMAIL=`type -all sendmail | sed -n "1 p" | cut -d' ' -f3`
if [ ! "$PROCMAIL" = "" ]; then
echo 'mda "'$PROCMAIL -d %s'"' >> $HOME/.fetchmailrc
MDA="1"
elif [ ! "$SENDMAIL" = "" ]; then
echo 'mda "'$SENDMAIL %s'"' >> $HOME/.fetchmailrc
MDA="2"
else
MDA="3"
fi
echo >> $HOME/.fetchmailrc
echo
echo "This is your $HOME/.fetchmailrc file."
chmod 600 $HOME/.fetchmailrc
echo
cat $HOME/.fetchmailrc
if [ ! "$MAIL" = "" ]; then
echo "Fetchmail will retrieve your mail and put it in:"
echo "$MAIL"
if [ ! -f "$MAIL" ]; then
touch $MAIL 2>/dev/null
chmod 600 $MAIL 2>/dev/null
fi
fi
echo
if [ "$MDA" = "1" ]; then
echo "I put that (m)ail (d)elivery (a)gent in .fetchmailrc"
echo "because i found it on your system, this doesn't mean"
echo "it's correct or the one you want to use."
echo
echo "The first time you run fetchmail, you should run it"
echo "this way: # fetchmail -k"
echo
elif [ "$MDA" = "2" ]; then
echo "You seem to have sendmail, sendmail will be used"
echo "as the (m)ail (d)elivery (a)gent for fetchmail."
echo
echo "WARNING! There's no way to know if sendmail is set up"
echo "properly for local mail delivery, so the first time you"
echo "run fetchmail run it this way: # fetchmail -k"
echo
echo "If the mail that fetchmail retrieves is not put in your mailbox,"
echo "you'll know that sendmail is not set up properly for the delivery"
echo "of local mail."
echo
elif [ "$MDA" = "3" ]; then
echo "I Don't know what (m)ail (d)elivery (a)gent you're going to use."
echo "You need a <mda> to deliver the mail to you, after <fetchmail> retrieves it."
echo
echo "Put the <mda> in your .fetchmailrc file, like below."
echo "password $PASS"
echo mda '"/usr/bin/procmail -d %s"'
echo mda '"/usr/sbin/sendmail %s"'
echo
echo "The first time you run fetchmail, you should run it"
echo "this way: # fetchmail -k"
echo
fi
|