Mails in PHP lesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Wenn ja, mach mal auf die Ausgabe des Froms htmlentities()
    Mit htmlentities() steht jetzt auch die E-Mail adresse da.


    Hat sich das jetzt mit der Klasse von TBT erledigt?
    Naja habe jetzt ne Frage zu dem Code soll ich die hier stellen oder in den Beitrag von TBT?
    Stelle ich sie erstmal hier.
    Die class habe ich als maildecoder2.class.php gespeichert und in mail.php includet. In der class darf ich sicherlich nichts ändern oder?
    Nur jetzt muss ich ja in der mail.php sicher noch irgendwas machen damit die class auch gebraucht wird.
    Deshalb habe ich jetzt erstmal das hier dort rein geschrieben.
    PHP Code:
      $mheader "$text";
             
    $mbody "$textb";

    $Decoder =  new MailDecoder$mheader$mbody); 
    ist das richtig?

    Comment


    • #62
      Original geschrieben von themonk

      Deshalb habe ich jetzt erstmal das hier dort rein geschrieben.
      PHP Code:
        $mheader "$text";
               
      $mbody "$textb";

      $Decoder =  new MailDecoder$mheader$mbody); 
      ist das richtig?
      dann schau doch mal in die Klasse, ganz unten ist als Kommentar sogar drin
      wie du sie zu benutzen hast
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Comment


      • #63
        Original geschrieben von TBT
        dann schau doch mal in die Klasse, ganz unten ist als Kommentar sogar drin
        wie du sie zu benutzen hast
        da steht
        PHP Code:
        /*
        $mail = implode( '', file( '/home/sven/1099418313.27325.3VQSq:2,S' ) );
        $tmp = & new MailDecoder();
        $answer = $tmp->decode( $mail );
        echo "<pre>";
        print_r( $answer );*/ 
        ich neheme an das dann diese in mail.php gehört oder?

        PHP Code:
        $mail implode''file'maildecoder2.class.php' ) );
        $Decoder = & new MailDecoder();
        $answer $Decoder->decode$mail );
        echo 
        "<pre>";
        print_r$answer ); 
        aber woher weißt der code den nun was der Header und der body ist also kann das doch auch nicht richtig sein

        Comment


        • #64
          Original geschrieben von themonk
          ich neheme an das dann diese in mail.php gehört oder?

          PHP Code:
          $mail implode''file'maildecoder2.class.php' ) );
          $Decoder = & new MailDecoder();
          $answer $Decoder->decode$mail );
          echo 
          "<pre>";
          print_r$answer ); 
          aber woher weißt der code den nun was der Header und der body ist also kann das doch auch nicht richtig sein
          $mail ist die als textdatei gespeicherte Email, welche von der POP3 Klasse geliefert wurde.
          $mail wird wohl wahrscheinlich der INHALT der Mail sein!

          also

          includiere klasse ...
          lade $email ...
          erzeuge decoder
          $answer = decoder->decode( $email );
          kontrollausgabe von $answer, damit du siehst, wo was ist!
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Comment


          • #65
            Original geschrieben von TBT
            $mail ist die als textdatei gespeicherte Email, welche von der POP3 Klasse geliefert wurde.
            $mail wird wohl wahrscheinlich der INHALT der Mail sein!

            also

            includiere klasse ...
            lade $email ...
            erzeuge decoder
            $answer = decoder->decode( $email );
            kontrollausgabe von $answer, damit du siehst, wo was ist!
            Ich glaube ich bin zu Dumm dazu.
            Wo steht den das in $mail die als textdatei gespeicherte Email ist?

            PHP Code:
            $mail implode''file'maildecoder2.class.php' ) );
            $tmp = & new MailDecoder();
            $answer $tmp->decode$mail );
            echo 
            "<pre>";
            print_r$answer ); 
            genau das habe ich in mail.php stehen und es kommt der Fehler
            Fatal error: Cannot instantiate non-existent class: maildecoder in /srv/www/htdocs/.../mail.php on line 117

            Comment


            • #66
              das steht da

              $mail = implode( '', file( '/home/sven/1099418313.27325.3VQSq:2,S' ) );

              du kannst aber auch direkt den String, denn dir die pop3 Klasse gibt als mail nehmen
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Comment


              • #67
                Original geschrieben von TBT
                das steht da

                $mail = implode( '', file( '/home/sven/1099418313.27325.3VQSq:2,S' ) );

                du kannst aber auch direkt den String, denn dir die pop3 Klasse gibt als mail nehmen
                Diese Zahlen haben mich auch gewunder.
                Meinst du mit dem String $sql den dort ist der Header und der Body drin.
                Aber das kann ja auch nicht, denn wenn ich das dann so mache
                PHP Code:
                $answer $tmp->decode$sql ); 
                dann wird nichst mehr gezeigt.
                Last edited by themonk; 15-01-2005, 13:19.

                Comment


                • #68
                  nein, ich meine nicht das $sql sondern die Mail,
                  also

                  $mail = $header."\n\n".$body;
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Comment


                  • #69
                    habe jetzt
                    PHP Code:
                    $mail $h."\n\n".$b;
                    $tmp = & new MailDecoder();
                    $answer $tmp->decode$mail );
                    echo 
                    "<pre>";
                    print_r$answer ); 
                    $h und $b werden ja oben angegeben
                    PHP Code:
                    $b .= mysql_real_escape_string $body[$line] ) . "\r\n"
                    gemacht und als Antwort kommt:

                    Array
                    (
                    [header] => Array
                    (
                    )

                    [body] => Array
                    (
                    )

                    )
                    Last edited by themonk; 15-01-2005, 14:53.

                    Comment


                    • #70
                      zeig mal deinen ganzen Code, was machst du eingentlich mit mysql_escape ... wenn du die Mails decodieren willst?
                      TBT

                      Die zwei wichtigsten Regeln für eine berufliche Karriere:
                      1. Verrate niemals alles was du weißt!


                      PHP 2 AllPatrizier II Browsergame

                      Comment


                      • #71
                        PHP Code:
                        <?

                          mysql_connect("localhost",
                          "user","pw") or die
                          ("Keine Verbindung moeglich");
                          mysql_select_db("db") or die
                          ("Die Datenbank existiert nicht");



                        include 'pop3.class.php';

                        include 'maildecoder2.class.php';
                                 $server = "localhost";
                                 $port = 110;
                                 $user = "user";
                                 $pass = "pw";
                        $pop3 =  new POP3( $server, $port, $user, $pass );

                        if ( !$pop3error = $pop3->open() ) {
                            if ( !$pop3error = $pop3->login() ) {
                                if ( !$pop3error = $pop3->stat() ) {
                                    $mail_sizes = $pop3->listing();
                                    $ids = $pop3->ids();
                                    $row = "";
                                    for( $ii = 1;$ii <= count( $mail_sizes );++$ii ) {
                        $result = mysql_query('SELECT server_id FROM mails');
                        $alreadyhave = array();
                        while ($row = mysql_fetch_assoc($result))
                        {
                        $alreadyhave[] = $row['server_id'];
                        }


                                        if ( in_array( $ids[$ii], $alreadyhave ) )  { // alreadyhave ist ein Array mit Mailids
                                            continue; // welche nicht nochmal vom Server geholt werden
                                        }
                                        $headers = $body = $h = $b = "";
                                        if ( ( $pop3error = $pop3->retrieve( $ii, $headers, $body ) ) == "" ) {
                                            for( $line = 0;$line < count( $headers );$line++ ) {
                                                $h .= mysql_real_escape_string ( $headers[$line] ) . "\r\n";
                                            }
                                            for( $line = 0;$line < count( $body );$line++ ) {
                                                $b .= mysql_real_escape_string ( $body[$line] ) . "\r\n";
                                            }



                                           $row1 = "  $ids[$ii]  ";
                                           $row = "('" . $ids[$ii] . "'," . $server[$i][0] . ",'$h','$b')";


                                        }
                                        $sql .= ( $sql?",":"" ) . $row;
                                    } }

                                }
                            }

                        if ( $pop3error ) {
                            echo $pop3error;
                        }
                        $pop3->disconnect();



                        $mail = $header."\n\n".$body;
                        $tmp = & new MailDecoder();
                        $answer = $tmp->decode( $mail );
                        echo "<pre>";
                        print_r( $answer );

                        ?>

                        Comment


                        • #72
                          beschränke die bitte auf das abholen einer mail, und nicht mehrerer,
                          oder decodiere innerhalb der Schleife.
                          Dann übergib dem Decoder header und body ( jeweils per implode)
                          also sowas in der Art
                          PHP Code:
                          for( $i=1$i<=$count && $i<=$_max; ++$i ){
                              
                          $headers $body '';
                              if( 
                          $error $pop3->retrieve$i$headers$body ) ){
                                  continue;
                              }
                              
                          $headers    implode("\n",$headers);
                              
                          $body        implode("\n",$body);
                              
                          $mail $headers."\n\n".$body;
                              
                          $decoder = new MimeDecoder();
                              
                          $tmp $decoder->decode$mail );
                              
                          print_r$tmp );
                          }
                          $pop3->disconnect(); 
                          TBT

                          Die zwei wichtigsten Regeln für eine berufliche Karriere:
                          1. Verrate niemals alles was du weißt!


                          PHP 2 AllPatrizier II Browsergame

                          Comment


                          • #73
                            ich glaub ich schaffe es nie!

                            Habe jetzt mal eine Version von dennne die ich ausprobiert habe hier:
                            PHP Code:
                            if ( in_array$ids[$ii], $alreadyhave ) )  { // alreadyhave ist ein Array mit Mailids
                                                
                            continue; // welche nicht nochmal vom Server geholt werden
                                            
                            }
                                            
                            $headers $body $h $b "";
                                            if ( ( 
                            $pop3error $pop3->retrieve$ii$headers$body ) ) == "" ) {
                                                for( 
                            $line 0;$line count$headers );$line++ ) {
                                                    
                            $h .= mysql_real_escape_string $headers[$line] ) . "\r\n";
                                                }
                                                for( 
                            $line 0;$line count$body );$line++ ) {
                                                    
                            $b .= mysql_real_escape_string $body[$line] ) . "\r\n";
                                                }



                                               
                            $row1 "  $ids[$ii]  ";
                                               
                            $row "('" $ids[$ii] . "'," $server[$i][0] . ",'$h','$b')";


                                            }
                                            
                            $sql .= ( $sql?",":"" ) . $row;
                                        } }

                                    }
                              
                            $headers    implode("\n",$headers);
                                
                            $body        implode("\n",$body);
                                
                            $mail $headers."\n\n".$body;
                                
                            $decoder = new MimeDecoder();
                                
                            $tmp $decoder->decode$mail );
                                
                            print_r$tmp );

                                }

                            if ( 
                            $pop3error ) {
                                echo 
                            $pop3error;
                            }
                            $pop3->disconnect(); 
                            Und das ist der Fehler
                            Fatal error: Cannot instantiate non-existent class: mimedecoder in /srv/www/htdocs/.../mail.php on line 60
                            Last edited by themonk; 15-01-2005, 15:42.

                            Comment


                            • #74
                              include vergessen ?
                              TBT

                              Die zwei wichtigsten Regeln für eine berufliche Karriere:
                              1. Verrate niemals alles was du weißt!


                              PHP 2 AllPatrizier II Browsergame

                              Comment


                              • #75
                                leider nicht
                                include 'maildecoder2.class.php';

                                Comment

                                Working...
                                X