1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #!/usr/bin/perl -w -- -*-Perl-*-
##########################
# Initialization section #
##########################
require 5.00;
use strict;
use MIME::Lite;
###########################
# Deal with the arguments #
###########################
my $MAIL_INFO_STR = "";
my $ATTACH_INFO_STR = "";
for (;@ARGV;) {
# Add in the regex [] ALL single-character command-line options
my ($opt,$arg) = ($ARGV[0] =~ /^-([ga])(.*)$/);
last if ! defined $opt;
# Add in regex [] ONLY single-character options that
# REQUIRE an argument, except for the 'd' debug switch.
if ($opt =~ /[ag]/ && $arg eq "") {
if (@ARGV < 2) {
print "Argument required for option \"$opt\".\n";
exit 1;
}
shift;
$arg=$ARGV[0];
}
$MAIL_INFO_STR = $arg if $opt eq 'g';
$ATTACH_INFO_STR = $arg if $opt eq 'a';
shift;
}
my @MAIL_INFO = split(/\|/, $MAIL_INFO_STR);
my @ATTACH_INFO = split(/\|/, $ATTACH_INFO_STR);
my ($FROM, $TO, $SUBJECT, $TYPE) = @MAIL_INFO;
die "Problem with -a argument must contain multiple of 5" if @ATTACH_INFO % 5 != 0;
my $msg = MIME::Lite->new( From => $FROM,
To => $TO,
Subject => $SUBJECT,
Type => $TYPE)
or die "Error creating multipart container: $!\n";
for (my $i = 0 ; $i <= @ATTACH_INFO ; $i = $i+5) {
my @sub_tab = @ATTACH_INFO[$i..$i+4];
my ($a_type, $a_path, $a_filename, $a_dispo, $a_encod) = @sub_tab;
my $a = 0;
$msg->attach( Type => $a_type,
Path => $a_path,
Filename => $a_filename,
Disposition => $a_dispo,
Encoding => $a_encod)
or die "Error adding result file : $!\n";
}
$msg->send();
exit 0; |
Partager