From d35dfee3bc771859c87e3118afd95189f43ae9e2 Mon Sep 17 00:00:00 2001 From: epg Date: Sun, 13 Apr 2014 18:21:12 -0700 Subject: [PATCH] Add trivial program to summarize header and MIME info. --- summarize-mime | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 summarize-mime diff --git a/summarize-mime b/summarize-mime new file mode 100755 index 0000000..aface15 --- /dev/null +++ b/summarize-mime @@ -0,0 +1,52 @@ +#!/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); +} -- 2.56.0