Mail::M...ntGroup(3)

πŸ’– NAME πŸ’–

Mail::Message::Head::ResentGroup β€” header fields tracking message delivery ✨

(you're in the User Contributed Perl Documentation zone, bestie, and this is part 1 of 2 πŸŽ€)


🌈 INHERITANCE 🌈

Mail::Message::Head::ResentGroup
  is a Mail::Message::Head::FieldGroup
  is a Mail::Reporter

so it's giving whole family tree energy πŸ‘‘


✨ SYNOPSIS ✨

use Mail::Message::Head::ResentGroup;
my $rg = Mail::Message::Head::ResentGroup->new(head => $head,
             From => 'me@home.nl', To => 'You@tux.aq');
$head->addResentGroup($rg);

my $rg = $head->addResentGroup(From => 'me');

my @from = $rg->From;

my @rgs = $head->resentGroups;
$rg[2]->delete if @rgs > 2;

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so a resent group is literally just a set of header fields that describe one intermediate step in the message transport πŸ’Œ

and here's the thing you need to internalise: resent groups have NOTHING to do with user activity. there is no relation to the "user's" sense of creating reply, forward, or bounce messages at all! like, zero, none, not a single vibe check πŸ”₯

Extends "DESCRIPTION" in Mail::Message::Head::FieldGroup.


πŸ’… METHODS πŸ’…

Extends "METHODS" in Mail::Message::Head::FieldGroup.


πŸŽ€ Constructors πŸŽ€

Extends "Constructors" in Mail::Message::Head::FieldGroup.

  • $obj->clone() β€” inherited, see "Constructors" in Mail::Message::Head::FieldGroup 🌸
  • $obj->from( [<$head|$message>, %options] ) β€” okay bestie, WARNING: this method has two very different purposes. for backward compatibility reasons, without arguments resentFrom() is called to return the "From" field of this resent group πŸ™ˆ With any arguments, a list of Mail::Message::Head::ResentGroup objects is returned, taken from the specified $message or message $head. Improves base, see "Constructors" in Mail::Message::Head::FieldGroup.
  • $any->implementedTypes() β€” inherited, see "Constructors" in Mail::Message::Head::FieldGroup πŸ’œ
  • $class->new( [@fields], %options ) β€” create an object which maintains one set of resent headers. the @fields are Mail::Message::Field objects from the same header ✨ All %options which start with capitals will be used to construct additional fields. These option names are prepended with "Resent-*", keeping the capitization of what is specified. Improves base, see "Constructors" in Mail::Message::Head::FieldGroup.
-Option      --Defined in                     --Default
 Bcc                                            undef
 Cc                                             undef
 Date                                           <now>
 Delivered-To                                   undef
 From                                           <required>
 Message-ID                                     <uniquely created>
 Received                                       <created>
 Return-Path                                    undef
 Sender                                         undef
 To                                             undef
 head                                           <created automatically>
 message_head                                   undef
 software      Mail::Message::Head::FieldGroup  undef
 type          Mail::Message::Head::FieldGroup  undef
 version       Mail::Message::Head::FieldGroup  undef

and here's what each of those actually does, one by one, no skips πŸ‘‡

  • Bcc => $text|$field|\@fields β€” yep, that's the bcc one 🫢
  • Cc => $text|$field|\@fields β€” and the cc one πŸ’–
  • Date => $date β€” when this resent-group is dispatched by the resender of the message. Like the "Date" field, it is not the date and time that the message was actually transported. so don't clock it as the real transport time, bestie ⏰
  • Delivered-To => $text|$field β€” the delivered-to situation πŸ“¬
  • From => $text|$field|\@fields β€” where it came from πŸ’Œ
  • Message-ID => $text|$field β€” the "Resent-Message-ID" which identifies this resent group. the $field must contain a message id. no cap.
  • Received => $text β€” the "Received" field is the starting line for a resent group of header lines. If it is not defined, one is created using createReceived(). iconic ✨
  • Return-Path => $text|$field β€” the return path, obviously πŸ’«
  • Sender => $text|$field β€” only permitted when more than one from address is specified. In this case, it selects one of these addresses as the main originator of the message. main character energy, literally πŸ‘‘
  • To => $text|$field|\@fields β€” who it's going to πŸŽ€
  • head => $head β€” the $head object where the data is stored in. By default a Mail::Message::Head::Partial is created for you. so thoughtful fr fr
  • message_head => $head β€” the real $head of the message where this resent group is part of. The "head" used in this class is only a container for a subset of fields. lowkey just a lil container πŸ“
  • software => STRING β€” software string, undef by default πŸ’»
  • type => STRING β€” type string, undef by default 🌸
  • version => STRING β€” version string, undef by default πŸ”’

πŸ’œ Attributes πŸ’œ

Extends "Attributes" in Mail::Message::Head::FieldGroup.

(nothing extra listed here, bestie β€” the parent's got it πŸ’…)


🌸 The header 🌸

Extends "The header" in Mail::Message::Head::FieldGroup.

  • $obj->add( <$field, $value> | $object ) β€” all fields appear only once, so add() behaves as set(). Improves base, see "The header" in Mail::Message::Head::FieldGroup. one field, one time, periodt βœ‹
  • $obj->addFields( [$fieldnames] ) β€” not applicable to resent-groups: the same name can appear in more than one group. Therefore, a FIELDNAME is sufficiently distinctive. Improves base, see "The header" in Mail::Message::Head::FieldGroup. yeah it's just not that girl for this class πŸ™ˆ
  • $obj->attach($head) β€” inherited, see "The header" in Mail::Message::Head::FieldGroup πŸ’–
  • $obj->delete() β€” inherited, see "The header" in Mail::Message::Head::FieldGroup πŸ—‘οΈ
  • $obj->fieldNames() β€” inherited, see "The header" in Mail::Message::Head::FieldGroup ✨
  • $obj->fields() β€” inherited, see "The header" in Mail::Message::Head::FieldGroup πŸŽ€
  • $obj->head() β€” inherited, see "The header" in Mail::Message::Head::FieldGroup πŸ‘‘
  • $obj->messageHead( [$head] ) β€” returns (optionally after setting) the real header where this resent group belongs to. This may be "undef" at creation, and then later filled in when Mail::Message::Head::Complete::addResentGroup() is called. it grows into its role, we love a late bloomer πŸ¦‹
  • $obj->orderedFields() β€” returns the fields in the order as should appear in header according to rfc2822. For the "Resent-*" fields of the group, the order is not that important, but the "Return-Path", "Delivered-To", and "Received" must come first. Only fields mentioned in the RFC are returned. so like, those three are the opening act and everyone else can chill πŸ”₯
  • $obj->set( <$field, $value> | $object ) β€” set a $field to a (new) $value. The $field names which do not start with 'Resent-*' but need it will have that added. It is also an option to specify a fully prepared message field $object. In any case, a field $object is returned. πŸ’…

Β» example:

my $rg = Mail::Message::Head::ResentGroup->new;
$rg->set(To => 'fish@tux.aq');
$msg->addResentGroup($rg);
$msg->send;

$msg->bounce(To => 'fish@tux.aq')->send;   # the same
my $rg = Mail::Message::Head::ResentGroup->new(To => 'fish@tux.aq');

🌈 Access to the header 🌈

Extends "Access to the header" in Mail::Message::Head::FieldGroup.

  • $obj->bcc() β€” in scalar context, the "Resent-Bcc" field is returned. In list context, the addresses as specified within the bcc field are returned as Mail::Address objects. Bcc fields are not transmitted (hidden for external parties). secret lil guest list 🀫
  • $obj->cc() β€” in scalar context, the "Resent-Cc" field is returned. In list context, the addresses as specified within the cc field are returned as Mail::Address objects. πŸ’–
  • $obj->date() β€” returns the "Resent-Date" field, or "undef" if it was not defined. may or may not show up, it's giving mystery πŸŒ™
  • $obj->dateTimestamp() β€” the timestamp as stored within the "Resent-Date" field converted to local system time. ⏰
  • $obj->deliveredTo() β€” the field which describes the "Delivered-To" of this resent group. πŸ“¬
  • $obj->destinations() β€” returns a list of all addresses specified in the "Resent-To", "-Cc", and "-Bcc" fields of this resent group. the whole squad of destinations fr fr πŸŽ€
  • $any->isResentGroupFieldName($name) β€” checks if that $name is a resent-group field name πŸ‘€
  • $obj->messageId() β€” returns the message-ID used for this group of resent lines. πŸ’Œ
  • $obj->received() β€” the field which describes the "Received" data of this resent group. ✨
  • $obj->receivedTimestamp() β€” the timestamp as stored within the "Received" field converted to local system time. ⏰
  • $obj->resentFrom() β€” in scalar context, the "Resent-From" field is returned. In list context, the addresses as specified within the from field are returned as Mail::Address objects. For reasons of backward compatibility and consistency, the from() method will return the same as this method. besties forever 🀝
  • $obj->returnPath() β€” the field which describes the "Return-Path" of this resent group. πŸ’«
  • $obj->sender() β€” in scalar context, the "Resent-Sender" field is returned. In list context, the addresses as specified within the from field are returned as Mail::Address objects. πŸ‘‘
  • $obj->software() β€” inherited, see "Access to the header" in Mail::Message::Head::FieldGroup πŸ’»
  • $obj->to() β€” in scalar context, the "Resent-To" field is returned. In list context, the addresses as specified within the to field are returned as Mail::Address objects. 🌸
  • $obj->type() β€” inherited, see "Access to the header" in Mail::Message::Head::FieldGroup πŸŽ€
  • $obj->version() β€” inherited, see "Access to the header" in Mail::Message::Head::FieldGroup πŸ”’

🧚 Internals 🧚

Extends "Internals" in Mail::Message::Head::FieldGroup.

  • $obj->collectFields( [$name] ) β€” inherited, see "Internals" in Mail::Message::Head::FieldGroup πŸ“
  • $obj->createReceived( [$domain] ) β€” create a received field for this resent group. This is automatically called if none was specified during creation of this resent group object. The content of this field is described in RFC2821 section 4.4. It could use some improvement. (ngl, the docs said it, not me 😭)
  • $obj->detected($type, $software, $version) β€” inherited, see "Internals" in Mail::Message::Head::FieldGroup πŸ”

πŸ’€ Error handling πŸ’€

Extends "Error handling" in Mail::Message::Head::FieldGroup.

  • $obj->AUTOLOAD() β€” inherited, see "Error handling" in Mail::Reporter πŸͺ„
  • $obj->details() β€” inherited, see "Error handling" in Mail::Message::Head::FieldGroup πŸ“‹
  • $obj->notImplemented() β€” inherited, see "Error handling" in Mail::Reporter πŸ™ˆ
  • $obj->print( [$fh] ) β€” inherited, see "Error handling" in Mail::Message::Head::FieldGroup πŸ–¨οΈ

🫢 Cleanup 🫢

Extends "Cleanup" in Mail::Message::Head::FieldGroup.

  • $obj->DESTROY() β€” inherited, see "Cleanup" in Mail::Reporter ⚰️

⭐ DIAGNOSTICS ⭐

  • Error: class $package does not implement method $method. Fatal error: the specific $package (or one of its superclasses) does not implement this method where it should. This message means that some other related classes do implement this method however the class at hand does not. Probably you should investigate this and probably inform the author of the package. Cast by notImplemented() πŸ”₯

so yeah, if you see that one, it's not your fault bestie, somebody's class is slacking 😭

πŸ‘€ SEE ALSO πŸ‘€

So like, this whole module is part of Mail-Message version 4.04, and it got built on February 04, 2026. Bestie, if you wanna go touch grass on the internet about it, the website is http://perl.overmeer.net/CPAN/ ✨


πŸ“œ LICENSE πŸ“œ

For all my contributors out there β€” check the file ChangeLog, that's where the receipts live πŸ’…

This software is copyright (c) 2001-2026 by Mark Overmeer. Iconic run, honestly, two decades plus of holding it down πŸ‘‘

It's free software, fr fr: you can redistribute it and/or modify it under the exact same terms as the Perl 5 programming language system itself. No cap, that's the whole deal 🫢


okay and that's a wrap on the whole page, bestie!! this was perl v5.42.0, dated 2026-02-05, and yeah the title got cutely truncated to Mail::M...ntGroup(3) in the footer because headers are dramatic like that πŸ’€ go forth and group your messages, you absolute main character πŸŒΈπŸ¦‹πŸ’–

πŸ“¦ where this page comes from