File Coverage

blib/lib/MailX/Qmail/Queue/Message.pm
Criterion Covered Total %
statement 14 30 46.6
branch 0 10 0.0
condition 0 3 0.0
subroutine 5 10 50.0
pod 4 4 100.0
total 23 57 40.3


line stmt bran cond sub pod time code
1 1     1   98401 use 5.014;
  1         4  
2 1     1   6 use warnings;
  1         2  
  1         51  
3              
4             package MailX::Qmail::Queue::Message;
5              
6             our $VERSION = '0.11';
7              
8 1     1   6 use base 'Mail::Qmail::Queue::Message';
  1         2  
  1         542  
9              
10 1     1   22707 use Mail::Address;
  1         2460  
  1         33  
11 1     1   488 use Mail::Header;
  1         4430  
  1         290  
12              
13             # Use inside-out attributes to avoid interference with base class:
14             my %header;
15              
16             sub header {
17 0     0 1   my $self = shift;
18 0 0         return $header{$self} if exists $header{$self};
19 0 0         open my $fh, '<', $self->body_ref or die 'Cannot read message';
20 0           $header{$self} = Mail::Header->new($fh);
21             }
22              
23             sub header_from {
24 0 0   0 1   my $from = shift->header->get('From') or return;
25 0           ($from) = Mail::Address->parse($from);
26 0           $from;
27             }
28              
29             sub helo {
30 0     0 1   my $header = shift->header;
31 0 0         my $received = $header->get('Received') or return;
32 0 0 0       $received =~ /^from .*? \(HELO (.*?)\) /
33             or $received =~ /^from (\S+) \(/
34             or return;
35 0           $1;
36             }
37              
38             sub add_header {
39 0     0 1   my $self = shift;
40 0           ${$self->body_ref} = join "\n", @_, $self->body;
  0            
41             }
42              
43             sub DESTROY {
44 0     0     my $self = shift;
45 0           delete $header{$self};
46             }
47              
48             1;
49              
50             __END__