]> diplodocus.org Git - minc/blob - summarize-mime
Add trivial program to summarize header and MIME info.
[minc] / summarize-mime
1 #!/usr/local/bin/perl
2
3 =head1 NAME
4
5 B<summarize-mime> - summarize headers and MIME structure of email messages
6
7 =head1 SYNOPSIS
8
9 B<summarize-mime> I<message-files>
10
11 =head1 DESCRIPTION
12
13 Print From, To, Date, and Subject header fields along with a summary of the MIME
14 structure of the email message in each file.
15
16 =cut
17
18 use strict;
19 use warnings;
20 use v5.14;
21
22 use Email::MIME;
23
24 my @fields = ('From', 'To', 'Date', 'Subject');
25
26 sub say_header {
27 my $message = shift;
28 my $field = shift;
29 for my $value ($message->header($field)) {
30 say "$field: $value";
31 }
32 }
33
34 MAIN: {
35 my $errors = 0;
36 for my $fn (@ARGV) {
37 say $fn;
38 my $fp;
39 if (!open($fp, $fn)) {
40 $errors++;
41 warn("open($fn): $!");
42 next;
43 }
44 my $text = join('', (<$fp>));
45 my $parsed = Email::MIME->new($text);
46 for my $field (@fields) {
47 say_header($parsed, $field);
48 }
49 say $parsed->debug_structure;
50 }
51 exit($errors);
52 }