E-Mail Anhang

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • E-Mail Anhang

    Hallo
    ich habe da eine Frage und zwar der folgende Code fragt doch das E-Mail Konto ab, ob die Mails einen Anhang haben?

    PHP-Code:
    <?php 

    $msgnr 
    "1"
    $folder ="INBOX"
    $user "user"
    $passwd ="pw"

    $mbox imap_open ("{localhost/pop3:110}"$user$passwd); 

    $info imap_fetchstructure($mbox$mno);

    // find out how may parts the object has
    $numparts count($info->parts);

    $i=0;
    // find if multipart message
    if ($numparts >1)
    {
       echo 
    "<b>More than one part</b><br><br>";

       foreach (
    $info->parts as $part)
       {
         if (
    $part->disposition == "INLINE")
             
    printf("Inline message has %s lines<BR>"$part->lines);
         elseif (
    $part->disposition == "attachment")
         {
           
    $i++;
           echo 
    $i." Attachment/s found!<br>";
           echo 
    "Filename: ".$part->dparameters[0]->value."<br><br>";
         }
       }
    }
    else
       echo 
    "Only one part";

    imap_close($mbox);
    ?>
    in meinem Postfach habe ich eine Mail liegen und diese hat einen Anhang aber der Code gibt mir aus You don't have attachment(s).
    Entweder habe ich jetzt den Code nicht verstanden oder da ist ein Fehler.


    Edit: andere PHP code
    Zuletzt geändert von themonk; 18.03.2005, 15:14.

  • #2
    checkAttachments ist keine PHP-Funktion, woher bitte also soll irgendjemand wissen, was diese Funktion macht?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Original geschrieben von mrhappiness
      checkAttachments ist keine PHP-Funktion, woher bitte also soll irgendjemand wissen, was diese Funktion macht?
      Ich hatte diesen Code von php.net aber das war nicht der einzigste ich habe insgesamt 3 verschieden Code ausprobiert nur es geschieht nichts.
      Habe jetzt einen anderen oben eingefügt

      Kommentar


      • #4
        Und die Ausgabe erraten wir?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          Und die Ausgabe erraten wir?
          wäre nicht schlecht
          Die Ausgabe ist
          "Only one part"

          Kommentar


          • #6
            Dann ist PHP da wohl der Meinung, dass es nur einen Teil gibt...
            PHP-Code:
            $info imap_fetchstructure($mbox$mno);
            echo 
            '<pre>';
            print_r($info);
            echo 
            '</pre>'
            Ausgabe?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              es wir nichts ausgegeben

              Kommentar


              • #8
                Hallo,

                @themonk

                ich hab mir auf einen ähnlichen Weg einen Filter geschrieben der z.B. .pif-Dateien usw. automatisch und ungefragt aus meinem Postfach löscht.

                Allerdings erkennt dieses Skript auch nicht alle eMails mit Anhängen und zwar solche, die in US-ASCII codiert sind. Bei solchen Mails behauptet er auch fest und stur dass da keine Anhänge da sind.

                'Normal'-codierte mails (was auch immer das jetzt für eine Codierung ist??) werden erkannt.

                Also vielleicht deinen Code mal mit mehreren Mails testen indem du dir z.B. von verschiedenen Leuten Mails mit Anhängen schicken lässt.

                Vielleicht hilft die das auf die Sprünge, bei mir ists jedenfalls so

                Gruss
                Quetschi
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  von 4 verschieden Anbietern habe ich ja schon Mails bekommen nützt allerdings nichts.

                  Und was bringt mir das , wenn ich nur bestimmte Mail empfangen kann, ich möchte ja alles Empfangen können.
                  Kann das ganze vielleicht an den PHP-Einstellungen des Servers liegen?

                  Kommentar


                  • #10
                    $info = imap_fetchstructure($mbox, $mno);
                    wo kommt $mno her?

                    Was sagt imap_num_msg?

                    Und vor allem: Was sagt imap_errors?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Sollte auch nur ein Denkansatz gewesen sein den du mal verfolgen sollst ohne Gewähr darauf dass es wirklich dran liegt...

                      ich hab halt bei mir die Erfahrung gemacht dass

                      imap_fetchstructure()

                      die US-codierten mails ned zerpflücken kann. Warum das so ist und wie ich was dagegen unternehmen könnte hab ich bisher auch ned rausgekriegt.

                      Gruss
                      Quetschi:
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        wo $mno weg kommt weiß ich nicht das war bei php.net auch nicht definiert

                        imap_num_msg gibt 1 aus. In dem Postfach ist auch nur 1 Nachricht.

                        Und wie muss ich ide Funktion imap_errors intigirieren?
                        Habs so versucht



                        PHP-Code:
                        $e =  imap_errors ($mbox);

                        print_r($e); 

                        Kommentar


                        • #13
                          Hallo
                          ich habe ein bisschen rumprobiert.
                          Und haeb dann diesen Code erstellt

                          PHP-Code:
                          <?php

                          $msgnr 
                          "1";
                          $folder ="INBOX";
                          $user "user";
                          $passwd ="pw";

                          $inboximap_open ("{localhost/pop3:110}INBOX"$user$passwd);

                          // get total messages
                          $total imap_num_msg($inbox)+1;


                          for(
                          $i=1$i<$total$i++) {
                          // get message headers and structure
                          $headers imap_header($inbox$i);
                          $structure imap_fetchstructure($inbox$i);



                          echo 
                          $headers->Date;
                          echo 
                          "<br><br>";
                          echo 
                          $structure->parts;



                          }

                          // clean up
                          imap_close($inbox);
                          ?>
                          Dabei habe ich festgestellt das $structure->parts; Array ausgibt was eigendlich falsch ist.
                          Ich habe das ganze noch mit weiteren Funktionen die hier in der Tabelle stehen ausprobiert.
                          Nichmal die Hälfte der Funktionen funktioniert es wir meistens nichts ausgegeben nicht ein mal ein Fehler.
                          Ich habe keine Ahnung ob das jetzt normal ist oder nicht.
                          Vielleicht wisst ihr jetzt ja mehr

                          Kommentar

                          Lädt...
                          X