Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Perl e letture mail

  1. #1

    Perl e letture mail

    Ciao a tutti, sto' provando uno script per la lettura di una casella di posta.
    Questo script dovrebbe collegarsi a un server pop, leggere i nuovi messaggi
    e salvare gli allegati in una cartella, solo che non funziona, mi restituisce il seguente errore:

    codice:
    Use of uninitialized value in pattern match (m//) at 
    /usr/lib/perl5/site_perl/5.8.4/Mail/POP3Client.pm line 1012, <GEN0> line 2.
    Broken pipe
    Lo script non l'ho fatto io ma l'ho trovato in internet al seguetne indirizzo:
    http://www.retelinux.it/rete/hylafax_sfmail.html

    e, come gia' detto, dovrebbe scaricare la posta da una casella mail,
    salvare gli allegati in locale e poi eseguire altre operazioni (in questo caso invio di un fax).

    Potete aiutaemi?
    Grazie.
    Linux User #332385

  2. #2
    Ciao,

    quel messaggio significa che alla riga indicata, 1012, del modulo POP3Client.pm è stato usata un variabile non inizializzata, cioè non dichiarata precedentemente, il che in genere si fa con:
    my $nome_var;

    La cosa sarebbe clamorosa poichè quello è un modulo usatissimo ed un errore del genere non è concepibile infatti la riga 1012 riporta:
    codice:
      $line =~ /^\+OK/ or $me->Message($line) and return;
    e come puoi vedere dal seguente codice che gli sta intorno la variabile è inizializzata:
    codice:
    sub Capa {
    
      my $me = shift;
    
      # no state check here, all are allowed
    
      $me->Alive() or return;
    
      my @retarray = ();
      my $ret = '';
    
      $me->_sockprint('CAPA', $me->EOL());
    
      my $line = $me->_sockread();
      $line =~ /^\+OK/ or $me->Message($line) and return;
    
      while(defined($line = $me->_sockread())) {
        $line =~ /^\.\s*$/ and last;
        $ret .= $line;
        chomp $line;
        push(@retarray, $line);
      }
    
      if ($ret) {
        return wantarray ? @retarray : $ret;
      }
    }
    la mia opinione è che il file POP3Client.pm si sia corrotto per cui occorre sostituirlo.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Originariamente inviato da shishii
    Ciao,

    quel messaggio significa che alla riga indicata, 1012, del modulo POP3Client.pm è stato usata un variabile non inizializzata, cioè non dichiarata precedentemente, il che in genere si fa con:
    my $nome_var;

    La cosa sarebbe clamorosa poichè quello è un modulo usatissimo ed un errore del genere non è concepibile infatti la riga 1012 riporta:
    codice:
      $line =~ /^\+OK/ or $me->Message($line) and return;
    e come puoi vedere dal seguente codice che gli sta intorno la variabile è inizializzata:
    codice:
    sub Capa {
    
      my $me = shift;
    
      # no state check here, all are allowed
    
      $me->Alive() or return;
    
      my @retarray = ();
      my $ret = '';
    
      $me->_sockprint('CAPA', $me->EOL());
    
      my $line = $me->_sockread();
      $line =~ /^\+OK/ or $me->Message($line) and return;
    
      while(defined($line = $me->_sockread())) {
        $line =~ /^\.\s*$/ and last;
        $ret .= $line;
        chomp $line;
        push(@retarray, $line);
      }
    
      if ($ret) {
        return wantarray ? @retarray : $ret;
      }
    }
    la mia opinione è che il file POP3Client.pm si sia corrotto per cui occorre sostituirlo.
    Ma se l'ho appena installato? E' possibile che sia gia' corrotto?

    Comunque adesso provero' ad installare una versione piu' vecchia, come faccioa disinstallare quello attualmente installato?
    Linux User #332385

  4. #4
    ma cosa c'entra "si è già corrotto"?

    i file si possono corrompere in qualunque momento, mica sono come le scarpe che si bucano solo con l'uso!

    sostituisci il file in questione con una copia sicura dello stesso file.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Originariamente inviato da shishii
    ma cosa c'entra "si è già corrotto"?

    i file si possono corrompere in qualunque momento, mica sono come le scarpe che si bucano solo con l'uso!

    sostituisci il file in questione con una copia sicura dello stesso file.
    Ho risolto, non era il problema del file corrotto ma il numero di parametri passati errati, ne "mancavano" alcuni :master:
    Linux User #332385

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.