Problem mit email abholen - Apache hängt sich auf - Spam?

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

  • Problem mit email abholen - Apache hängt sich auf - Spam?

    Hi,

    hab eine frage & ein problem.

    Ich versuche ein webbasiertes email-system aufzubauen.
    Läuft alles eigentlich schon ganz gut aber jetzt komme ich an einer stelle garnicht weiter.
    Beim abrufen der mails vom mail-server hängt sich mein lokaler apache auf. Vor allem bei spam mails.
    kann aber auch sein das, das script einfach falsch arbeitet, bin mir nicht sicher. Hab nicht alles sebst geschrieben

    Hier mal das script:
    PHP-Code:
    /****************************************************************
        Verbindung mit dem Postfach herstellen
    ****************************************************************/

    // POP3-Server
    $host="xxx.xxx.x.x";
    $port="xxx";
    // User-Daten
    $user="xxxx";
    $passwort="xxxxxx";

    // Verbinden zur Mailbox
    $mailbox=imap_open("{".$host."/pop3:".$port."}INBOX","$user","$passwort");

    // Überprüfen ob Verbindung erfolgreich, dann weiter...
    if ($mailbox)
    {
        echo 
    "Verbindung O.K.!";
        
    $check=imap_check($mailbox);
        
    $count_msg=$check->Nmsgs;
        echo 
    "<b>Emails im Postfach:</b> ".$count_msg."<br>\n";
    //******** Email
        
    for ($i=1$i<=imap_num_msg($mailbox); $i++)
        {
    //******** Header
             
    $mail_header=imap_header($mailbox$i);
    //******** Absender-Adresse
            
    $mail_from_address=$mail_header->from[0]->mailbox."@".$mail_header->from[0]->host;
            if (!
    preg_match("/^[0-9a-z]([-_.]?[0-9a-z])*@[a-z0-9-]+.([a-z]{2}|aero|arpa|biz|com|coop|edu|
    gov|info|int|mil|museum|name|net|org|pro|shop)$/i"
    ,$mail_from_address))
            {
                  echo 
    "Die E-Mail Adresse ".$mail_from_address." ist ung&uuml;ltig!<br>\n";
    //**************** Mail zum löschen vormerken
                  
    imap_delete($mailbox,$i);
    //**************** Mail löschen
                  
    imap_expunge($mailbox);
            }
            else
            {
                  echo 
    "Absender: ".htmlentities($mail_from_address)."<br>\n";
            }
    //******** Haupttext für den Body erfassen
            
    $mail_body=imap_fetchbody($mailbox,$i,1);
            if ((
    strpos($mail_body,'<body>')) && (strpos($mail_body,'</body>')))
            {
    //**************** Wenn Html-Mail
                
    $mail_body=substr($mail_body,strpos($mail_body,'<body>'),strpos($mail_body,'</body>'));
                
    $mail_body=nl2br(strip_tags($mail_body));
                
    $mail_body=eregi_replace("------=_NextPart_.*quoted-printable.
    *------=_NextPart_.*quoted-printable"
    ,"",$mail_body);
                
    $mail_body=eregi_replace("------=_NextPart_.*--","",$mail_body);
                
    $mail_body=addslashes($mail_body);
            }
            else
            {
    //**************** Wenn Textmail
                
    $mail_body=nl2br(strip_tags($mail_body));
                
    $mail_body=eregi_replace("------=_NextPart_.*quoted-printable.
    *------=_NextPart_.*quoted-printable"
    ,"",$mail_body);
                
    $mail_body=eregi_replace("------=_NextPart_.*--","",$mail_body);
                
    $mail_body=addslashes($mail_body);
            }
            echo 
    "Nachricht:<br>".$mail_body."<br>\n";
        }
    }
    else {
        echo 
    "Verbindung nicht erfolgreich!<br>\n";

    Liegt es an der abfrage?
    Kann es an einer spam mail liegen?
    Was kann sonst der fehlerhaft sein?
    ...
    Zuletzt geändert von snoese; 04.02.2005, 12:23.
    MfG
    Snoese

  • #2
    was sagt denn dein error.log ?
    Kissolino.com

    Kommentar


    • #3
      Original geschrieben von Wurzel
      was sagt denn dein error.log ?
      Im error.log ist keine Fehlermeldung.
      Der Server landet warscheinlich in einer endlosschleife...
      MfG
      Snoese

      Kommentar


      • #4
        lass dir mal sicherheitshalber imap_num_msg($mailbox) das ausgeben und kommentier die for schleife aus.
        vielleicht ist die zahl zuuu groß o.s.
        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          Also, wenn ich statt der for-Schleife die problematische message einzeln anspreche, also $i klar definiere, kommt eine Fehlermeldung:

          Das Dokument enthält keine Daten
          Was soll das heißen?

          Gruß
          MfG
          Snoese

          Kommentar


          • #6
            Hab jetzt mal versucht die email im "reinformat" auszugeben. Per echo-Befehl ...
            PHP-Code:
            //******** Haupttext für den Body erfassen
                    
            $mail_body=imap_fetchbody($mailbox,$i,1);
                    echo 
            "Nachricht:<br>".$mail_body."<br>\n"
            Das war keine gut idee. Das hat mir einen Virus beschert.
            (F**K all that!)

            Aber nun gut. Hab die Festplatte gesäubert und die mail gelöscht. Aber wie kann ich dieses problem vermeiden && zusehen das mein script trotz spam/viren-mails läuft?

            Bin froh über jede Hilfe!!
            MfG
            Snoese

            Kommentar


            • #7
              Original geschrieben von snoese
              Das war keine gut idee. Das hat mir einen Virus beschert.
              nur durch ansehen des mailbodys in einem HTML-dokument?

              benutzt du den IE? *g*
              hast du keinen virenscanner?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von wahsaga
                nur durch ansehen des mailbodys in einem HTML-dokument?

                benutzt du den IE? *g*
                hast du keinen virenscanner?
                Hi wahsaga,

                ich nutze den feuerfuchs,
                zum virenscanner: bin nicht ganz sicher was du meinst. Beim öffnen der mails kommt von N0rton AntiV1rus die nachricht:

                Viruswarnmeldung
                N0rton AntiV1rus hat einen Virus auf ihrem Computer gefunden.
                Objektname: X:\**\**\**\Temp\msg19
                Virenname: W32.Netsky.P@mm!enc
                Aktion: Die Datei konnte nicht repariert werden.
                Die Datei bzw. der Virus wird auch entfernt.
                Dann landet der Apache wieder in ner Endlosschleife und kann manuell nicht beendet wetrden.



                Meldung: Der Vorgang konnte nicht beendet werden.
                Zugriff verweigert.

                Also neustart!? - Bis gleich....
                MfG
                Snoese

                Kommentar


                • #9
                  OffTopic:
                  naja, norton AntiVirus ist ja nicht wirklich ein AntiViren scanner *g* - steig mal auf Kaspery um
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    steig mal auf Kaspery um
                    @Benny-one
                    schenkst du mir ne vollversion von Kaspersky?
                    aber hast recht wird wohl mal fällig sich da zu verbessern.

                    Aber mein problem bleibt eigentlich der Apache/die Endlosschleife!
                    Was tun?
                    MfG
                    Snoese

                    Kommentar


                    • #11
                      Original geschrieben von snoese
                      @Benny-one
                      schenkst du mir ne vollversion von Kaspersky?
                      wenn du mir nen geldscheißenden esel schenkst gerne

                      was hat den imap_num_msg($mailbox) ausgegeben?
                      Sunshine CMS
                      BannerAdManagement
                      Borlabs - because we make IT easier
                      Formulargenerator [color=red]Neu![/color]
                      Herkunftsstatistik [color=red]Neu![/color]

                      Kommentar


                      • #12
                        was hat den imap_num_msg($mailbox) ausgegeben?
                        z.B.
                        PHP-Code:
                        echo "<b>Emails im Postfach:</b>";
                        echo 
                        ".imap_num_msg($mailbox)."<br>\n"; 
                        gibt z.B. 14 wieder.

                        dann soll eine schleife durch alle 14 mails laufen und ein paar header infos & den body augeben. die mail jeweils durch <hr> getrennt.

                        Jetzt rufe ich die seite auf und es werden die ersten mails angezeigt.
                        alles O.K.
                        dann bei mail X wird:
                        entweder so oft X angezeigt bis meine time ausläuft oder der server bleibt bei der hälfte des bodys von X stehen,
                        und läd...und läd...und läd...

                        cpu-auslastung kontinuierlich bei 100%
                        der apache ist gefangen!

                        was kann da los sein?
                        wenn die ersten 4 mails ohne probleme ge-"echo"-t werden, kann es doch an der schleife nicht liegen. dann würde es doch schon bei der ersten nicht klappen, oder??

                        irgendwer ne idee...
                        MfG
                        Snoese

                        Kommentar


                        • #13
                          PHP-Code:
                          //******** Email
                              
                          $loop imap_num_msg($mailbox);
                              for (
                          $i=1$i<=$loop$i++) 
                          versuchs mal damit
                          Sunshine CMS
                          BannerAdManagement
                          Borlabs - because we make IT easier
                          Formulargenerator [color=red]Neu![/color]
                          Herkunftsstatistik [color=red]Neu![/color]

                          Kommentar


                          • #14
                            Original geschrieben von snoese
                            dann soll eine schleife durch alle 14 mails laufen und ein paar header infos & den body augeben.
                            ich meinte die schleife hab ich schon:

                            PHP-Code:
                                for ($i=1$i<=imap_num_msg($mailbox); $i++)
                            ... 
                            ist doch das gleiche wie:

                            PHP-Code:
                            $loop imap_num_msg($mailbox);
                                for (
                            $i=1$i<=$loop$i++)
                            ... 
                            oder?
                            MfG
                            Snoese

                            Kommentar


                            • #15
                              neee, weil bei
                              PHP-Code:
                              for ($i=1$i<=imap_num_msg($mailbox); $i++) 
                              immer wieder pro durchlauf geprüft wird, wie viel imap_num_msg($mailbox); ist, während bei $loop = imap_num_msg($mailbox); ein wert festgelegt wird, wie oft die schleife durchlaufen werden soll
                              Sunshine CMS
                              BannerAdManagement
                              Borlabs - because we make IT easier
                              Formulargenerator [color=red]Neu![/color]
                              Herkunftsstatistik [color=red]Neu![/color]

                              Kommentar

                              Lädt...
                              X