NAME¶
Mail::Message::Construct::Reply - reply to a Mail::Message
SYNOPSIS¶
my Mail::Message $reply = $message->reply;
my $quoted = $message->replyPrelude($head->get('From'));
DESCRIPTION¶
Complex functionality on Mail::Message objects is implemented in different files
which are autoloaded. This file implements the functionality related to
creating message replies.
METHODS¶
Constructing a message¶
- $obj->reply(OPTIONS)
- Start a reply to this message. Some of the header-lines of
the original message will be taken. A message-id will be assigned. Some
header lines will be updated to facilitate message-thread detection (see
Mail::Box::Thread::Manager).
You may reply to a whole message or a message part. You may wish to overrule
some of the default header settings for the reply immediately, or you may
do that later with "set" on the header.
ADDRESSES may be specified as string, or a Mail::Address object, or as array
of Mail::Address objects.
All OPTIONS which are not listed below AND start with a capital, will be
added as additional headers to the reply message.
-Option --Default
Bcc undef
Cc <'cc' in current>
From <'to' in current>
Message-ID <uniquely generated>
Subject replySubject()
To <sender in current>
body undef
group_reply <true>
include 'INLINE'
max_signature 10
message_type Mail::Message
postlude undef
prelude undef
quote '> '
signature undef
strip_signature qr/^--\s/
- Bcc => ADDRESSES
- Receivers of blind carbon copies: their names will not be
published to other message receivers.
- Cc => ADDRESSES
- The carbon-copy receivers, by default a copy of the
"Cc" field of the source message.
- From => ADDRESSES
- Your identification, by default taken from the
"To" field of the source message.
- Message-ID => STRING
- Supply a STRING as specific message-id for the reply. By
default, one is generated for you. If there are no angles around your id,
they will be added.
- Subject => STRING|CODE
- Force the subject line to the specific STRING, or the
result of the subroutine specified by CODE. The subroutine will be called
passing the subject of the original message as only argument. By default,
Mail::Message::replySubject() is used.
- To => ADDRESSES
- The destination of your message. By default taken from the
"Reply-To" field in the source message. If that field is not
present as well, the "From" line is scanned. If they all fail,
"undef" is returned by this method: no reply message
produced.
- body => BODY
- Usually, the reply method can create a nice, sufficient
message from the source message's body. In case you like more complicated
reformatting, you may also create a body yourself first, and pass this on
to this "reply" method. Some of the other options to this method
will be ingored in this case.
- group_reply => BOOLEAN
- Will the people listed in the "Cc" headers (those
who received the message where you reply to now) also receive this message
as carbon copy?
- include => 'NO'|'INLINE'|'ATTACH'
- Must the message where this is a reply to be included in
the message? If "NO" then not. With "INLINE" a reply
body is composed. "ATTACH" will create a multi-part body, where
the original message is added after the specified body. It is only
possible to inline textual messages, therefore binary or multipart
messages will always be enclosed as attachment.
- max_signature => INTEGER
- Passed to "stripSignature" on the body as
parameter "max_lines". Only effective for single-part
messages.
- message_type => CLASS
- Create a message with the requested type. By default, it
will be a Mail::Message. This is correct, because it will be coerced into
the correct folder message type when it is added to that folder.
- postlude => BODY|LINES
- The line(s) which to be added after the quoted reply lines.
Create a body for it first. This should not include the signature, which
has its own option. The signature will be added after the postlude when
the reply is INLINEd.
- prelude => BODY|LINES
- The line(s) which will be added before the quoted reply
lines. If nothing is specified, the result of the replyPrelude()
method is taken. When "undef" is specified, no prelude will be
added.
- quote => CODE|STRING
- Mangle the lines of an "INLINE"d reply with CODE,
or by prepending a STRING to each line. The routine specified by CODE is
called when the line is in $_.
By default, '> ' is added before each line. Specify "undef" to
disable quoting. This option is processed after the body has been
decoded.
- signature => BODY|MESSAGE
- The signature to be added in case of a multi-part reply.
The mime-type of the signature body should indicate this is a used as
such. However, in INLINE mode, the body will be taken, a line containing
'-- ' added before it, and added behind the epilogue.
- strip_signature => REGEXP|STRING|CODE
- Remove the signature of the sender. The value of this
parameter is passed to Mail::Message::Body::stripSignature(pattern) unless
the source text is not included. The signature is stripped from the
message before quoting.
When a multipart body is encountered, and the message is included to ATTACH,
the parts which look like signatures will be removed. If only one message
remains, it will be the added as single attachment, otherwise a nested
multipart will be the result. The value of this option does not matter, as
long as it is present. See Mail::Message::Body::Multipart.
example:
my $reply = $msg->reply
( prelude => "No spam, please!\n\n"
, postlude => "\nGreetings\n"
, strip_signature => 1
, signature => $my_pgp_key
, group_reply => 1
, 'X-Extra' => 'additional header'
);
- $obj->replyPrelude([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
- Produces a list of lines (usually only one), which will
preceded the quoted body of the message. STRING must comply to the RFC822
email address specification, and is usually the content of a
"To" or "From" header line. If a FIELD is specified,
the field's body must be compliant. Without argument -or when the argument
is "undef"- a slightly different line is produced.
An characteristic example of the output is
On Thu Oct 13 04:54:34 1995, him@example.com wrote:
- $obj->replySubject(STRING)
- Mail::Message->replySubject(STRING)
- Create a subject for a message which is a reply for this
one. This routine tries to count the level of reply in subject field, and
transform it into a standard form. Please contribute improvements.
example:
subject --> Re: subject
Re: subject --> Re[2]: subject
Re[X]: subject --> Re[X+1]: subject
subject (Re) --> Re[2]: subject
subject (Forw) --> Re[2]: subject
<blank> --> Re: your mail
DIAGNOSTICS¶
- Error: Cannot include reply source as $include.
- Unknown alternative for the "include" option of
reply(). Valid choices are "NO", "INLINE", and
"ATTACH".
SEE ALSO¶
This module is part of Mail-Box distribution version 2.105, built on May 07,
2012. Website:
http://perl.overmeer.net/mailbox/
LICENSE¶
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. See
http://www.perl.com/perl/misc/Artistic.html