#!/bin/bash export LANG=C echo "+OK POP3 server ready" LOGFILE=/tmp/pop3.log while read line; do echo "[$BASHPID] - $line" >> $LOGFILE line="$line" COMMAND="${line:0:4}" case "$COMMAND" in USER) LOGINUSER=${line:5} echo "+OK $LOGINUSER is a real hoopy frood" ;; PASS) MESSAGE="Date: $(/bin/date) From: To: Subject: Post $(/usr/games/fortune)" MESSAGE_ID=$(/usr/bin/md5sum <<< $MESSAGE) echo "$MESSAGE" > /tmp/message echo "+OK $LOGINUSER's maildrop has 1 messages (${#MESSAGE} octets)" ;; RETR) echo "+OK ${#MESSAGE} octets" echo "$MESSAGE" echo "." ;; UIDL) case "${line:5:1}" in 1) echo "+OK 1 $MESSAGE_ID" ;; *) echo "+OK" echo "1 MESSAGE_ID" echo "." ;; esac ;; STAT) echo "+OK 1 ${#MESSAGE}" ;; LIST) echo "+OK" echo "1 ${#MESSAGE}" echo "." ;; DELE) echo "+OK message 1 deleted" ;; QUIT) echo "+OK bash POP3 server signing off (maildrop empty)" exit 0 ;; *) echo "-ERR" ;; esac done