imap_uid

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_uidThis function returns the UID for the given message sequence number

说明

imap_uid ( IMAP\Connection $imap , int $message_num ) : int|false

This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes.

This function is the inverse of imap_msgno().

参数

imap

An IMAP\Connection instance.

message_num

The message number.

返回值

The UID of the given message.

更新日志

版本 说明
8.1.0 The imap parameter expects an IMAP\Connection instance now; previously, a 资源(resource) was expected.

注释

Note:

This function is not supported by POP3 mailboxes.

参见

  • imap_msgno() - Gets the message sequence number for the given UID

User Contributed Notes

cmanley at example dot com 05-Jan-2018 04:32
If you want emulated POP3 UIDL support, then you can either use my imap function wrapper class, or just copy/modify it's header to UIDL hashing method:
https://github.com/cmanley/PHP-IMAP-Client/
Denis Rendler 12-Aug-2015 09:42
I would like to point out that, at least in the case of Gmail, the UIDs of emails are changed if they are moved from one folder to another. Even if moved back to the same folder the UIDs get incremented and thus changed.
I found this the hard way after relaying on the notion that UIDs do not change as I found almost everywhere in the docs.
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
PHP8中文手册 站长在线 整理 版权归PHP文档组所有