*** empty log message ***
SVN revision: 1094
This commit is contained in:
-133
@@ -1,133 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
=head1 NAME
|
||||
|
||||
doelog - save a mime message to elog
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
doelog <mime-msg-file> <mime-msg-file> ...
|
||||
|
||||
someprocess | doelog -
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Takes one or more files from the command line that contain MIME
|
||||
messages, and explodes their contents out into /tmp. The parts
|
||||
are sent to elog as attachments.
|
||||
|
||||
Modified mimeexplode of the MIME::Tools in perl
|
||||
|
||||
|
||||
This was written as an example of the MIME:: modules in the
|
||||
MIME-parser package I wrote. It may prove useful as a quick-and-dirty
|
||||
way of splitting a MIME message if you need to decode something, and
|
||||
you don't have a MIME mail reader on hand.
|
||||
|
||||
=head1 COMMAND LINE OPTIONS
|
||||
|
||||
None yet.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
sak@essc.psu.edu
|
||||
|
||||
=cut
|
||||
|
||||
BEGIN { unshift @INC, ".." } # to test MIME:: stuff before installing it!
|
||||
|
||||
require 5.001;
|
||||
|
||||
use strict;
|
||||
use vars qw($Msgno $cmd);
|
||||
|
||||
use MIME::Parser;
|
||||
use Getopt::Std;
|
||||
|
||||
## these should be options too?
|
||||
## base elog cmd
|
||||
$cmd = "~/elog -h localhost -p 8080 ";
|
||||
|
||||
#------------------------------------------------------------
|
||||
# dump_entity - dump an entity's file info
|
||||
#------------------------------------------------------------
|
||||
sub dump_entity {
|
||||
my $ent = shift;
|
||||
my @parts = $ent->parts;
|
||||
my $file;
|
||||
|
||||
die "too many attachments\n" if ($#parts>10);
|
||||
|
||||
if (@parts) { # multipart...
|
||||
map { dump_entity($_) } @parts;
|
||||
}
|
||||
else { # single part...append to elog cmd
|
||||
$file = $ent->bodyhandle->path;
|
||||
$cmd .= "-f \"$file\" ";
|
||||
## print $cmd, "\n";
|
||||
## print " Part: ", $ent->bodyhandle->path,
|
||||
## " (", scalar($ent->head->mime_type), ")\n";
|
||||
}
|
||||
}
|
||||
|
||||
#------------------------------------------------------------
|
||||
# main
|
||||
#------------------------------------------------------------
|
||||
sub main {
|
||||
my $file;
|
||||
my $entity;
|
||||
my $subject;
|
||||
my $logbook;
|
||||
our($opt_l);
|
||||
|
||||
# Sanity:
|
||||
## (-w ".") or die "cwd not writable, you naughty boy...";
|
||||
|
||||
## check if user wants a particular logbook
|
||||
## fix to add host and port?
|
||||
getopts('l:');
|
||||
if($opt_l) { $logbook=$opt_l;} else {$logbook="emails";}
|
||||
$cmd .= "-l $logbook ";
|
||||
|
||||
# Go through messages:
|
||||
@ARGV or unshift @ARGV, "-";
|
||||
while (defined($file = shift @ARGV)) {
|
||||
|
||||
|
||||
# Create a new parser object:
|
||||
my $parser = new MIME::Parser;
|
||||
|
||||
# Optional: set up parameters that will affect how it extracts
|
||||
# documents from the input stream:
|
||||
$parser->output_under("/tmp");
|
||||
|
||||
# Parse an input stream:
|
||||
open FILE, $file or die "couldn't open $file";
|
||||
$entity = $parser->read(\*FILE) or
|
||||
print STDERR "Couldn't parse MIME in $file; continuing...\n";
|
||||
close FILE;
|
||||
|
||||
## get the subject, assumes all logbooks have a subject
|
||||
## attribute - not necessarily true. Mine do...
|
||||
chomp($subject = $entity->head->get('Subject', 0));
|
||||
$cmd .= "-a subject=\"$subject\" ";
|
||||
print $cmd, "\n";
|
||||
|
||||
# Congratulations: you now have a (possibly multipart) MIME entity!
|
||||
dump_entity($entity) if $entity;
|
||||
### $entity->dump_skeleton if $entity;
|
||||
### print $cmd, "\n";
|
||||
exec $cmd;
|
||||
}
|
||||
1;
|
||||
}
|
||||
|
||||
exit (&main ? 0 : -1);
|
||||
#------------------------------------------------------------
|
||||
1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user