NAME
Mail::Header::Generator - Generate various email headers.
VERSION
Version 0.200
SYNOPSIS
use Mail::Header::Generator ();
my $gen = Mail::Header::Generator->new({
hostname => 'foobar.example.com',
});
# Generate Message-Id: header contents. $message_id will
# contain:
# <20100601142143.GA9035@foobar.example.com>
# and use the hostname provided to the constructor.
my $message_id = $gen->message_id({
timestamp => time(),
queue_id => 'GA9035',
});
# Generate a Received: header, including the Received: name.
# Will result in something similar to:
# Received: from localhost.localdomain ([127.0.0.1] localhost)
# by foobar.example.com with ESMTP id o53JaiwX007246; Thu, 03 Jun 2010 15:37:51 -0400
my $received = $gen->received({
header_name => undef,
relay_address => '127.0.0.1',
relay_hostname => 'localhost',
helo => 'localhost.localdomain',
protocol => 'ESMTP',
queue_id => 'o53JaiwX007246',
});
DESCRIPTION
This class generates RFC 5321/5322-compliant headers for use in email messages.
METHODS
Class Methods
- new ( { args } )
-
Constructs a new Mail::Header::Generator.
Takes a hash reference containing default arguments to be used for the various header-generation callbacks.
Commonly useful keys for default arguments are:
- timestamp
-
A UNIX timestamp (from time()).
- hostname
-
The local host name.
- queue_id
-
The queue ID for the message you're generating these headers for.
Common Parameters
The following methods all take named parameters (as a hash reference). The following parameters are common:
- header_name
-
The name of this header. If this key exists and has a value of undef, the contents of the generated header will be returned with no name prefixed. If the key exists, and has a value, that value will be used as the name. If the key does not exist, the header will default to the same name as the method used to create it.
- timestamp
-
UNIX timestamp (as generated by time()) for this header. If not provided, defaults to the current value of time().
- hostname
-
The local host name.
Instance Methods
- message_id ( ... )
-
Returns a string containing a Message-ID header.
Takes a hash reference containing values to use in generating this header. Valid keys are:
- header_name
-
Defaults to 'Message-ID' if not provided.
- timestamp
- hostname
See top of this section for further details on these parameters.
- received ( ... )
-
Returns a string containing a Received header.
Takes a hash reference containing values to use in generating this header. Valid keys are:
- header_name
-
Defaults to 'Received' if not provided.
- timestamp
- hostname
- product_name
-
String containing name of product responsible for adding this header. Will be added as a comment in the generated header if present.
- protocol
-
Protocol this message was received over. Should be "SMTP" or "ESMTP" for standards compliance. Will not be used in the generated header if not provided.
- recipients
-
An array reference of recipient addresses. Currently, a 'for' tag will be created as part of the header only if the recipients array contains a single address.
- relay_address
-
String representation of IPv4 or IPv6 address that relayed this message to us. If not present, no 'from' section of the header will be created.
- relay_hostname
-
Hostname of relay address.
- sender
-
The envelope sender address. If present, an 'envelope-sender' comment will be added to the generated header.
- user
-
Local user that generated this message. Defaults to $ENV{USER} if not present and no relay address was provided.
See top of this section for further details on these parameters.
- rfc2822_date ( ... )
-
Returns a string containing a RFC 2822 formatted date.
Takes a hash reference containing values to use in generating this header. Valid keys are:
- header_name
-
No default if not provided.
- timestamp
-
UNIX timestamp. Defaults to current value of time() if not provided.
- date ( ... )
-
Returns a date header containing a RFC 2822 formatted date. This is a convenience wrapper around rfc2822_date().
Takes a hash reference containing values to use in generating this header. Valid keys are:
- header_name
-
Defaults to 'Date' if not provided.
- timestamp
-
UNIX timestamp. Defaults to current value of time() if not provided.
AUTHOR
Dave O'Neill, <dmo at roaringpenguin.com>
BUGS
Please report any bugs or feature requests to bug-mail-header-generator at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Mail-Header-Generator. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Mail::Header::Generator
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mail-Header-Generator
Search CPAN
ACKNOWLEDGEMENTS
received() and message_id() were originally implemented in MIMEDefang.
rfc2822_date() implementation based on one from Email::Date.
LICENSE AND COPYRIGHT
Copyright 2010 Roaring Penguin Software
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991 or at your option any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
A copy of the GNU General Public License is available in the source tree; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.