default color: lavender w/red vlinks)
change to: default, lav, whi, gra, ora

Mail-Penguin: Index

last updated: Thursday, 22-Apr-1999 23:51:32 EDT
[an error occurred while processing this directive]   visit to this page
[ write to Jeff ]

Download ZIPped Perl Script

(The Script lacks some comments that
have been added to the HTML pages)

Download ZIPped HTML Pages

The General Idea

"Mail-Penguin" (a/k/a "", which is its name inside the file that's available for download here, was born because I have a peculiar computer setup, and my brother and I receive mail at the same POP box.

On the same machine, we were running the original Well Now Health Information Service BBS, off-Internet, and providing Internet email services for our BBS members. And at one point we worked hard to construct an itty-bitty ISP on that machine, too.

Thus, for about 5 minutes :-), we had a need to sort mail on this machine, that was all arriving under just a single POP address.

The more logical and real-world solution to this would've been a dedicated Internet connection and our own SMTP and POP servers. We do have those servers running on this computer, along with DNS, NNTP, and every other fine thing -- but have not been able to afford that dedicated connection.


  1. polls multiple POP boxes periodically, then
  2. retrieves any waiting mail it finds, and
  3. compares header information (a bit clumsily) against the contents of several different files in order to determine who's supposed to get each piece of mail, and finally
  4. delivers it, by direct disk write if possible, or by having an SMTP conversation otherwise. (It could as easily have a conversation with a local delivery agent.)

Some of the ideas in it are drawn from similar code that was written in REXX. I wrote Mail-Penguin first in straightforward non-module Perl, then for the heck of it rewrote it to make use of a few *.pm modules. I see there are some mysteries in the "black boxes" of those modules that I haven't quite fathomed yet.

Comments of all kinds are invited and encouraged, here, whether about style, syntax, logic or whatever.

Index to Code Files

Note: All pages are cross-linked multiple ways, so there's no need specifically to return here in order to locate a bit of the script code. This is the only place, though, where a listing of all files appears. -- Jeff --

[ to Init | to Main ]