SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.10.2013, 21:20:56
Sven4972 Sven4972 ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 51
Beiträge: 34
Sven4972 eine Nachricht über ICQ schicken Sven4972 eine Nachricht über Skype™ schicken
Umbau eines Scriptes

Hallo,

mit folgendem Script lese ich den Text von E-Mails aus um diesen weiterzuverarbeiten:

PHP-Code:
error_reporting(E_ALL E_NOTICE);
$msg 1;
include 
"mail-erg-verbindung.inc";
$imapi imap_check($mbox);
$nmsg $imapi->Nmsgs;
if (
$nmsg == 0)
         {
        echo 
"Mailbox leer";
        exit;
         }
for (
$msg $msg <= $nmsg$msg++)
{
  
$header imap_fetchheader($mbox$msg);
  if (
preg_match('%boundary=(.*)%'$header$boundary))
  {
    
$boundary $boundary[1];
    if(
substr($boundary01) == '"'$boundary substr($boundary1, -2);
  }
  else
    
$boundary "";
    
    
$body imap_body($mbox$msg);

  
$u 0;
  
$mailparts explode("$boundary"$body);
  
  foreach (
$mailparts as $content)
 {
    
$u++;
    
    if (
$u== 2)
    {
      
$content trim($content);
      
$content substr($content0, -2);
      if (
preg_match('%filename=(.*)%'$content$fname))
      {
        
$fname $fname[1];
        if (
substr($fname01) == '"'$fname substr($fname1, -2);
      }
      if (
$p strpos($content"\r\n\r\n"))
        
$content trim(substr($content$p)); 
echo 
"Mail Nr:".$msg;
      
auswerten ($fname$content);
echo 
"<br><br>";      
    }
}

imap_delete($mbox$msg);

}
imap_expunge($mbox);
imap_close($mbox); 
Jetzt kommen dort auch E-Mails an die nicht weiterverarbeitet werden sollen und das Script soll so umgebaut werden das diese E-Mails gelöscht werden die einen anderen Betreff haben.

Zum Beispiel alle E-Mails mit dem Betreff "Spielergebnis" sollen erhalten bleiben und die restlichen E-Mails sollen gelöscht werden.

Wie müsste ich das Script ändern damit ich dieses erreiche?


LG Sven
Mit Zitat antworten
  #2  
Alt 15.10.2013, 10:20:45
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Umbau eines Scriptes

Ungeprüft, aus dem Stegreif: Quelle: http://at2.php.net/manual/de/functio...h-overview.php

PHP-Code:
error_reporting(E_ALL E_NOTICE);
$msg 1;
include 
"mail-erg-verbindung.inc";
$imapi imap_check($mbox);

$result imap_fetch_overview($mbox,"1:{$imapi->Nmsgs}",0);

foreach (
$result as $overview
{
    
//  if(!stristr($overview->subject,'Spielergebnis')) // Betreff darf den Text Spielergebnis nicht enthalten
    
if($overview->subject != 'Spielergebnis'// Alle was nicht genau Spielergebnis ist 
    
{
         
// Diese Nachricht wird gelöscht....
         
echo "#{$overview->msgno} ({$overview->subject}) - From: {$overview->from} {$overview->subject}\n";
         
imap_delete($mbox$overview->msgno); // Löschen der Nachricht
     
}

Sollte alle Nachrichten löschen, die deinen Wünschen nicht entsprechen.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #3  
Alt 22.10.2013, 17:22:21
Sven4972 Sven4972 ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 51
Beiträge: 34
Sven4972 eine Nachricht über ICQ schicken Sven4972 eine Nachricht über Skype™ schicken
AW: Umbau eines Scriptes

Hallo,

ich habe das jetzt mal eingebaut, es werden die falschen Mails aber nicht gelöscht.

Was kann denn da falsch sein?


LG Sven
Mit Zitat antworten
  #4  
Alt 23.10.2013, 16:28:51
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Umbau eines Scriptes

Wie gesagt, ich habe das aus dem Stegreif (Ärmel) gepostet.

PHP-Code:
    if(!stristr($overview->subject,'Spielergebnis')) // Betreff darf den Text Spielergebnis nicht enthalten
//    if($overview->subject != 'Spielergebnis') // Alle was nicht genau Spielergebnis ist 
    
{
         
// Diese Nachricht wird gelöscht....
         
echo "#{$overview->msgno} ({$overview->subject}) - From: {$overview->from} {$overview->subject}\n";
         
// imap_delete($mbox, $overview->msgno); // Löschen der Nachricht
     

Tasten wir uns mal langsam an das Problem heran.
Obiger Code sollte erst mal die Mails listen, die den Begriff "Spielergebnis" NICHT im Betreff haben. Funktioniert das?

PS
Ich sehe in deinem Code nicht, dass du den Ordner öffnest. Macht das die .inc?
PHP-Code:
$mbox imap_open("{imap.example.org:143}INBOX""username""password")
     or die(
"can't connect: " imap_last_error()); 
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #5  
Alt 24.10.2013, 20:36:27
Sven4972 Sven4972 ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 51
Beiträge: 34
Sven4972 eine Nachricht über ICQ schicken Sven4972 eine Nachricht über Skype™ schicken
AW: Umbau eines Scriptes

Hallo,

ja das Postfach wird in der .inc geöffnet.

Die Mails werden aufgelistet.

Wenn ich die Zeile

PHP-Code:
imap_delete($mbox$overview->msgno); // Löschen der Nachricht 
in

PHP-Code:
imap_deleted($mbox$overview->msgno); // Löschen der Nachricht 
abändere werden die Mails zum löschen markiert.
Aber wenn ich es so lasse wie bei Deinem 1. Tipp dann löscht er sie nicht.


LG Sven
Mit Zitat antworten
  #6  
Alt 25.10.2013, 11:00:05
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Umbau eines Scriptes

imap_deleted gibt es nicht (ich finde es zumindest nicht auf der PHP-Seite)

Lt- PHP-Handbuch macht imap_delete() nichts anderes als: eine Nachricht zum löschen markieren
http://www.selfphp.de/forum/search.php?searchid=3334871

Danach musst du noch mit einem imap_expunge() drüber, damit die Nachrichten auch gelöscht werden.
http://at2.php.net/manual/de/function.imap-expunge.php

Es gehört also letztendlich zum Abschluss noch
PHP-Code:
imap_expunge($mbox); 
in deinem Code.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #7  
Alt 09.12.2013, 19:45:25
Sven4972 Sven4972 ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 51
Beiträge: 34
Sven4972 eine Nachricht über ICQ schicken Sven4972 eine Nachricht über Skype™ schicken
AW: Umbau eines Scriptes

Hallo,

ich bin jetzt erst dazu gekommen es zu testen.
Jetzt funktioniert alles so wie es soll.

Danke für Deine Hilfe.


LG Sven
Mit Zitat antworten
  #8  
Alt 22.12.2014, 10:42:25
richti007 richti007 ist offline
Anfänger
 
Registriert seit: Dec 2014
Alter: 42
Beiträge: 3
AW: Umbau eines Scriptes

Welche PHP-Version muss man installieren? Bei mir funktioniert es leider nicht.
Mit Zitat antworten
  #9  
Alt 22.12.2014, 12:51:16
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Umbau eines Scriptes

Funktioniert nicht, ist leider keine Fehlermeldung ;-)

Lt. php.net sind diese Funktionen sowohl in PHP4 als auch PHP5 vorhanden, sollten also in allen gängigen Versionen funktionieren.

Ein häufiger Fehler scheint mir zu sein, dass diese Funktionen auf POP3-Postfächer falsch angewandt werden.

Zitat:
Hinweis:

Für POP3 Postfächer kann das Löschen-Flag nicht serverseitig zwischen Verbindungen gespeichert werden, markierte Nachrichten müssen daher noch wärend der aktuellen Verbindung mit imap_expunge() entfernt werden, ansonsten bleiben sie ohne Löschmarkierung weiter erhalten.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #10  
Alt 31.12.2014, 14:08:51
richti007 richti007 ist offline
Anfänger
 
Registriert seit: Dec 2014
Alter: 42
Beiträge: 3
AW: Umbau eines Scriptes

Zitat:
Zitat von sysop Beitrag anzeigen
Funktioniert nicht, ist leider keine Fehlermeldung ;-)

Lt. php.net sind diese Funktionen sowohl in PHP4 als auch PHP5 vorhanden, sollten also in allen gängigen Versionen funktionieren.

Ein häufiger Fehler scheint mir zu sein, dass diese Funktionen auf POP3-Postfächer falsch angewandt werden.
Vielen Dank. Jetzt ist Alles OK. Danke :) !!!
__________________
Meiner VisitX EarForce Seite : http://www.px24-tb.com/visitx-plattform/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PR6 Link für Umbau auf PHP MYSQLi Abfrage Joschi MySQLi/PDO/(MySQL) 6 12.04.2010 01:20:10
Hilfe bei änderung eines "kleines" scriptes Black Snake PHP Grundlagen 21 18.11.2009 15:55:56
Name des aufrufende Scriptes dino-it PHP Grundlagen 2 21.02.2006 21:41:26
Anpassen eines Upload Scriptes - Bitte um Hilfe Natheedo PHP Grundlagen 0 31.01.2006 22:32:56
zeitmessen der ausführung eines scriptes Silenthil PHP Grundlagen 1 13.08.2003 07:27:06


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:23:37 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt