Mail::TempAddress
-----------------

Mail::TempAddress is a set of modules for creating and using temporary e-mail
addresses.  They're intended to be simple and easy to use.  They're not
increadably featureful, but they work pretty well.

Why would you want a temporary e-mail address?

Suppose you need to contact a person or a company for a simple question or
concern.  You may be purchasing something online, for example.  While it's
important to be able to send and receive messages, you may not want to reveal
your one true e-mail address.

Create a temporary e-mail address and use that instead.  Mail::TempAddress will
not reveal your actual e-mail address to a third party -- and a temporary
address can expire when you decide you've had enough.

INSTALLATION
------------

If you've already used CPAN or CPANPLUS to install this, great!  If not, you'll
need to install some other dependencies.

First, run the Build.PL file to create the Build program.  Then install as
normal:

    $ perl Build.PL
    $ perl ./Build
    $ perl ./Build test
    $ sudo perl ./Build install

All of the tests should pass.  If not, please send the complete diagnostic
output to the author and we'll try to fix the bugs.  This should work on any
Unix system and probably elsewhere, but portability depends on several other
components.

To use this program, you'll have to do a bit of configuration on your mail
server.  Here's how we did it.  This may not be the optimal installation, but
it works.

If you have better ideas (or ideas for other MTAs such as Sendmail, Qmail, and
Exim, please send them along).

    1. Create a new subdomain, such as tempmail.example.com.  This must be
    globally visible.

    2. Create a new user with a home directory.  "tempmail" is a good name.

    3. Configure all mail to the subdomain to be delivered to a filter program.

    In Postfix, this meant adding a new transport.  You can do this by adding
    one line to /etc/postfix/transport/:

        tempmail.example.com    tempmail:

    two lines to /etc/postfix/virtual:

        tempmail.example.com    virtual
        @tempmail.example.com    tempmail@tempmail.example.com

    and, possibly, several lines to /etc/postfix/master.cf.  The first defines
    delivery to the new tempmail transport:

        tempmail    unix    -    n    n    -    -    pipe \
            flags=FQ.    user=tempmail    argv=/home/tempmail/bin/tempmail.pl

    (This line was broken to fit in 80 columns; you might need to follow local
    formatting conventions.)

    If you don't already use transport maps, you'll likely have to load them.
    Again edit /etc/postfix/master.cf to add an entry:

        transport_maps = hash:/etc/postfix/transport

    Finally, if you aren't already using virtual domains, add this line to
    /etc/postfix/master.cf:

        virtual_maps = hash:/etc/postfix/virtual

    You'll have to rehash the configuration files; check the Postfix
    documentation.  (Hey, you should be checking this against the docs anyway.)

    4. Create a subdirectory under /home/tempmail/ to store temporary address
    files.  'addresses' is a good name.  Also create the 'bin' directory where
    the filter will live.

    5. Create the filter program.  This is a good start:

        #/usr/bin/perl -w

        use File::Spec;
        use Mail::TempAddress;

        my $address_dir = File::Spec->catfile( $ENV{HOME}, 'addresses' );
        my $mta         = Mail::TempAddress->new( $address_dir )

        $mta->process();

    6. Double-check your mail server settings and restart your mail server.
    There is no warranty at this point.

USAGE
-----

    $ perldoc Mail::TempAddress

BUGS
----

None known.  The general TODO list lives in the POD of Mail::TempAddress.

LICENSE, COPYRIGHT, and CREDITS
-------------------------------

Copyright (c) 2003 - 2009 chromatic.  Some rights reserved.  You may use,
modify, and distribute this module under the same terms as Perl 5.10 itself.

This software would not have been possible without the inspiration of Simon
Cozens' Mail::Audit and the practical experience of writing Mail::SimpleList.