=encoding utf8

=head1 NAME

Mail::Util - mail utility functions


   is a Exporter


  use Mail::Util qw( ... );


This package provides several mail related utility functions. Any function
required must by explicitly listed on the use line to be exported into
the calling package.


=over 4

=item B<mailaddress>( [$address] )

Return a guess at the current users mail address. The user can force
the return value by setting the MAILADDRESS environment variable.
[2.10] You may set the $address via the parameter.

When not supplied via the environment variable, <mailaddress> looks at
various configuration files and other environmental data. Although this
seems to be smart behavior, this is not predictable enough (IMHO) to
be used.  Please set the MAILADDRESS explicitly, and do not trust on
the "automatic detection", even when that produces a correct address
(on the moment)


 # in your main script
 $ENV{MAILADDRESS} = 'me@example.com';

 # everywhere else
 use Mail::Util 'mailaddress';
 print mailaddress;

 # since v2.10
 mailaddress "me@example.com";

=item B<maildomain>()

Attempt to determine the current user mail domain string via the following

=over 4

=item * Look for the MAILDOMAIN environment variable, which can be set from outside the program.  This is by far the best way to configure the domain.

=item * Look for a sendmail.cf file and extract DH parameter

=item * Look for a smail config file and usr the first host defined in hostname(s)

=item * Try an SMTP connect (if Net::SMTP exists) first to mailhost then localhost

=item * Use value from Net::Domain::domainname (if Net::Domain exists)


On modern machines, there is only one good way to provide information to
this method: the first; always explicitly configure the MAILDOMAIN.


 # in your main script
 $ENV{MAILDOMAIN} = 'example.com';

 # everywhere else
 use Mail::Util 'maildomain';
 print maildomain;

=item B<read_mbox>($file)

Read $file, a binmail mailbox file, and return a list of  references.
Each reference is a reference to an array containing one message.

This method does not quote lines which accidentally also start with the
message separator C<From>, so this implementation can be considered
broken.  See Mail::Box::Mbox


=head1 SEE ALSO

This module is part of the MailTools distribution,

=head1 AUTHORS

The MailTools bundle was developed by Graham Barr.  Later, Mark
Overmeer took over maintenance without commitment to further development.

Mail::Cap by Gisle Aas E<lt>aas@oslonett.noE<gt>.
Mail::Field::AddrList by Peter Orbaek E<lt>poe@cit.dkE<gt>.
Mail::Mailer and Mail::Send by Tim Bunce E<lt>Tim.Bunce@ig.co.ukE<gt>.
For other contributors see ChangeLog.

=head1 LICENSE

Copyrights 1995-2000 Graham Barr E<lt>gbarr@pobox.comE<gt> and
2001-2017 Mark Overmeer E<lt>perl@overmeer.netE<gt>.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>