#!/usr/local/bin/perl =head1 NAME B - summarize headers and MIME structure of email messages =head1 SYNOPSIS B I =head1 DESCRIPTION Print From, To, Date, and Subject header fields along with a summary of the MIME structure of the email message in each file. =cut use strict; use warnings; use v5.14; use Email::MIME; my @fields = ('From', 'To', 'Date', 'Subject'); sub say_header { my $message = shift; my $field = shift; for my $value ($message->header($field)) { say "$field: $value"; } } MAIN: { my $errors = 0; for my $fn (@ARGV) { say $fn; my $fp; if (!open($fp, $fn)) { $errors++; warn("open($fn): $!"); next; } my $text = join('', (<$fp>)); my $parsed = Email::MIME->new($text); for my $field (@fields) { say_header($parsed, $field); } say $parsed->debug_structure; } exit($errors); }