| Email-Thread documentation | Contained in the Email-Thread distribution. |
Email::Thread - Use JWZ's mail threading algorithm with Email::Simple objects
use Email::Thread;
my $threader = Email::Thread->new(@messages);
$threader->thread;
dump_em($_,0) for $threader->rootset;
sub dump_em {
my ($self, $level) = @_;
debug (' \\-> ' x $level);
if ($self->message) {
print $self->message->header("Subject") , "\n";
} else {
print "[ Message $self not available ]\n";
}
dump_em($self->child, $level+1) if $self->child;
dump_em($self->next, $level) if $self->next;
}
Strictly speaking, this doesn't really need Email::Simple objects. It just needs an object that responds to the same API. At the time of writing the list of classes with the Email::Simple API comprises just Email::Simple.
Due to how it's implemented, its API is an exact clone of
Mail::Thread. Please see that module's documentation for API
details. Just mentally substitute Email::Thread everywhere you see
Mail::Thread and Email::Thread::Container where you see
Mail::Thread::Container.
This module is maintained by the Perl Email Project.
Support for this module is provided via the CPAN RT system at http://rt.cpan.org/
Copyright © Iain Truskett, 2003. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Simon Cozens (SIMON) for encouraging me to release it, and for Email::Simple and Mail::Thread.
Richard Clamp (RCLAMP) for the header patch.
Iain Truskett <spoon@cpan.org>
perl, Mail::Thread, Email::Simple
| Email-Thread documentation | Contained in the Email-Thread distribution. |
package Email::Thread;
use Mail::Thread; use strict; use vars qw( @ISA $VERSION ); @ISA = qw( Mail::Thread ); $VERSION = '0.711'; sub _get_hdr { my ($class, $msg, $hdr) = @_; $msg->header($hdr); } sub _container_class { "Email::Thread::Container" } package Email::Thread::Container; use vars qw( @ISA $VERSION ); @ISA = qw( Mail::Thread::Container ); $VERSION = $Email::Thread::VERSION; sub header { eval { $_[0]->message->header($_[1]) } } 1; __END__