downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

imap_undelete> <imap_timeout
[edit] Last updated: Fri, 25 May 2012

view this page in

imap_uid

(PHP 4, PHP 5)

imap_uidRetourne l'UID d'un message

Description

int imap_uid ( resource $imap_stream , int $msg_number )

imap_uid() retourne l'UID pour le message msgno. Un UID est un identifiant unique que ne change jamais, alors que le numéro du message dans la liste des messages peut changer à toute modification de la boîte aux lettres.

C'est la fonction inverse de imap_msgno().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message.

Valeurs de retour

L'UID d'un message donné.

Notes

Note:

Cette fonctionnalité n'est pas supportée par les boîtes aux lettres POP3.

Voir aussi

  • imap_msgno() - Retourne le numéro de séquence du message pour un UID donné



imap_undelete> <imap_timeout
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes imap_uid
Maikel 14-Jul-2010 05:27
Be aware that the uid is unique in a single mailbox. That means a message can have as much uids as mailboxes
anon et mouse 28-Jan-2009 11:57
clarification for Andreas' note about imap_expunge()...

imap_expunge() does indeed change the UID, but only *after* the IMAP stream has closed and then reconnects.

You can use imap_expunge() as many times as you want within one IMAP stream (no reconnects) and the UID stays the same while the Msgno will change with imap_delete() followed by imap_expunge().
Andreas Seeger 24-Jul-2008 10:26
The uid will change in case of unsing imap_expunge. Be shure that
all work ist done before using imap_expunge.
roger at sdr dot com dot au 01-May-2008 07:34
A little quirk of UIDs in a PUBLIC folder in MDaemon (and perhaps other servers?). The UIDs may be unsynchronised between users if the server's option to store flags on a per-user basis is turned on. That is, a message may have a UID of 5 for one user (meaning it was the 5th message to enter the box) but 3 for another user (who perhaps subscribed to the box later). If this is a problem, turn off the per-user option for the mailbox.
steve_foley at excite dot com 04-Sep-2002 10:27
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
robert dot blanch at hsc dot utah dot edu 16-Jul-2002 07: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 01: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.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites