--- /dev/null
+#!/usr/local/bin/perl
+
+=head1 NAME
+
+B<summarize-mime> - summarize headers and MIME structure of email messages
+
+=head1 SYNOPSIS
+
+B<summarize-mime> I<message-files>
+
+=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);
+}