Imap

Hi,
ich habe 2 kleine Fragen zu IMAP,
ich habe mir zu Testzwecken ein kleines Formular gebastelt, welches meine Mails auflistet:

$mail=array();
$mailbox = "{pop.1und1.de/pop3:110}INBOX";
$username = "user";
$password = "password";


$MailboxPointer = imap\_open($mailbox, $username, $password);
imap\_sort($MailboxPointer, SORTARRIVAL, 0);

if($MailboxPointer)
{

$check = imap\_check ($MailboxPointer);
if($check) {
$count=$check-\>Nmsgs;
...

Soweit klappt das ganz gut,
jedoch bekomme ich nur die Mails aus der Inbox, aber nicht aus dem Unterordner angezeigt.
Habe schon verschiedenes versucht, aber es gelingt mir einfach nicht.
Hat jemand vielleicht ne Idee?

Desweiteren, fände ich es momentan noch besser, wenn die aufgelisteten Mails nicht als gelesen markiert werden,
geht das? Wenn ja, wie?

Vielleicht hat ja jemand noch nen guten Link mit Tutorials und Befehlen zu IMAP? php.net ist zwar ganz gut, aber leider sehr aufwändig passendes zu finden.

Danke und Gruß

Marcel

Hallo,

Soweit klappt das ganz gut,
jedoch bekomme ich nur die Mails aus der Inbox, aber nicht aus
dem Unterordner angezeigt.
Habe schon verschiedenes versucht, aber es gelingt mir einfach
nicht.
Hat jemand vielleicht ne Idee?

Statt POP3 wirklich IMAP verwenden,

$mailbox = „{pop.1und1.de/pop3:110}INBOX“;

wählt als Protokoll POP3, das kann keine Unterordner.
Stattdessen solltest du dort per IMAP zugreifen, wenn du kein SSL/TLS haben möchtest, das /notls nicht vergessen, siehe imap_open auf php.net.
Dann entweder weiter mit search (alle auf neue durchsuchen) oder lsub (Ordner listen) und jeweils reopen, um die Mails pro Ordner zu bekommen.

Desweiteren, fände ich es momentan noch besser, wenn die
aufgelisteten Mails nicht als gelesen markiert werden,
geht das? Wenn ja, wie?

FT_PEEK beim Abrufen mit den fetch_* Funktionen als Parameter. POP3 kann das aber soweit ich weiss nicht…

Vielleicht hat ja jemand noch nen guten Link mit Tutorials und
Befehlen zu IMAP? php.net ist zwar ganz gut, aber leider sehr
aufwändig passendes zu finden.

Habe ich leider gerade keinen…

Alexander

Hi alx,

Statt POP3 wirklich IMAP verwenden,

Ok, klingt logisch und die Unterordner konnte ich schon auflisten.

Dann entweder weiter mit search (alle auf neue durchsuchen)

Also ich habe mal

$tmp = imap\_search ( $MailboxPointer, "SEEN");
print\_r ($tmp);

genommen,
bekomme aber als ergebnis nur die 25 Mails angezeigt, die in der INBOX (oberster Ordner) aufgeführt werden.
Das ganze sieht dann auch nur so aus:

Array ( [0] =\> 1 [1] =\> 2 [2] =\> 3 [3] =\> 4 [4] 

FT_PEEK beim Abrufen mit den fetch_* Funktionen als Parameter.

Das werde ich mir dann später mal ansehen.
Momentan kämpfe ich noch mit den ganzen Begriffen der IMAP Syntax und versuche rauszufinde was, was zu bedeuten hat…

Aber somit bin ich schonmal nen guten Schritt weiter.

Danke

Gruß

marcel

Hi Marcel,

Hi alx,

Statt POP3 wirklich IMAP verwenden,

Ok, klingt logisch und die Unterordner konnte ich schon
auflisten.

Dann entweder weiter mit search (alle auf neue durchsuchen)

Also ich habe mal

$tmp = imap_search ( $MailboxPointer, „SEEN“);
print_r ($tmp);

genommen,
bekomme aber als ergebnis nur die 25 Mails angezeigt, die in
der INBOX (oberster Ordner) aufgeführt werden.

Leider mein Fehler, habe gerade mal nachgeschaut, imap_search sucht auch nur in der aktuellen Mailbox, d.h. am durchgehen der Ordner per Schleife und reopen führt kein Weg vorbei…

Das ganze sieht dann auch nur so aus:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4]

Die Zahl (die nicht fortlaufend sein muss) ist die Nummer der Nachricht, diese kann man dann bei fetchheader u. fetchbody/body angeben.

FT_PEEK beim Abrufen mit den fetch_* Funktionen als Parameter.

Das werde ich mir dann später mal ansehen.
Momentan kämpfe ich noch mit den ganzen Begriffen der IMAP
Syntax und versuche rauszufinde was, was zu bedeuten hat…

Du solltest schon fast alle nötigen Funktionen zusammen haben… das, was noch erwähnenswert weil etwas hässlich ist, ist die Angabe der Part-Nummer in fetchbody, falls du die einzelnen Teile von Mails mit Anhängen / HTML getrennt behandeln willst. Da gibt es in den Benutzerkommentaren unten ein Stück Code, mit dem man gezielt den Plaintext bzw. den HTML-Teil anrufen kann. Ansonsten musst du da noch mit imap_fetchstructure arbeiten, um die einzelnen Teile der Nachricht zu bekommen.
Willst du nur den Text insgesamt, imap_body nehmen…

Alexander

Hi,

Leider mein Fehler, habe gerade mal nachgeschaut, imap_search
sucht auch nur in der aktuellen Mailbox, d.h. am durchgehen
der Ordner per Schleife und reopen führt kein Weg vorbei…

Achso, also ist in diesem Zusammenhang mit Mailbox der Ordner gemeint, hatte immer gedacht Mailbox wären alle Mails unter dieser Adresse…

Werde mich dann später mal daran machen, denke damit komme ich weiter.

Besten Dank

Gruß

Marcel