# Copyrights 2001-2019 by [Mark Overmeer <markov@cpan.org>].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
# This code is part of distribution Mail-Message. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md
# Copyright Mark Overmeer. Licensed under the same terms as Perl itself.
package Mail::Message;
use vars '$VERSION';
$VERSION = '3.008';
use strict;
use warnings;
use Mail::Message::Head::Complete;
use Mail::Message::Field;
use Carp qw/croak/;
sub bounce(@)
{ my $self = shift;
my $bounce = $self->clone;
my $head = $bounce->head;
if(@_==1 && ref $_[0] && $_[0]->isa('Mail::Message::Head::ResentGroup' ))
{ $head->addResentGroup(shift);
return $bounce;
}
my @rgs = $head->resentGroups;
my $rg = $rgs[0];
if(defined $rg)
{ $rg->delete; # Remove group to re-add it later: otherwise
while(@_) # field order in header would be disturbed.
{ my $field = shift;
ref $field ? $rg->set($field) : $rg->set($field, shift);
}
}
elsif(@_)
{ $rg = Mail::Message::Head::ResentGroup->new(@_);
}
else
{ $self->log(ERROR => "Method bounce requires To, Cc, or Bcc");
return undef;
}
#
# Add some nice extra fields.
#
$rg->set(Date => Mail::Message::Field->toDate)
unless defined $rg->date;
unless(defined $rg->messageId)
{ my $msgid = $head->createMessageId;
$rg->set('Message-ID' => "<$msgid>");
}
$head->addResentGroup($rg);
#
# Flag action to original message
#
$self->label(passed => 1); # used by some maildir clients
$bounce;
}
1;