Thread Problem mit NET::Imap::Simple: oder ist mein Code falsch (3 answers)
Opened by maco at 2005-03-02 18:14

maco
 2005-03-02 18:14
#52244 #52244
User since
2005-02-22
27 Artikel
BenutzerIn
[default_avatar]
Hi leute, ich setze seit gestern abend an einem Problem!
Vielleicht hat mal einer einen Idee, woran es liegen kann
Code: (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@email_konto1 = ( 'aaaa', 'aaaa' );
   @email_konto2 = ( 'bbb', 'bbbb' );
   @matrix = ( \@email_konto1, \@email_konto2 );
   $matrix = @matrix;


while (@data=$statement->fetchrow_array){
       $liste .= "<tr>";
       foreach(@data){
           $liste .= "<td align='left'>" . $_ . "</td>";
 }#foreach

#########Imap-Teil Start######################
           my $server = Net::IMAP::Simple->new( 'aaa.aaa' );
     for ($i=0; $i <= $matrix-1; $i++){
$server->login( @{$matrix[$i]}[0], @     {$matrix[$i]}[1]);
if (!$server){
        $liste .= "<td>Server-Verbindung
fehlgeschlagen</td>";
$server->quit();
}
else{
$liste .= "<td>Verbindung mit @{$matrix[$i]}[0] geglückt!</td>";
}
my $nmessages = $server->select('INBOX');
if (!$nmessages){
$liste .= "<td>Verbindung zum INBOX Fehlgeschlagen</td>";
}
      else{
$liste .= "<td>Verbindung zum INBOX steht</td>";
}

$liste .= "<td>Es sind $nmessages in dem  Postfach</td>";

foreach my $msg (1 .. $nmessages ){
###damit der Code nicht solang wird, also in dieser Schleife ##wird Mime::Parser benutzt um die eMail zu parsen. ##anschliessend Speichern in Tabelle
}#foreach

        }#for
            $server->quit();
if ($server){
$liste .= "<td>Verbindung beendet</td>";} else{$liste .= "<td>Könnte Verbindung nicht beenden!</td>";}
######IMAP-Teil##########################

$liste .="</tr>";
      }#while


also das ist in etwa der Code, um den es geht!
Problem ist:
nach der ersten foreach-Schleife, die den letzten Datensatz aus dem Array zurück gibt, wird mit der darauffolgenden For-Schleife 2 Kontos auf dem Server durchgegangen.
Wie ihr sieht, sind die Logdaten für jedes Konto in einem Matrix.
Feld 1  ist Konto1, Feld 2 Konto2.

Es läuft alles eigentlich richtig(oder auch nicht). Ausser:
wenn das zweite Konto in der For-Schleife durchgegangen wird, zeigt er die emails von dem bereits durchlaufenen 1.Konto an. Er zeigt zwar in dem eingebauten Meldung in dem Konto richtigerweise, dass er mit dem 2.Konto verbunden ist aber die eMails sind immer die vom ersten Konto.

Warum!!!! Das verstehe ich net!! Mag sein, dass ich im Moment einen Blackout habe und übersehe etwas gravierendes!
Grüß

View full thread Problem mit NET::Imap::Simple: oder ist mein Code falsch