File Coverage

lib/Sisimai/Lhost.pm
Criterion Covered Total %
statement 23 23 100.0
branch n/a
condition n/a
subroutine 10 10 100.0
pod 0 5 0.0
total 33 38 86.8


line stmt bran cond sub pod time code
1             package Sisimai::Lhost;
2 89     89   139074 use v5.26;
  89         291  
3 89     89   582 use strict;
  89         199  
  89         3390  
4 89     89   481 use warnings;
  89         191  
  89         4725  
5 89     89   1789 use Sisimai::RFC5322;
  89         227  
  89         4719  
6              
7 89     89   515 use constant INDICATORS => { 'deliverystatus' => (1 << 1), 'message-rfc822' => (1 << 2) };
  89         183  
  89         32153  
8             sub DELIVERYSTATUS {
9             # Data structure for decoded bounce messages
10             # @private
11             # @return [Hash] Data structure for delivery status
12             return {
13 5474     5474 0 80993 'spec' => '', # Protocl specification
14             'date' => '', # The value of Last-Attempt-Date header
15             'rhost' => '', # The value of Remote-MTA header
16             'lhost' => '', # The value of Received-From-MTA header
17             'alias' => '', # The value of alias entry(RHS)
18             'agent' => '', # MTA name
19             'action' => '', # The value of Action header
20             'status' => '', # The value of Status header
21             'reason' => '', # Temporary reason of bounce
22             'command' => '', # SMTP command in the message body
23             'replycode', => '', # SMTP Reply Code
24             'diagnosis' => '', # The value of Diagnostic-Code header
25             'recipient' => '', # The value of Final-Recipient header
26             'feedbacktype' => '', # Feedback Type
27             'toxic' => 0, # EXPERIMENTAL
28             };
29             }
30 1     1 0 263096 sub description { return '' }
31             sub index {
32             # Alphabetical sorted MTA module list
33             # @return [Array] MTA list with order
34 167     167 0 478242 return [qw|
35             Activehunter AmazonSES ApacheJames Biglobe Courier Domino DragonFly EZweb EinsUndEins Exchange2003
36             Exchange2007 Exim FML GMX GoogleGroups GoogleWorkspace Gmail IMailServer KDDI MailFoundry Mimecast
37             MailMarshal MessagingServer Notes OpenSMTPD Postfix Sendmail TrendMicro V5sendmail Verizon
38             X1 X2 X3 X6 Zoho mFILTER qmail
39             |];
40             }
41              
42             sub path {
43             # Returns Sisimai::Lhost::* module path table
44             # @return [Hash] Module path table
45             # @since v4.25.6
46 87     87 0 267 my $class = shift;
47 87         499 my $index = __PACKAGE__->index;
48 87         470 my $table = {
49             'Sisimai::ARF' => 'Sisimai/ARF.pm',
50             'Sisimai::RFC3464' => 'Sisimai/RFC3464.pm',
51             'Sisimai::RFC3834' => 'Sisimai/RFC3834.pm',
52             };
53 87         5002 $table->{ __PACKAGE__.'::'.$_ } = 'Sisimai/Lhost/'.$_.'.pm' for @$index;
54 87         519 return $table;
55             }
56              
57             sub inquire {
58             # Method of a parent class to decode a bounce message of each MTA
59             # @param [Hash] mhead Message headers of a bounce email
60             # @param [String] mbody Message body of a bounce email
61             # @return [Hash] Bounce data list and message/rfc822 part
62             # @return [undef] failed to decode or the arguments are missing
63 1     1 0 3 return undef;
64             }
65              
66             1;
67             __END__