Mails in PHP lesen

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

  • #31
    So würde es bei mir lauten, bei GMX, wenn du deinen Mailserver lokal hast, kommt da localhost hin, aber ich denke mal nicht, dass du so einen hast ^^
    Also das, was du als pop-Server bekommst. Heißen auch manchmal pop.host.domain, oder pop3.host.domain, der eben nur mail.host.domain, füg einfach das ein, was du hast XD
    Also bei Outlook gebe ich bei POP3 pop3.h-denkena.de ein und Kontoname : Usernamep1

    Also bei mir sieht das jetzt so aus
    1. Version
    PHP-Code:
    include 'pop3.class.php';
             
    $server "pop3.h-denkena.de";
             
    $port 110;
             
    $user "user";
             
    $pass "pw";
    $pop3 =  POP3$server$port$user$pass ); 
    1. Version
    PHP-Code:
    include 'pop3.class.php';
             
    $server "localhost";
             
    $port 110;
             
    $user "user";
             
    $pass "pw";
    $pop3 =  POP3$server$port$user$pass ); 
    und immer kommt
    Fatal error: Call to undefined function: pop3() in /srv/www/htdocs/.../mail.php on line 10
    Das ist in Zeile 10 "$pop3 = POP3( $server, $port, $user, $pass );"
    Der Fehler kommt auch, wenn ich gar nichts eingebe
    Zuletzt geändert von themonk; 09.01.2005, 13:16.

    Kommentar


    • #32
      wo wird pop3 definiert?

      Kommentar


      • #33
        Original geschrieben von TobiaZ
        wo wird pop3 definiert?
        Was meinst du damit?
        In pop3.class.php?

        Kommentar


        • #34
          mir egal wo. Hauptsache es wird irgendwo definiert/iniziiert.

          Wenn du Klassen benutzt, dann eigne dir bitte auch die Grundlagen an. Copy & Paste macht keinen Programmierer aus!!!

          Kommentar


          • #35
            Original geschrieben von themonk
            Was meinst du damit?
            In pop3.class.php?
            Ja, TobiaZ recht, das solltest du selbst dir aneignen ^^

            Also, wenn du wirklich noch mehr mit PHP machen willst, zieh dir ein Tut rein (z.B. meines http://www.coding.at/tutorials.php?id=6), wenn dich das alles nicht weiter interessiert, schreibst du statt dessen mal hin:
            PHP-Code:
            $pop3 =  new POP3$server$port$user$pass ); 
            und probierst dann weiter, bis es funktioniert

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #36
              Original geschrieben von ghostgambler
              Ja, TobiaZ recht, das solltest du selbst dir aneignen ^^

              Also, wenn du wirklich noch mehr mit PHP machen willst, zieh dir ein Tut rein (z.B. meines http://www.coding.at/tutorials.php?id=6), wenn dich das alles nicht weiter interessiert, schreibst du statt dessen mal hin:
              PHP-Code:
              $pop3 =  new POP3$server$port$user$pass ); 
              und probierst dann weiter, bis es funktioniert
              Das Problem ist nun weg ich glaube nun geht das ganze werde morgen den rest ändern.

              Kommentar


              • #37
                Tja, wer die Grundlagen beherrscht...

                Kommentar


                • #38
                  Original geschrieben von themonk
                  werde morgen den rest ändern.
                  Na dann haben wir (die Helfer im Forum) ja morgen was zutun

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #39
                    Original geschrieben von ghostgambler
                    Na dann haben wir (die Helfer im Forum) ja morgen was zutun
                    Seid ihr wieder nett

                    Hallo
                    habe gedacht dasi ch das Problem schnell gelöst bekomme ist aber leider nicht so. hier mal der Code

                    PHP-Code:
                               $row "";
                                for( 
                    $ii 1;$ii <= count$mail_sizes );++$ii ) {
                        
                    $sqlkommando "SELECT * FROM mails ";


                        
                    $sqlanfrage mysql_query($sqlkommando) or die("Error: " mysql_error());
                        while(
                    $daten mysql_fetch_object($sqlanfrage))
                        {

                    $alreadyhave $daten->mail_id;
                    echo 
                    $alreadyhave
                                    if ( 
                    in_array$ids[$ii], $alreadyhave ) )  { // alreadyhave ist ein Array mit Mailids     ##Zeile 34
                                        
                    continue; // welche nicht nochmal vom Server geholt werden
                                    
                    }} 
                    So und jetzt die Fehler
                    Warning: in_array(): Wrong datatype for second argument in /srv/www/htdocs/.../mail.php on line 34
                    Bei eoch $already wird eine Zahl angezeigt.


                    Und einen Weitere Frage
                    Weiter unten im Script habe ich echo"<br>$sql<br>"; eingefügt jetzt habe ich im Postfach 1 Nachricht diese wird 2 Mal angezeigt (Ich glaube das leigt daran das ich in die Tabelle Mails 2 Mal was eingegeben habe )

                    Und warum wird in meinen Tabelle nichts eingetragen

                    PHP-Code:
                     mysql_query("insert into system_mails (mailserver_id,server_id,header,body) values $sql) or die(mysql_error()); 

                    Kommentar


                    • #40
                      Original geschrieben von themonk
                      So und jetzt die Fehler
                      Bei eoch $already wird eine Zahl angezeigt.
                      $already muss ein Array sein, dass die unique-Ids der Mails beinhaltet, die du schon in MySQL drin hast
                      d.h. keine Zahl
                      Für einen Vorschlag von TBT zum rausfinden der vorhandenen Mails den Thread bis zum Ende lesen...

                      Und warum wird in meinen Tabelle nichts eingetragen
                      Weiß nicht, ist ja deine Tabelle XP
                      Was sagt denn phpMyAdmin? Ist der Datensatz da, oder fehlt er?
                      Und was ist in $sql???

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #41
                        Original geschrieben von ghostgambler
                        $already muss ein Array sein, dass die unique-Ids der Mails beinhaltet, die du schon in MySQL drin hast
                        d.h. keine Zahl

                        Verstehe ich nicht. already muss doch irgendwas sein was in mailserver_id sthet oder nicht?
                        Das hieri st von TBT
                        PHP-Code:
                        $alreadyhave $query->select_single("select mailserver_id from system_mails where server_id=" $server[$i][0]); 
                        Für einen Vorschlag von TBT zum rausfinden der vorhandenen Mails den Thread bis zum Ende lesen...
                        Meinst du damit die Seite 2?
                        Weiß nicht, ist ja deine Tabelle XP
                        Was sagt denn phpMyAdmin? Ist der Datensatz da, oder fehlt er?
                        Und was ist in $sql???
                        phpMyAdminsagt nichts es wird gar nichts eingetragen. Aber mein Code sagt was
                        You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''('1090',,'Return-Path: X-Original-To: info
                        Und sql gibt das hier aus

                        '1090',,'Return-Path: X-Original-To: mail@mail.de Delivered-To: user@ipx10799.ipxserver.de Received: from mail.gmx.net (pop.gmx.net [222.165.64.20]) by ipx10799.ipxserver.de (Postfix) with SMTP id 5A3093540F5 for ; Sun, 9 Jan 2005 20:08:34 +0100 (CET) Received: (qmail 31384 invoked by uid 0); 9 Jan 2005 19:08:24 -0000 Received: from 217.84.253.87 by www31.gmx.net with HTTP; Sun, 9 Jan 2005 20:08:24 +0100 (MET) Date: Sun, 9 Jan 2005 20:08:24 +0100 (MET) From: \"Name\" To:mail@mail.de MIME-Version: 1.0 Subject: rewr X-Priority: 3 (Normal) X-Authenticated: #9752341 Message-ID: <876.1185297704@www31.gmx.net> X-Mailer: WWW-Mail 1.6 (Global Message Exchange) X-Flags: 0001 Content-Type: text/plain; charset=\"us-ascii\" Content-Transfer-Encoding: 7bit X-UIDL: E$P\"!hh\"!!\\[&#!JY;!! Status: RO ','rewrwe -- http://www.h-denkena.de Homepage und Schul Help +++ GMX - die erste Adresse für Mail, Message, More +++ 1 GB Mailbox bereits in GMX FreeMail http://www.gmx.net/de/go/mail '),(

                        Kommentar


                        • #42
                          Original geschrieben von themonk
                          Verstehe ich nicht. already muss doch irgendwas sein was in mailserver_id sthet oder nicht?
                          Jede Mail bekommt vom Server eine Unique-id, diese wird bei der Klasse mit zurückgeliefert.
                          D.h. du machst einen Query, wo du nur diese Zeile abrufst von allen Mails, packst das, was du bekommst, in ein Array (foreach benutzen, z.B.) und übergibst das Array an die FUnktion

                          phpMyAdminsagt nichts es wird gar nichts eingetragen. Aber mein Code sagt was

                          Und sql gibt das hier aus
                          Nett, dass du jetzt mit der Fehlermeldung ankommst >_>

                          insert into system_mails (mailserver_id,server_id,header,body) values $sql"
                          Da müsste die mailserver_id einfach nur eine Kennzeichnung für den Account sein, d.h. ich denke nicht, dass du mehr als 1000 E-Mail-Accounts hast...woher kommt die erste Zahl?
                          Die zweite Spalte bleibt leer??? Da muss die unique-ID rein, wenn ich mich nicht täusche....
                          btw. würde ich nicht addslashes verwenden, dann musst du die ganzen Slashes bei der Ausgabe wieder strippen. Nutz statt dessen mysql_real_escape !!!
                          Da z.B.
                          $P\"!hh\"!!\
                          Oder ist das Absicht?

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar


                          • #43
                            Original geschrieben von ghostgambler
                            Jede Mail bekommt vom Server eine Unique-id, diese wird bei der Klasse mit zurückgeliefert.
                            D.h. du machst einen Query, wo du nur diese Zeile abrufst von allen Mails, packst das, was du bekommst, in ein Array (foreach benutzen, z.B.) und übergibst das Array an die FUnktion

                            Also ich muss in meine Datenbank schauen und dann die zeile mailserver_id ausgeben und als Variable für already Speichern?



                            insert into system_mails (mailserver_id,server_id,header,body) values $sql"
                            Da müsste die mailserver_id einfach nur eine Kennzeichnung für den Account sein, d.h. ich denke nicht, dass du mehr als 1000 E-Mail-Accounts hast...woher kommt die erste Zahl?
                            Die zweite Spalte bleibt leer??? Da muss die unique-ID rein, wenn ich mich nicht täusche....
                            btw. würde ich nicht addslashes verwenden, dann musst du die ganzen Slashes bei der Ausgabe wieder strippen. Nutz statt dessen mysql_real_escape !!!
                            Da z.B. Oder ist das Absicht?
                            Wie jetzt?
                            Meine Postfächer heißen web123p1 und das soll ich in die Zeile mailserver_id speichern? server_id =unique-ID ? und Header und Body?
                            Da wird doch nicht dieses sql so eingefügt?
                            Meintst du wirklich mysql_real_escape? da kommt bei mir
                            Call to undefined function: mysql_real_escape()
                            und php.net kennt nur mysql_real_escape_string und ide macht das selbe wie addsl..

                            Kommentar


                            • #44
                              Original geschrieben von themonk
                              Also ich muss in meine Datenbank schauen und dann die zeile mailserver_id ausgeben und als Variable für already Speichern?
                              nix ausgeben:
                              $result = mysql_query('SELECT server_id FROM mails');
                              $alreadyhave = array();
                              while ($row = mysql_fetch_assoc($result))
                              {
                              $alreadyhave[] = $row['server_id'];
                              }
                              Damit hast du dann in Array alle Werte, aller DB-Einträge, die in server_id sind. Das müssen dann natürlich nur noch die unique-ids sein.

                              [QUOTE]Wie jetzt?
                              Meine Postfächer heißen web123p1 und das soll ich in die Zeile mailserver_id speichern? server_id =unique-ID ? und Header und Body? [QUOTE]
                              Zum Testen verwendest du doch eh nur ein Postfach, oder? Dann kannst du dir die mailserver_id klemmen. in Server_id kommen die unique-ids der Mails, die der Mailserver gibt. Header und Body sind E-MailHeader/Body und dann brauchst du noch eine Spalte id mit autoincrement, für deine DB
                              Und dann gehst ans Nutzen der Klasse.

                              Da wird doch nicht dieses sql so eingefügt?
                              Meintst du wirklich mysql_real_escape? da kommt bei mir und php.net kennt nur mysql_real_escape_string und ide macht das selbe wie addsl.. [/B]
                              Achso, ne ich meine natürlich mysql_real_escape_string ^^ (ich hab die Funktion irgendwann mal abgekürzt, damit ich nicht soviel tippen brauch ) und diese Funktion maskiert die Zeichen zwar auch, die werden dann aber trotzdem unmaskiert in die Datenbank geschrieben und DAS ist der Unterschied zu addslashes.
                              Den Inhalt von mysql_real_escape_string kannst du so ausgeben, bei addslashes musst du vor der Ausgabe nochmal stripslashes verwenden...

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar


                              • #45
                                Hallo
                                einen halben Erfolg habe ich nun, es sind keine fehler mehr da und es wird jede Mail einmal per $sql ausgelsen .

                                Nun aber zum anderen.
                                Bei sql habe ich jetzt ja noch diese Durcheinandere wie bekomme ich das weg? Dies hat sich vielleicht schon mit der nächsten frage erübrigt. Wie soll den jetzt der Eintrag in die Datenbank vorgenommen werden, wenn ich die Zeilen Empfaenger, Absender, Betreff, Body(Text),Anhang,mailserver_id und server_id habe

                                Ich habe den unteren Fehler so gelöst
                                PHP-Code:
                                    mysql_query("insert into mails (mailserver_id,server_id,header,body) values ('1','2','3','4')" ) or die(mysql_error()); 
                                Und so nebenbei. Was soll diese Code machen?
                                Wenn ichs richtig verstanden habe sieht er nach welche Mails isnd da Speichert sie in die Datenbank und fertig ist das so?

                                Edit:
                                Die letzte Frage könnt ihr vergessen
                                Original geschrieben von TBT
                                die Mails von einem POP3 Server abholen, und dann eine SQL Abfrage zusammenzubauen,
                                um das Ganze in einer DB zu speichern.
                                Zuletzt geändert von themonk; 11.01.2005, 14:18.

                                Kommentar

                                Lädt...
                                X