[Cascavel-pm] Re: Erro num script
Dirceu Junior
dirceu.jr em gmail.com
Sexta Outubro 22 09:05:09 CDT 2004
Como eu disse aqui estão os scripts...
On Fri, 22 Oct 2004 10:46:32 -0300, Dirceu Junior <dirceu.jr em gmail.com> wrote:
> estou usando o modulo Mail::Sender
> e começou a aparecer este erro ...
> Can't call method "MailFile" without a package or object reference at
> ./send_mail.pl line 88
>
> vou pegar o script e vou postar aki ...
>
> --
> Dirceu Afonso Siqueira Junior
> ICQ: 51144391
> MSN: dicro_r em hotmail.com
> dicroh.multiply.com
>
--
Dirceu Afonso Siqueira Junior
ICQ: 51144391
MSN: dicro_r em hotmail.com
dicroh.multiply.com
-------------- Próxima Parte ----------
#!/usr/bin/perl
###############################
# SMART TECH CONSULTING #
# SISTEMA DE LEITURA DE E-MAIL#
# By: Freddy Wanis em 05/2002 #
###############################
use Mail::Sender;
use Mysql;
require 'config.inc.pl'; # Arquivo de configuracao | Defaults
# LE A DATA ATUAL
$data= `date +%D__%r`;
print "\n#######################################\n";
print " Data : ".$data;
print "\n#######################################\n";
# DEFINE O TEMPO DE ESPERA ENTRE UM ENVIO E OUTRO
#$secs = 30;
# DEFINE O DIRETORIO A SER LIDO
$dir = $dir_out;
############## CONTROLE DOS ARQUIVOS - VAMOS IMPRIMIR TODOS OS ARQUIVOS DO DIRETORIO #################
opendir(INITHEDIR,$dir) or die "Erro ao abrir o diretorio!\n";
@allfiles = readdir INITHEDIR;
closedir INITHEDIR;
$a = 0;
foreach(@allfiles) {
if ((substr($_,0,1) eq "x") || (substr($_,0,1) eq "X")) {
if ($a == 0) {
print "\nArquivos do diterorio antes de rodarmos o script:\n";
}
print $_;
print "\n";
$a++;
}
}
if ($a > 0) {
print "Terminamos aqui de exibir os arquivos do diretorio\n\n";
}
######################################################################################################
foreach(@allfiles) {
if ((substr($_,0,1) eq "x") || (substr($_,0,1) eq "X")) {
$file = $_;
$codigo = substr($file,1,6); # Separa o codigo do nome do arquivo
# CONECTA AO MYSQL E BUSCA O USUARIO PELO CODIGO QUE BUSCAMOS NO NOME DO ARQUIVO
$dbh = Mysql->Connect($host,$database,$user,$password);
$sth = $dbh->Query("SELECT * FROM usuarios where codigo = '$codigo'") or die $Mysql::db_errstr;
print "\nEncontrei ".$sth->numrows." usuarios com o codigo $codigo para enviar email\n";
$contadorUsuarios=0;
while(@record = $sth->FetchRow) {
$contadorUsuarios++;
#IMPRIMIMOS INFORMACOES IMPORTANTES DO ENVIO DOS E-MAILS
$instdata = `date +%D__%r`;
print "\nEnviando para $contadorUsuarios.o usuario: (".$instdata.")\n";
print "Arquivo: ".$file."\n";
print "Codigo : ".$record[0]."\n";
print "Smtp : ".$smtp."\n";
print "E-Mail : ".$record[1]."\n";
# SETA MENSAGEM QUE SERA ENVIADA JUNTO DO E-MAIL PARA O USUARIO
$msg = " ";
$data = `date +%D`;
$sub = "Transmissao do dia : ".substr($data,0,8);
# ENVIA E-MAIL COM ARQUIVO EM ANEXO PARA O USUARIO SEGUNDO BUSCA DO DB
$file_send = $dir."".$file;
$del = "true";
$sender = new Mail::Sender {smtp => $smtp,
from => $from_mail};
$sender->MailFile({to => $record[1],
subject => $sub,
msg => $msg,
file => $file_send}) or $del = "false";
if ($del eq "true") {
# O ARQUIVO FOI ENVIADO, ENTAO DELETAMOS ELE.
$del = `rm -rf $file_send`;
print "\n";
} else {
# O SERVIDOR ENCONTROU UM ERRO EM ALGUM MOMENTO DO ENVIO
# SENDO ASSIM, ESSE ARQUIVO SERA MOVIDO PARA A PASTA ./SAVED_OLD
print "Erro : $Mail::Sender::Error\n\n";
$mov = `mv $file_send ./saved_old && touch ./saved_old/$file`;
}
}
}
}
############## CONTROLE DOS ARQUIVOS - VAMOS IMPRIMIR TODOS OS ARQUIVOS DO DIRETORIO #################
$a = 0;
foreach(@allfiles) {
if ((substr($_,0,1) eq "x") || (substr($_,0,1) eq "X")) {
if ($a == 0) {
print "\nArquivos do diterorio DEPOIS de rodarmos o script:\n";
}
print $_;
print "\n";
$a++;
}
}
if ($a > 0) {
print "Terminamos aqui de exibir os arquivos do diretorio\n\n";
}
######################################################################################################
-------------- Próxima Parte ----------
###############################
### ARQUIVO DE CONFIGURACAO ###
### SMART TECH CONSULTING ###
###############################
### MAIL SERVER
$pop3server = "149.180.69.28";
$smtp = "smtp-us.bp.com";
$conta = "tpv";
$senha = "mv1pnmdq2v";
### E-MAIL
$from_mail = "tpv\@bp.com";
$rel_from = "tpv\@bp.com";
$rel_subj = "Relatorio Analitico Castrol";
$rel_msg = "Esta e uma mensagem automatica, favor nao responder.";
### BANCO DE DADOS MYSQL
$host = "localhost";
$database = "ezmail";
$password = "mv1pnmdq2v";
$user = "ezmail";
### CAMINHO DOS DIRETORIOS
$dir = "/opt/ezmail/";
$out_dir = "/opt/ezmail/in/";
$dir_out = "/opt/ezmail/out/";
$rel_dir = "/opt/ezmail/relatorio/";
### INTEGRIDADE DO ARQUIVO
$pri = "8/_OJ-Ä6?P _cc)*NO+7d B_"; # DEVE ESTAR NA PRIMEIRA LINHA DO ARQUIVO DE ENTRADA
$ult = "FIMDOARQUIVO"; # DEVE ESTAR NA ULTIMA LINHA DO ARQUIVO DE ENTRADA
Mais detalhes sobre a lista de discussão Cascavel-pm