[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