/usr/share/perl5/Mail/Message/Convert/MailInternet.pm is in libmail-message-perl 3.006-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | # Copyrights 2001-2018 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
# This code is part of distribution Mail-Message. Meta-POD processed with
# OODoc into POD and HTML manual-pages. See README.md
# Copyright Mark Overmeer. Licensed under the same terms as Perl itself.
package Mail::Message::Convert::MailInternet;
use vars '$VERSION';
$VERSION = '3.006';
use base 'Mail::Message::Convert';
use strict;
use warnings;
use Mail::Internet;
use Mail::Header;
use Mail::Message;
use Mail::Message::Head::Complete;
use Mail::Message::Body::Lines;
use Carp;
sub export($@)
{ my ($thing, $message) = (shift, shift);
croak "Export message must be a Mail::Message, but is a ".ref($message)."."
unless $message->isa('Mail::Message');
my $mi_head = Mail::Header->new;
my $head = $message->head;
foreach my $field ($head->orderedFields)
{ $mi_head->add($field->Name, scalar $field->foldedBody);
}
Mail::Internet->new
( Header => $mi_head
, Body => [ $message->body->lines ]
, @_
);
}
#------------------------------------------
my @pref_order = qw/From To Cc Subject Date In-Reply-To References
Content-Type/;
sub from($@)
{ my ($thing, $mi) = (shift, shift);
croak "Converting from Mail::Internet but got a ".ref($mi).'.'
unless $mi->isa('Mail::Internet');
my $head = Mail::Message::Head::Complete->new;
my $body = Mail::Message::Body::Lines->new(data => [ @{$mi->body} ]);
my $mi_head = $mi->head;
# The tags of Mail::Header are unordered, but we prefer some ordering.
my %tags = map {lc $_ => ucfirst $_} $mi_head->tags;
my @tags;
foreach (@pref_order)
{ push @tags, $_ if delete $tags{lc $_};
}
push @tags, sort values %tags;
foreach my $name (@tags)
{ $head->add($name, $_)
foreach $mi_head->get($name);
}
Mail::Message->new(head => $head, body => $body, @_);
}
#------------------------------------------
1;
|