次のコマンドを使用して、PAR::Packer pp を使用して perl スクリプトを実行可能ファイルに変換しようとしています (Windows 7 64 ビット):
"pp -o teste.exe gmail_att.pl"
しかし、私はメッセージを受け取っています:
"# Use of runtime loader module Module::Runtime detected. Results of static scanning may be incomplete."
このメッセージをインターネットで検索しましたが、ヒットしませんでした
スクリプト:
printf("Iniciando o envio de e-mails... \n");
use strict;
use Try::Tiny;
use IO::All;
use Email::MIME;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP::TLS;
use Spreadsheet::XLSX;
use File::Basename;
my $diretorioScript = dirname(__FILE__);
my $excel = Spreadsheet::XLSX->new( "$diretorioScript\\jofalista.xlsx", );
my $diretorio = "$diretorioScript\\arquivos\\";
my $email = "";
my $nome = "";
opendir(diretorio, "$diretorio");
my @lista = readdir(diretorio);
closedir(diretorio);
foreach my $arquivo(@lista)
{
$email = "";
$nome = "";
if ($arquivo ne "." && $arquivo ne ".."){
# print $arquivo;
# rotina para buscar dentro do arquivo xls qual o email
# de destino do arquivo
foreach my $sheet ( @{ $excel->{Worksheet} } ) {
$sheet->{MaxRow} ||= $sheet->{MinRow};
foreach my $row ( $sheet->{MinRow} .. $sheet->{MaxRow} ) {
$sheet->{MaxCol} ||= $sheet->{MinCol};
foreach my $col ( $sheet->{MinCol} .. $sheet->{MaxCol} ) {
my $cell = $sheet->{Cells}[$row][$col];
if ($cell) {
#printf( "( %s == %s ) \n", "$cell->{Val}.pdf", $arquivo );
if("$cell->{Val}.pdf" eq $arquivo){
$nome = $cell->{Val};
my $emailCell = $sheet->{Cells}[$row][$col+1];
$email = $emailCell->{Val};
#printf("%s", $email);
}
#printf( "( %s , %s ) => %s\n", $row, $col, $cell->{Val} );
}
}
}
}
if($email ne ""){
printf("Processando o arquivo $arquivo para o email: $email \n");
# Create and array of email parts.
# Here i have 2 attachments ( an image and a pdf file) and a text message.
my @parts = (
Email::MIME->create(
attributes => {
filename => "$arquivo",
content_type => "application/pdf",
encoding => "base64",
disposition => "attachment",
name => "$arquivo",
},
body => io( "$diretorio$arquivo" )->all,
),
Email::MIME->create(
attributes => {
content_type => "text/html",
},
body => "Ola $nome este é um e-mail teste da JOFA",
)
);
# Create the email message object.
my $email_object = Email::MIME->create(
header => [
From => 'marchiore.matheus@gmail.com',
To => $email,
Subject => "Certificado $nome",
content_type =>'multipart/mixed'
],
parts => [ @parts ],
);
# Create the transport. Using gmail for this example
my $transport = Email::Sender::Transport::SMTP::TLS->new(
host => 'smtp.gmail.com',
port => 587,
username => 'marchiore.matheus@gmail.com',
password => ''
);
# send the mail
try {
sendmail( $email_object, {transport => $transport} );
} catch {
warn "Email sending failed: $_";
};
}
}
}
printf("Pressione ENTER para Finalizar... \n");
chomp( my $input = <STDIN> );