Please note that message_id in the header is NOT the UID - and its dangerous to use as many mail progs don't put a message id in
imap_uid
(PHP 4, PHP 5)
imap_uid — Liefert die UID für die gegebene Nachrichtennummer
Beschreibung
int imap_uid
( resource
$imap_stream
, int $msg_number
)Diese Funktion liefert die UID für eine gegebene Nachrichtennummer. Eine UID ist ein eindeutiger Bezeichner für eine Nachricht der sich nicht mit der Zeit ändert während eine Nachrichtennummer sich bei jeder Veränderung des Postfachinhalts ändern kann. content of the mailbox changes.
Diese Funktion ist das Gegenstück zu imap_msgno().
Parameter-Liste
-
imap_stream -
Eine von imap_open() zurückgegebene IMAP-Verbindung.
-
msg_number -
Die Nachrichtennummer.
Rückgabewerte
Die UID der gewünschten Nachricht.
Anmerkungen
Hinweis:
Diese Funktion wird bei POP3 Postfächern nicht unterstützt.
imap_uid
steve_foley at excite dot com
05-Sep-2002 07:27
05-Sep-2002 07:27
robert dot blanch at hsc dot utah dot edu
17-Jul-2002 04:25
17-Jul-2002 04:25
Another way to get the UID without using imap_uid that works with pop3:
$header = imap_headerinfo( $mbox, $msgno );
$UID = $header->message_id;
20-Jun-2002 10:53
For those using a POP3 mailbox, this function, as noted, does not work.
One way around this is to use direct FTP communication with the mail server. For example, the following function takes a mailbox/password and message sequence number, and from this returns the message UID.
function fetch_UID($account, $password, $message_number)
{
$retval = 0;
$fp = fsockopen($POPMAILSERVER, 110);
if ($fp > 0)
{
$buf = fgets($fp, 1024);
fputs($fp, "USER $account\r\n");
$buf = fgets($fp, 1024);
fputs($fp, "PASS $password\r\n");
$buf = fgets($fp, 1024);
fputs($fp, "UIDL $message_number\r\n");
$retval=fgets($fp, 1024);
fputs($fp, "QUIT\r\n");
$buf = fgets($fp,1024);
fclose($fp);
}
return substr($retval,6,30);
}
Note: 110 is the TCP port commonly associated with a POP3 mailbox. Also the substr() function is used to trim the +OK and the message number from the beginning of the server's response.
I'm sure there are other (better) ways to do this. But after a fruitless search of the internet, this is what I came up with, and it seems to work for me.