#!/usr/bin/perl use CGI ':standard'; use strict; use warnings; use CGI::Carp 'fatalsToBrowser'; # use only for testing use Template; my $cgi = new CGI; $cgi->header( -charset => 'utf-8' ); $ENV{"PATH"} = "/usr/sbin:/usr/bin:/sbin:/bin"; my %data; while() { chomp; my @cols = split(/[,\s]+/); my %row; $row{quarantined_id} = pop @cols; for my $key ( qw( month day time category sender ) ) { $row{$key} = shift @cols; } $row{recipients} = \@cols; push @{$data{rows}}, \%row; } close FILE; my $tt = new Template; my $template = q( PM 1215287
[% FOR row=rows %] [% END %]
Time Category Sender Recipients Quarantined-ID
[% row.month %] [% row.day %] [% row.time %] [% row.category %] [% row.sender %] [% FOR recipient=row.recipients %][% recipient %]
[% END %]
[% row.quarantined_id %]
); $tt->process( \$template, \%data ) or die $tt->error; __DATA__ May 3 15:58:17 SPAM sender@domain.com peter.w@recipient.com spam-Lub_LynRmcvj.gz May 3 15:58:24 SPAM sender@domain1.com coev074@recipient1.com spam-gSCAdAuMpiD0.gz May 3 15:59:27 BANNED sender@domain2.com nadia.meli@grecipient2.com banned-BpF8aM7FM48B May 3 16:00:29 SPAM sender@domain.com sascha_ste@recipient.com spam-6fFrrzUjgvug.gz May 3 16:01:48 INFECTED sender@domain3.com philipp_me@recipient.com virus-SZLvi-VO4IIv May 4 16:02:28 SPAM sender@domain.com caro.grill@recipient3.com spam-saYzvikxOfVL.gz May 4 16:02:45 SPAM sender@domain.com pellitter@recipient.com spam-8K649OHNlRQ2.gz May 4 16:03:14 SPAM sender@domain1.com anton.d@recipient.com spam-3rpUGn3IcDnG.gz May 5 10:39:42 SPAM sender@domain1.com amil@recipient.com , dab@recipient.com , jay@recipient.com , sa@recipient.com , wid@recipient.com spam-Nnlc4bqiNeQD.gz May 5 11:00:41 SPAM sender@domain.com amil@recipient.com , duminda@recipient.com , samindak@recipient.com , vajirak@recipient.com spam-gjWpzbXc8o1q.gz May 6 01:07:04 SPAM sender@domain1.com amil@recipient.com , samindak@recipient.com spam-x-vwwUP5yfqJ.gz May 7 12:54:26 SPAM sender@domian.com amil@recipient.com spam-o6LPjfCnz211.gz