Welche Funktion für Zugriff auf POP3-Fach?
Hans
- php
0 Benedikt Loepp0 Hans0 Lemmy Danger0 Hans0 Lemmy Danger0 Hans0 Lemmy Danger0 Hans0 Lemmy Danger0 Hans
Hi,
ich möchte einen POP3-Webmailer programmieren... Mit welcher Funktion greife ich auf eine POP3-Fach zu? auf php.net habe ich nur die IMAP-Funktionen wie imap_open etc. gefunden, und die funktionieren unter Umständen nicht...
Mfg Hans
Hallo,
also ich mach das mit den IMAP-Funktionen - hatte da auch noch nie Probs mit.
Wenn nicht kannste dir das ganze mit fsockopen() und so selbst schreiben.
cu Benedikt Loepp
Hi,
danke erstmal...
aber wie kann ich damit auf ein POP-Fach zugreifen?
Könnte ich vielleicht dein eigenes Webmailer-Script mal einsehen?
Mfg Hans
Guude!
aber wie kann ich damit auf ein POP-Fach zugreifen?
Wei Benedikt schon sagte: Mit fsockopen() (sofern diese Funktion bei Deinem Host nicht deaktiviert wurde). Damit baust Du eine Socketverbindung zu Deinem POP3-Server auf und steuerst ihn dann mit POP3-Befehlen:
USER user und PASS password (Anmeldung),
LIST (Auflistung aller Nachrichten),
RETR 1 (Lesen der 1. Nachricht),
DELE 1 (Löschen der 1. Nachricht),
RSET (Gelöschte Dateien wiederherstellen),
QUIT (Beenden, und damit die gelöschten Nachrichten endgültig löschen).
LG ausm Hesseland
Lemmy
Hi,
danke ersmtal!
Nehmen wir mal an, ich habe mich mitfsockopen() "eingeloggt", wie "sende"
ich dann den Befehl USER an das Postfach?
Danke schonmal,
Hans
Guude!
Nehmen wir mal an, ich habe mich mitfsockopen() "eingeloggt", wie "sende"
ich dann den Befehl USER an das Postfach?
Hast Du Dein Socket $socket = fsockopen($server, $port) eingerichtet, kannst Du es quasi wie eine Datei nutzen: fputs($socket, "USER hansmeier@web.de\n"); Beachte dabei, dass jeder Request an den POP3-Server mit einem Zeilenumbruch enden muss. Mit fgets() kannst Du dann die Antwort auslesen.
LG ausm Hesseland
Lemmy
Hi,
danke nochmal...
Hast Du Dein Socket $socket = fsockopen($server, $port) eingerichtet, kannst Du es quasi wie eine Datei nutzen: fputs($socket, "USER hansmeier@web.de\n"); Beachte dabei, dass jeder Request an den POP3-Server mit einem Zeilenumbruch enden muss. Mit fgets() kannst Du dann die Antwort auslesen.
Wo setze ich dann das Passwort ein?
Mfg Hans
Guude!
Wo setze ich dann das Passwort ein?
Wie? Naja, sobald Du per Socket verbunden bist, musst Du erst den USER-Befehl absetzen und direkt danach PASS (wie das geht steht in meinem vorherigen Post: mit fputs()). Eine POP3-Sitzung könnte bspw. so aussehen (alles mit '+' am Anfang ist die Antwort des Servers):
+OK Welcome
USER mein_username // Anmelden
+OK Password required
PASS mein_passwort // Authentifizieren
+OK logged in
LIST // Alle Mails auflisten
+OK POP3 clients that break here, they violate STD53.
1 3425 // An diese Nachricht käme ich z.B. mit RETR 1
2 5643
3 6754
QUIT // Sitzung beenden
+OK Bye bye
LG ausm Hesseland
Lemmy
Hi,
danke nochmal...
Ich wollte eine Weboberfläche draus machen, wie bekomme ich email-Daten (z.B. Absender)?
Danke,
Hans
Guude!
Ich wollte eine Weboberfläche draus machen,
Das hab ich mir irgendwie schon gedacht...
wie bekomme ich email-Daten (z.B. Absender)?
Ruft mal Deine Mails ab, so, wie ich es Dir beschrieben habe, und laß Dir den Text in einer Textarea ausgeben. Dann siehst Du, wonach Du filtern musst, je nachdem welche Informationen Dich interessieren. Ein Tipp noch: jede Zeile endet mit \n und das Ende des Headers markiert eine Leerzeile.
Ich denke, mit meinen Hinweisen und ein bißchen Kenntnis über String-Operationen in PHP solltest Du in der Lage sein, eine eigene Webmail-Seite zu basteln...
LG ausm Hesseland
Lemmy
Hi,
danke nochmal :-)
wahrscheinlich letztes Problem:
mit den Anweisungen:
LIST bekommen ich die Meldung:
+OK pop.******* has 2 messages (1915 octets).
+OK 2 messages (1915 octets)
mit RETR 1
die Meldung:
1 779
Ich kann die Mail aber nicht lesen oder so...
Was habe ich verkehrt gemacht?
Danke,
Hans