1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
# This code is part of Perl distribution Mail-Box version 4.01.
# The POD got stripped from this file by OODoc version 3.05.
# For contributors see file ChangeLog.
# This software is copyright (c) 2001-2025 by Mark Overmeer.
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
# SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later
package Mail::Message::Head::Subset;{
our $VERSION = '4.01';
}
use parent 'Mail::Message::Head';
use strict;
use warnings;
use Log::Report 'mail-box', import => [ qw// ];
use Object::Realize::Later
becomes => 'Mail::Message::Head::Complete',
realize => 'load',
believe_caller => 1;
use Date::Parse qw/str2time/;
#--------------------
sub count($)
{ my ($self, $name) = @_;
my @values = $self->get($name)
or return $self->load->count($name);
scalar @values;
}
sub get($;$)
{ my $self = shift;
if(wantarray)
{ my @values = $self->SUPER::get(@_);
return @values if @values;
}
else
{ my $value = $self->SUPER::get(@_);
return $value if defined $value;
}
$self->load->get(@_);
}
#--------------------
sub guessBodySize()
{ my $self = shift;
my $cl = $self->SUPER::get('Content-Length');
return $1 if defined $cl && $cl =~ m/(\d+)/;
my $lines = $self->SUPER::get('Lines'); # 40 chars per lines
defined $lines && $lines =~ m/(\d+)/ ? $1 * 40 : undef
}
# Be careful not to trigger loading: this is not the thoroughness
# we want from this method.
sub guessTimestamp()
{ my $self = shift;
return $self->{MMHS_timestamp} if $self->{MMHS_timestamp};
my $stamp;
if(my $date = $self->SUPER::get('date'))
{ $stamp = str2time($date, 'GMT');
}
unless($stamp)
{ foreach my $time ($self->SUPER::get('received'))
{ $stamp = str2time($time, 'GMT');
last if $stamp;
}
}
$self->{MMHS_timestamp} = $stamp;
}
#--------------------
sub load() { $_[0] = $_[0]->message->loadHead }
1;
|