Schrift
[thread]12818[/thread]

Aufruf von getmail



<< >> 2 Einträge, 1 Seite
dawir
 2008-11-25 15:33
#116593 #116593
User since
2008-09-19
4 Artikel
BenutzerIn
[default_avatar]
habe einen mail server von dem ich mails beziehen soll

rufe diese mails mit getmail ab
das funktioniert auch ohne weiteres (aufruf mit backsticks)


Skript:
Code (perl): (dl )
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
print ("\n-----------------------------\n\n");
my $cmd ="getmail --getmaildir='~/Maildir/'";
my @arr;
eval{
        @arr = `$cmd`;
};
 
if($@){
     print ("error");
}

my $error = "";

print Dumper \@arr;
foreach(@arr){
   if($_ =~ /.*error(.*)/){
     $error = $1;
   }
}

print ("\n\n\n------------------------\nERROR: $error \n\n\n");

print ("\$\@: $@\n\n\n"); 
print ("\$!: $!\n\n\n");
print ("\$?: $?\n\n\n");


Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
------------------------

[b]getmailrc: error resolving name ((-2, 'Name or service not known'))[/b]
$VAR1 = [
'getmail version 4.7.8',
'Copyright (C) 1998-2007 Charles Cazabon. Licensed under the GNU GPL version 2.',
'SimpleIMAPSSLRetriever:fax-in-dev@imap0.sipgate.net:993:',
' 0 messages (0 bytes) retrieved, 0 skipped'
];
-------------------------
ERROR:


$@:


$!:


$?: 0


nur wollte ich zu Sicherheit ein paar Fehlerfälle abpassen
nun habe ich in der getmailrc einfach mal 2 Buchstaben des Servernamens weggelassen, also eine völlig irrsinnige Adresse angegeben.
doch das Problem ist, in der Konsole bekomme ich eine Fehlermeldung, im Rückgabe String keine....
auf dem Server auf dem das Skript später laufen soll komme ich an die syslog NICHT ran.

was kann ich da tun am besten??

hoffe Ihr habt evtl. was parat, was ich da machen könnte.

Gruß und Dank im Voraus

Dawit
was haben Windows und ein Uboot gemeinsam?
- wenn man ein Fenster öffnet fangen die Probleme an
moritz
 2008-11-25 15:46
#116594 #116594
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Vermutlich wird die Fehlermeldung auf STDERR ausgegeben, die Backticks fangen nur STDOUT auf.

Ausserdem waere es mir neu, dass Backticks jemals eine Exception auswerfen, das eval { ... } darum herum kannst du dir also sparen.

Vielleicht brauchst du eher sowas wie IPC::Open3 oder IPC::Run?
<< >> 2 Einträge, 1 Seite



View all threads created 2008-11-25 15:33.