aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/fetchspool
blob: cd6c2c81ea6c6c3d563584b98b45116575caeb31 (plain)
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