NAME
Mail::Header::Generator - Generate various email headers.
VERSION
Version 0.200
SYNOPSIS
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:
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:
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:
- 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:
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.