Frage : Probleme using imap-Funktionen

Ich versuche, eine E-Mail-Nachrichtgrammatische definition für unseren Aufstellungsort aufzubauen. Was ich schließlich tun werde, ist, durch die Mitteilungen zu wiederholen, die Zubehöre haben und außer dem Zubehör, wenn die Mitteilung von einem bestimmten email address kommt.
This gerade der Anfangstest jedoch ich laufen in Probleme, sehen Anmerkungen below.

1 ist:
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:
6:
37:
38:
39:
 \ n“;
  $mailuser= " [email protected] ";
  
  Echo „User=$mailuser“. „
\ n“; ; $mailpass= " mypassword "; Echo „Pass=$mailpass“. „
\ n“; // musste dieses verwenden, weil wir SSL auf Aufstellungsort haben und regelmäßiger Hafen 110 nicht arbeitete $mailhost= " {localhost: 995/pop3/ssl/novalidate-cert} „; Echo „Host=$mailhost“. „
\ n“; $mailbox=imap_open ($mailhost, $mailuser, $mailpass) oder sterben („
\ nFAILLED! “ .imap_last_error ()); $check = imap_check ($mailbox); analysierte die //-letzte Mitteilung wird in der Akte msgcounter.dat gespeichert $firstmsg = file_get_contents („msgcounter.dat ") + 1; $lastmsg = $firstmsg+$check->Recent; // sollte == letzter Msgindex + Zählimpuls späteste Mitteilungen sein zuerst widerhallen „: “. $firstmsg. „- Letzt: “. $lastmsg. „
“; $result = imap_fetch_overview ($mailbox, „$firstmsg: $lastmsg“); print_r ($result); //-Rückkehr leert Reihe foreach ($result als $overview) { // trägt nie diese Schleife ein. Echo „# {$overview->msgno} ({$overview->date}) - von: {$overview->from} {$overview->subject} \ n "; } //, welches die folgende Annäherung nicht auch nicht arbeitete, Warnungen, ungefähr zu erhalten gehalten //-schlechte Nachrichtennummer // // einige Mitteilungen in der Reihenfolge SIND gelöscht worden. /* für ($index = $firstmsg-1; $index <= ($lastmsg); $index++) { wenn (strlen (Ordnung (imap_fetchheader ($mailbox, $index))) > 0) { Echo „in der Mitteilungindexschleife: “. $index; } } * imap_close ($mailbox); Echo „abgeschlossen.“. „
\ n“; ; ? >

Antwort : Probleme using imap-Funktionen

O.K., ist hier die Antwort zu meinem Problem…
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:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
\nFAILLED! ".imap_last_error());

  // The IMAP.xml file contains the email address and user_id of the users that we accept 
  // their files via email 
  $xml = simplexml_load_string(file_get_contents('IMAP.xml'));
  $result = $xml->xpath („Einzelteil ");
  während (Liste (, $node) = jedes ($result)) {
    $email   = $node->LI_email;
    $user_id = $node->LI_user_id;
    $SEARCH  = „UNGESEHENES VON \ „$EMAIL \ "";
    $result2 = imap_search ($mailbox, $search);
    wenn ($result2) {
      $index = $result2 [0];
      $structure = imap_fetchstructure ($mailbox, $index);
      
      $attachments = Reihe ();
      wenn (isset ($structure->parts) && Zählimpuls ($structure->parts)) {
        für ($i = 0; $i < count="">Teile); $i++) {
          $attachments [$i] = Reihe (
            „is_attachment“ => falsch,
            „Dateiname“ => '',
            „Name“ => '',
            „Zubehör“ => '');
          
          wenn ($structure->parts [$i] - >ifdparameters) {
            foreach ($structure->parts [$i] - >dparameters als $object) {
              wenn (strtolower ($object->attribute) == „Dateiname ") {
                $attachments [$i] [„is_attachment“] = ausrichten en;
                $attachments [$i] [„Dateiname“] = $object->value;
              }
            }
          }
          
          wenn ($structure->parts [$i] - >ifparameters) {
            foreach ($structure->parts [$i] - >parameters als $object) {
              wenn (strtolower ($object->attribute) == „Name ") {
                $attachments [$i] [„is_attachment“] = ausrichten en;
                $attachments [$i] [„Name“] = $object->value;
              }
            }
          }
          
          wenn ($attachments [$i] [„is_attachment“]) {
            $attachments [$i] [„Zubehör“] = imap_fetchbody ($mailbox, $index, $i+1, FT_PEEK);
            wenn ($structure->parts [$i] - >encoding == 3) {// 3 = BASE64
              $attachments [$i] [„Zubehör“] = base64_decode ($attachments [$i] [„Zubehör“]);
            }
            elseif ($structure->parts [$i] - >encoding == 4) {// 4 = QUOTED-PRINTABLE
              $attachments [$i] [„Zubehör“] = quoted_printable_decode ($attachments [$i] [„Zubehör“]);
            }
          } //, wenn ($attachments [$i] [„is_attachment“])
        } // für ($i = 0; $i < count="">Teile); $i++)
      } //, wenn (isset ($structure->parts) && Zählimpuls ($structure->parts))

      für ($i = 0; $i < count=""> 0) {
          $path_parts = pathinfo ($attachments [$i] [„Dateiname“]);
          wenn (strtolower ($path_parts [„Verlängerung“]) == „Reißverschluss ") {
            // werde ich etwas tun, das mit ziped Akten unterschiedlich ist
          } sonst {
            $filename = „file_uploads/“. $user_id. „_“. $path_parts [„Dateiname“]. „_“ .date („m_d_Y "). „.“. $path_parts [„Verlängerung“];
            $fp = fopen ($filename, „x“);
            fwrite ($fp, $attachments [$i] [„Zubehör“]);
            fclose ($fp);
          } // wenn (strtolower ($path_parts [„Verlängerung“]) == „Reißverschluss ")
        } //, wenn (strlen (Ordnung ($attachments [„Name“])) > 0
      } // für ($i = 0; $i  < count="">
Weitere Lösungen  
 
programming4us programming4us