MSG() {
cat << EOF
-# Fetchsetup is a shell script for creating a $HOME/.fetchmailrc
-# file, that will be used by the program "fetchmail" to connect to
-# your mail domain and retrieve your mail.
+# Fetchsetup is a shell script for creating a .fetchmailrc file, that will be
+# used by the program "fetchmail" to connect to your mail domain and retrieve
+# your mail.
# This script is linux specific, so it may not work on another system.
-# Kent Robotti <krobotti@erols.com> (7-29-98)
+# Kent Robotti <krobot@erols.com> (3-31-99)
EOF
}
-if [ ! "$UID" = "0" ]; then
-echo "NOTICE: * $LOGNAME * You need to be 'root' to run this script."
-echo "You could login: root"
-echo "You could also try this: # sudo fetchsetup"
-echo "You could also try this: # su -c fetchsetup"
-echo "This assumes the permissions on 'sudo' and 'su' are 4111."
-echo "To give 'su' or 'sudo' these permissions, you have to be root."
-echo "~# chown root.root sudo ; chmod 4111 sudo"
-echo "You also need a /etc/sudoers file for 'sudo'."
-exit 1
+if [ "$(id -ur)" != "0" ]; then
+ echo >&2 "$0: You need to be root [found $(id -un)] to run this script."
+ echo >&2 "You could login as root"
+ echo >&2 "You could also try one of these: # sudo fetchsetup"
+ echo >&2 " # su root -c fetchsetup"
+ exit 1
fi
MSG
echo -n "Continue? (Y/n) : "
read ans
if [ "$ans" = "n" -o "$ans" = "N" ]; then
-echo "Cancelled."
-exit 0
+ echo "Cancelled."
+ exit 0
fi
+stty erase "^?" 2>/dev/null
+
echo
-echo "Remote mail site?: foo.boo.com <-Your service providers mail domain name.)"
+echo "Remote mail site?: pop.boo.com <Your service providers mail domain name>"
echo -n "Remote mail site?: "
read SITE
echo
-echo "Protocol?: pop3 <-My service provider uses the 'pop3' mail protocol.)"
-echo "Protocol?: auto <-If not sure put: auto"
-echo "Choices: pop2 pop3 apop imap imap-k4 kpop rpop etrn auto"
+echo "Protocol?: pop3 <My service provider uses the 'pop3' mail protocol>"
+echo "Protocol?: auto <If not sure put: auto>"
+echo "Choices: apop auto etrn imap imap-gss imap-k4 kpop pop2 pop3 rpop sdps"
echo -n "Protocol?: "
read PROTO
echo
-echo "Remote username?: jerry <-My username or login is jerry.)"
+echo "Remote username?: jerry <My username or login is jerry>"
echo -n "Remote username?: "
read USR
echo
-echo "Remote password?: ? <-What's the password for?: $USR"
+echo "Remote password?: ? <What's the password for?: $USR>"
echo -n "Remote password?: "
read PASS
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
-
-if [ -s $HOME/.fetchmailrc ]; then
-mv $HOME/.fetchmailrc $HOME/.fetchmailrc.OLD
+ echo
+ echo "Fetchsetup cancelled."
+ echo
+ exit 0
fi
echo 'poll "'$SITE'"' > $HOME/.fetchmailrc
echo 'username "'$USR'"' >> $HOME/.fetchmailrc
echo 'password "'$PASS'"' >> $HOME/.fetchmailrc
-ps x >/tmp/grep.tmp 2>/dev/null
-
-if [ -s /tmp/grep.tmp ]; then
-if cat /tmp/grep.tmp | grep "sendmail: accepting" >/dev/null 2>&1 &&
-grep "A=procmail" /etc/sendmail.cf >/dev/null 2>&1 ; then
-MDA="1"
-fi
-fi
+PROCMAIL=`type -all procmail | sed -n "1 p" | cut -d' ' -f3`
+SENDMAIL=`type -all sendmail | sed -n "1 p" | cut -d' ' -f3`
-rm -f /tmp/grep.tmp
-
-if [ ! "$MDA" = "1" ]; then
-if [ -x /usr/bin/procmail ]; then
-echo mda '"/usr/bin/procmail -d %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /usr/local/bin/procmail ]; then
-echo mda '"/usr/local/bin/procmail -d %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /usr/sbin/procmail ]; then
-echo mda '"/usr/sbin/procmail -d %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /bin/procmail ]; then
-echo mda '"/bin/procmail -d %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /sbin/procmail ]; then
-echo mda '"/sbin/procmail -d %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /bin/mail.local ]; then
-echo mda '"/bin/mail.local %s"' >> $HOME/.fetchmailrc
-MDA="2"
-elif [ -x /usr/bin/mail.local ]; then
-echo mda '"/usr/bin/mail.local %s"' >> $HOME/.fetchmailrc
-MDA="2"
+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
+ MDA="3"
fi
echo >> $HOME/.fetchmailrc
cat $HOME/.fetchmailrc
if [ ! "$MAIL" = "" ]; then
-echo "Fetchmail will retrieve your mail and put it in: $MAIL"
-if [ ! -s "$MAIL" ]; then
-touch $MAIL 2>/dev/null
-chmod 600 $MAIL 2>/dev/null
-fi
+ 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 "You seem to have sendmail running, 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 in the"
-echo "/etc/sendmail.cf file, for delivery of local mail."
-echo
+ 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 "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
+ 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 '"/bin/mail.local %s"'
-echo
-echo "The first time you run fetchmail, you should run it"
-echo "this way. -> ~# fetchmail -k"
-echo
+ 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