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
Last updated: Fri, 20 May 2011

view this page in

imap_uid

(PHP 4, PHP 5)

imap_uidEsta función devuelve el UID del número de secuencia del mensaje dado

Descripción

int imap_uid ( resource $imap_stream , int $msg_number )

Esta función devuelve el UID del número de secuencia del mensaje dado. Un UID es un identificador único que no cambiará durante el tiempo mientras que un número de secuencia de un mensaje puede cambiar si el contenido del buzón cambia.

Esta función es la inversa de imap_msgno().

Parámetros

imap_stream

IMAP stream devuelto por imap_open().

msg_number

El número de mensaje.

Valores devueltos

EL UID del mensaje dado.

Notas

Note:

Esta función no está soportada por buzones POP3.

Ver también

  • imap_msgno() - Obtiene el número de secuencia de mensaje para el UID dado



imap_undelete> <imap_timeout
Last updated: Fri, 20 May 2011
 
add a note add a note User Contributed Notes imap_uid
Maikel 15-Jul-2010 12: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 07: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 05: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 02-May-2008 02: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 05-Sep-2002 05: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 17-Jul-2002 02: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 08: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