Special announcement:

Perl Mail Proxy is no longer in development. I have solved my needs with Fetchmail, Procmail, Anomy Sanitizer, Postfix, and QPopper. If you want details or want to take over this project, feel free to email me. Until further notice, this project will not continue development. I leave the page intact below in case anyone is interested.

Perl Mail Proxy

by Richard Garand (richard at garandnet dot net)

[ Introduction | About | Features | Download | Documentation | Credits ]
SourceForge Logo

Introduction

Perl Mail Proxy was created because I needed to protect users from email virii. I decided I could also add some spam filtering capabilities too. The proxy will run on any computer with Perl, and relay SMTP, IMAP, and POP commands, filtering incoming and outgoing mail according to rules defined in the configuration file. It's designed to handle many users, with the ability to forward to different servers based on the username (for pop3 authentication) and set up multiple virtual proxy servers on different ports.

About

Perl Mail Proxy is made for three things: handling multiple users, filtering mail and executing actions on it, and ease of use. The configuration file system should make it easy to set up a basic proxying service rapidly, and I hope to include several predefined configuration files that can be used as a base. Perl Mail Proxy is distributed under the
GPL, and can be freely modified and redistributed by anyone as long as the source is included (sort of hard to get around :)

Features

Perl Mail Proxy features:

-Flexible configuration file
-Define individual users for a certain protocol and set them to be forwarded to defined server
-Define blocks of users for the same protocol/server to reduce file size
-Define user groups to use one name for many users
-Define filters that decide if a message should be edited, quarantined, or deleted
-Set custom message to replace quarantined emails, alerting the reciever and telling them how to get to the original message
-Define filter stacks of internal filters and external programs for messages to pass through that are selectively applied based on user and protocol
-Decide which server to forward to based on username, ip address, protocol or vproxy (see next feature)
-Set up multiple proxies on different ports to help choose which server to forward to
-Proxy is transparent - after configuring the client, email works exactly like it did with no proxying
-And finally, use a powerful multi-user proxy to add security and remove unwanted messages :)

I started this project for personal use and put it up here to share with everyone, but if you have a feature request post it on the
Sourceforge feature requests page and I may implement it. Of course, if you submit a patch which has no major flaws and doesn't go against or away from the goals of the project, I will add it to the CVS repository and you will be credited appropriately.

Downloads

Requirements:
Perl Mail Proxy requires Perl with the IO::Socket modules.

Download links
Download sites:
Sourceforge.net           Download latest version

Documentations

There is no documentation yet, but someday when I actually release something i'll probably take all my notes in the configuration and other thoughts and put them up here in some useful form.

Credits

Perl Mail Proxy is written by me, Richard Garand. You can contact me at richard at garandnet dot net. Since I started this with little knowledge of perl networking functions, I used
a perl webserver created by Scott Wunsch as an example.