php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.07.2006, 14:06  
Erfahrener Benutzer
 
Benutzerbild von JanM
 
Registriert seit: 22.12.2003
Beiträge: 788
PHP-Kenntnisse:
Fortgeschritten
JanM ist zur Zeit noch ein unbeschriebenes Blatt
Standard eMail Postfach funktion

PHP-Code:
  function pop3_2mysql($server$ktname$paswd$user
  { 
    
    
$mailbox imap_open("{".$server.":110/pop3}INBOX"$ktname$paswd,$user); 
    
$mails imap_fetch_overview($mailbox,"1:*"FT_UID); 
      

    
$size=count($mails); // 
    
$cmsg 0
    
    for(
$i=$size-1;$i>=0;$i--) 
    { 

        
$value         =        $mails[$i]; 
        
$content     =        imap_body($mailbox,$value->uidFT_UID); 
        
$hash        =        md5(time().mktime().rand(0,999999999));
        
$user_id    =        $user;
        
$time        =        time();
    
    
mysql_query("INSERT INTO `mysql_mailer` ( `id` , `absender` , `empfänger` , `betreff` , `sendedatum` , `msg_id` , `ref_id` , `size` , `get_stamp` , `hash` , `user_id` , `postfach` , `text` ) 
VALUES (
NULL , '"
.base64_encode($value->from)."', '".base64_encode($ktname)."', '".base64_encode($value->subject)."','".$value->date."', '".$value->_message_id."', '".$value->references."', '".$value->size."', '".$time."', '".$hash."', '".$user_id."', '1',  '".base64_encode($content)."'
);"
);
    
imap_delete ($mailbox$value->uid);
     
$cmsg++; 
    } 
      
imap_expunge ($mailbox);
    
imap_close($mailbox); 
      return 
$cmsg;
  } 
Ich habe mir die obenstehende Funktion gebastelt, um die eMails meines pop3 Postfachs in meine MySQL datenbank zuschreiben.

Mir ist nun aufgefallen, das wenn ich meine eMails z.B. mit Opera empfange, dass diese dann nicht gelöscht werden, sondern ich sie dann noch mit anderen Programmen empfangen kann.

Meine frage ist nun was müsste ich machen bzw welche funktion nutzen um dem script zu sagen das es die eMails nicht löschen muss um sie nicht zweimal zu empfangen.

Das unter dem Punkt, dass dieses auf Trafficsparend sein soll
JanM ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.07.2006, 18:00  
Gast
 
Beiträge: n/a
Standard

Handbuch lesen:
Zitat:
Die imap_delete() Funktion merkt die mit msg_number angegebene Nachricht des aktuellen Postfachs zum Löschen vor. Enthält der optionale Parameter flags den Wert FT_UID, so wird der Parameter msg_number als UID interpretiert. Die Nachricht verbleibt zunächst noch im Postfach, endgültig gelöscht wird sie (zusammen mit allen anderen entsprechend markierten Nachrichten) durch Aufruf der Funktion imap_expunge() oder durch imap_close() mit dem optionalen Flag CL_EXPUNGE.
 
Alt 13.07.2006, 18:22  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Wer lesen kann, ist klar im Vorteil.
Das deutsche Manual zeichnete sich noch nie durch Vollständigkeit aus.

http://de.php.net/manual/en/function.imap-delete.php
Zitat:
Note: POP3 mailboxes do not have their message flags saved between connections, so imap_expunge() must be called during the same connection in order for messages marked for deletion to actually be purged.
Kurz übersetzt heisst das, dass diese Funktion für POP3 praktisch unbrauchbar ist, da es ja darum geht, eine Mail über mehrere Verbindungen zu erhalten.


Die Mails nicht zweimal zu empfangen ist einfach Arbeit, man muss sich halt merken, welche Mails man schon hat, und diese nicht nochmal holen. Irgendeine ID, die Unique ist, wird sich doch finden
Und damit die Mails erstmal nicht gelöscht werden, ist wohl FT_PEEK da, also bei imap_body:
$content = imap_body(... , ... , FT_PEEK & FT_UID)
Und das imap_delete() sollte man sich natürlich sparen, wenn man nicht löschen will
Waq ist offline  
Alt 13.07.2006, 18:40  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Thread verschoben...
xabbuh ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
Abfrage ob email adresse schon vorhanden ist TeazY PHP Tipps 2008 10 16.12.2007 12:22
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Email aus PHP-Seite senden ohne "mail" Funktion PHP Tipps 2007 9 28.12.2005 14:53
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
email versenden mit funktion mail() PHP Tipps 2005 6 20.05.2005 17:38
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
email funktion des phpbb selbst benutzen PHP Tipps 2004 0 22.09.2004 13:18
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
email schreiben mit der Funktion mail() PHP Tipps 2004 4 01.07.2004 13:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/41189-email-postfach-funktion.html, jobbörse postfach funktion, php email postfach, postfachfunktion jobbörse, php imap_delete ft_uid funktioniert nicht, .$server.\:110/pop3, php vor imap_open prüfen, imap_open use hash, jobbörse postfachfunktion, ft_peek, ft_uid, wie kann ich die postfachfunktion nutzen

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.