PHP 8.1.28 Released!


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

imap_uidLiefert die UID für die gegebene Nachrichtennummer


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

Diese Funktion gibt die UID für die angegebene Nachrichtennummer zurück. 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.

Diese Funktion ist das Gegenstück zu imap_msgno().



Eine IMAP\Connection-Instanz.


Die Nummer der Nachricht


Gibt die UID der gewünschten Nachricht zurück.


Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine gültige imap-Ressource erwartet.



Diese Funktion wird von POP3-Postfächern nicht unterstützt.

Siehe auch

  • imap_msgno() - Liefert die Nummer einer Nachricht für eine gegebene UID

add a note

User Contributed Notes 7 notes

Denis Rendler
8 years ago
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.
13 years ago
Be aware that the uid is unique in a single mailbox. That means a message can have as much uids as mailboxes
steve_foley at excite dot com
21 years ago
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
Andreas Seeger
15 years ago
The uid will change in case of unsing imap_expunge. Be shure that
all work ist done before using imap_expunge.
cmanley at example dot com
6 years ago
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:
anon et mouse
15 years ago
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().
roger at sdr dot com dot au
15 years ago
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.
To Top