Name File::MailAlias - Domain model for the system mail aliases file Version 0.16.$Rev: 1 $ Synopsis use File::MailAlias; my $alias_obj = File::MailAlias->new( $alias_attributes ); Description Domain model for the system mail aliases file. Extends File::DataClass::Schema Configuration and Environment Defines these attributes: "commit" Boolean indicating whether source code control tracking is being used. Defaults to "false" "commit_cmd" "newaliases" "path" Path to the copy of the "aliases" file that this module works on. Defaults to "aliases" in the "ctrldir" "prog" Path to the "appname"_misc program which is optionally used to commit changes to the local copy of the aliases file to a source code control repository "new_aliases" Path to the "newaliases" program that is used to update the mail transfer agent when changes are made "result_source_attributes" "root_update_attrs" "root_update_cmd" "source_name" "suid" Path to the "suid" root wrapper program that is called to enable update access to the real mail alias file "system_aliases" The real mail alias file. Defaults to /etc/mail/aliases Defines the following methods modifiers "BUILDARGS" "resultset" Subroutines/Methods aliases_map $alias_obj->aliases_map; Returns a hash ref of aliases. Caches the result and updates automatically by reading the cache mod time create $alias_obj->create( { name => $name, fields => $fields } ); Create a new mail alias. Passes the fields to the "suid" root wrapper on the command line. The wrapper calls the "update_as_root" method to get the job done. Adds the text from the wrapper call to the results section on the stash delete $alias_obj->delete( { name => $name } ); Deletes the named mail alias. Calls "update_as_root" via the "suid" wrapper. Adds the text from the wrapper call to the results section on the stash email_address $email_address = $alias_obj->email_address( $username ); Takes a user returns a guess as to what the users email address might be find $f_dc_element_obj = $alias_obj->list( $name ); Initialises these attributes in the returned object aliases List of alias names comment Creation comment associated with the selected alias created Date the selected alias was created owner Who created the selected alias recipients List of recipients for the selected owner list $f_dc_list_obj = $alias_obj->list( $name ); Returns an object containing a list of alias names and the fields pertaining to the requested alias if it exists update $alias_obj->update( { name => $name, fields => $fields } ); Update an existing mail alias. Calls "update_as_root" via the "suid" wrapper update_as_root $alias_obj->update_as_root( $alias, $recipients, $owner, $comment ); Called from the "suid" root wrapper this method updates the local copy of the alias file as required and then copies the changed file to the real system alias file. It will also run the "newaliases" program and commit the changes to a source code control system if one is being used Diagnostics None Dependencies File::DataClass IPC::Cmd Moo Incompatibilities There are no known incompatibilities in this module Bugs and Limitations There are no known bugs in this module. Please report problems to the address below. Patches are welcome Author Peter Flanigan, "" License and Copyright Copyright (c) 2013 Peter Flanigan. All rights reserved This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE