source: trunk/debathena/debathena/libmail-expandaliases-perl/README @ 24013

Revision 24013, 4.0 KB checked in by broder, 15 years ago (diff)
Create a package for the Mail::ExpandAliases Perl module. This will be used for an updated version of the debathena-msmtp-mta which can understand /etc/aliases files.
Line 
1NAME
2    Mail::ExpandAliases - Expand aliases from /etc/aliases files
3
4SYNOPSIS
5      use Mail::ExpandAliases;
6
7      my $ma = Mail::ExpandAliases->new("/etc/aliases");
8      my @list = $ma->expand("listname");
9
10DESCRIPTION
11    I've looked for software to expand aliases from an alias file for a
12    while, but have never found anything adequate. In this day and age, few
13    public SMTP servers support EXPN, which makes alias expansion
14    problematic. This module, and the accompanying "expand-alias" script,
15    attempts to address that deficiency.
16
17USAGE
18    Mail::ExpandAliases is an object oriented module, with a constructor
19    named "new":
20
21      my $ma = Mail::ExpandAliases->new("/etc/mail/aliases");
22
23    "new" takes the filename of an aliases file; if not supplied, or if the
24    file specified does not exist or is not readable, Mail::ExpandAliases
25    will look in a predetermined set of default locations and use the first
26    one found. See the section on "ALIAS FILE LOCATIONS", below, for details
27    on this search path and how to modify it.
28
29    Lookups are made using the "expand" method:
30
31      @aliases = $ma->expand("listname");
32
33    "expand" returns a list of expanded addresses, sorted alphabetically.
34    These expanded addresses are also expanded, whenever possible.
35
36    A non-expandible alias (no entry in the aliases file) expands to itself,
37    i.e., does not expand.
38
39    In scalar context, "expand" returns a reference to a list.
40
41    Note that Mail::ExpandAliases provides read-only access to the alias
42    file. If you are looking for read access, see Mail::Alias, which is a
43    more general interface to alias files.
44
45    Mail::ExpandAliases make a resonable attempt to handle aliases the way
46    "sendmail" does, including loop detection and support for escaped named.
47    See chapter 24, "Aliases", in *Sendmail*
48    (<http://www.oreilly.com/catalog/sendmail/>) for full details about this
49    process.
50
51ALIAS FILE LOCATIONS
52    Paths to the aliases file can be added globally at compile time:
53
54      use Mail::ExpandAliases qw(/etc/exim/aliases);
55
56    Alias file locations can also be specified to instances when they are
57    constructed:
58
59      my $ma = Mail::ExpandAliases->new("/etc/exim/aliases");
60
61    Alias file locations are stored in the package global
62    @POSSIBLE_ALIAS_FILES, which can be assigned to directly if you're not
63    impressed with encapsulation:
64
65      @Mail::ExpandAliases::POSSIBLE_ALIAS_FILES = ("/etc/aliases");
66
67    By default, @POSSIBLE_ALIAS_FILES contains /etc/aliases,
68    /etc/mail/aliases, /etc/postfix/aliases, and /etc/exim/aliases. If your
69    alias file is ones of these, the filename can be omitted from the
70    constructor; Mail::ExpandAliases will look in @POSSIBLE_ALIAS_FILES
71    until it finds a file that exists.
72
73    Note that it is not (necessarily) an error if none of these files
74    exists. An alias file can be added by passing a filename to the init()
75    method:
76
77      my $ma = Mail::ExpandAliases->new();
78
79      # Write a temporary aliases file in /tmp/aliases-$<
80      $ma->init("/tmp/aliases-$<");
81
82    Calling expand before setting an alias file will, of course, produce no
83    useful expansions.
84
85    If the constructor is called with the name of a file that exists but
86    cannot be opened, Mail::ExpandAliases will die with an error detailing
87    the problem.
88
89BUGS / SHORTCOMINGS
90    If you were telnet mailhost 25, and the server had EXPN turned on, then
91    sendmail would read a user's .forward file. This software cannot do
92    that, and makes no attempt to. Only the invoking user's .forward file
93    should be readable (if any other user's .forward file was readable,
94    sendmail would not read it, making this feature useless), and the
95    invoking user should not need this module to read their own .forward
96    file.
97
98    Any other shortcomings, bugs, errors, or generally related complaints
99    and requests should be reported via the appropriate queue at
100    <http://rt.cpan.org/>.
101
102AUTHOR
103    darren chamberlain <darren@cpan.org>
104
Note: See TracBrowser for help on using the repository browser.