Mails in PHP lesen

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

  • #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?

    Kommentar


    • #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

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #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

            Kommentar


            • #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

              Kommentar


              • #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.
                Zuletzt geändert von themonk; 15.01.2005, 13:19.

                Kommentar


                • #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

                  Kommentar


                  • #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
                    (
                    )

                    )
                    Zuletzt geändert von themonk; 15.01.2005, 14:53.

                    Kommentar


                    • #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

                      Kommentar


                      • #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 );

                        ?>

                        Kommentar


                        • #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

                          Kommentar


                          • #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
                            Zuletzt geändert von themonk; 15.01.2005, 15:42.

                            Kommentar


                            • #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

                              Kommentar


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

                                Kommentar

                                Lädt...
                                X