Qpopper is a POP3 deamon with goals of security, stability, safety, and performance. Qpopper is normally used with standard UNIX mail transfer and delivery agents.
INSTALLS: qpopper as a standalone daemon.
ALTERNATIVE:inetd powered pop3d daemon
Compile qpopper:
mkdir -p /usr/man/man8 mkdir -p /usr/src cd /usr/src wget http://public.www.planetmirror.com/pub/mail/popper/qpopper4.0.5.tar.gz # wget http://hostinghacks.net/dist/qpopper4.0.5.tar.gz tar -zxf qpopper4.0.5.tar.gz cd /usr/src/qpopper4.0.5 ./configure \ --prefix=/usr \ --with-openssl \ --enable-log-login \ --enable-shy \ --enable-standalone make && make install # make realclean
qpopper init script:
cat > /etc/rc.d/rc.qpopper << "EOF"
#!/bin/sh
# Start/stop/restart a daemon.
#
program_start() {
if [ -x /usr/sbin/popper ]; then
echo -n "Starting qpopper daemon: "
echo " /usr/sbin/popper"
/usr/sbin/popper
fi
}
program_stop() {
echo "Stopping qpopper daemon: "
killall popper 2> /dev/null
}
# no need to adjust anything below:
program_restart() {
program_stop
sleep 1
program_start
}
case "$1" in
'start')
program_start
;;
'stop')
program_stop
;;
'restart')
program_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
EOF
chmod 755 /etc/rc.d/rc.qpopper
echo "/etc/rc.d/rc.qpopper start" >> /etc/rc.d/rc.local
/etc/rc.d/rc.qpopper start
qpopper doesn't have a pid for status monitoring you can fake it by doing something like this: mkdir -p /var/run/qpopper touch /var/run/qpopper/qpopper.pid then set the corresponding value in /home/webcp/config.php or just set the pid file to match the sendmail pid file in /home/webcp/config.php these are really just sneaky fixes to get the status light to turn green. if you want something more indicative of the actual pop3 service status there are a couple of alternatives: 1. there is a patch floating around the internet will allow qpopper to create pid files. If you are motivated to locate this and succesfully test it please post the information in the forums. 2. Run the inetd powered pop3d daemon alternative to qpopper. (see the notes below). In this scenario you can have /home/webcp/config.php reference the pid file created by inetd. This is somewhat more accurate although technically the service status lights will be only monitoring inetd ; whether it is successfully accessing the pop3 daemon will not be indicated. Another thing to consider for this is that inetd uses up more resources than a standalone daemon so if yo get a lot of users that have their email client set to check every '1 minutes' there will be some non-negligable use of resources.
uwimap inetd powered pop3d daemon alternative to qpopper:
mv /etc/inetd.conf /etc/inetd.conf.old cat > /etc/inetd.conf << "EOF" pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popa3d # auth stream tcp wait root /usr/sbin/in.identd in.identd # ftp stream tcp nowait root /usr/sbin/tcpd proftpd # echo stream tcp nowait root internal # echo dgram udp wait root internal # discard stream tcp nowait root internal # discard dgram udp wait root internal # daytime stream tcp nowait root internal # daytime dgram udp wait root internal # chargen stream tcp nowait root internal # chargen dgram udp wait root internal # time stream tcp nowait root internal # time dgram udp wait root internal # telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # comsat dgram udp wait root /usr/sbin/tcpd in.comsat # imap2 stream tcp nowait root /usr/sbin/tcpd imapd # finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -u # systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx # netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat -a EOF chmod 644 /etc/inetd.conf chmod +x /etc/rc.d/rc.inetd /etc/rc.d/rc.inetd restart # nmap localhost
testing SMTP:
telnet server 25 helo yourmachinename mail from: x@hosting.hacks rcpt to: hostinghacks@localhost.localdomain data . quit
testing POP:
telnet server 110 user xyz123 pass xyz.123 RETR 1 DELE 1 QUIT
To subscribe to the qpopper mailing list send the word 'subscribe' as the body of a message to qpopper-request@lists.pensive.org