imap_msgno

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

imap_msgno指定した UID のメッセージ番号を返す

説明

imap_msgno(IMAP\Connection $imap, int $message_uid): int

指定した message_uid のメッセージ番号を返します。

この関数は、imap_uid() の逆の動作となります。

パラメータ

imap

IMAP\Connection クラスのインスタンス。

message_uid

メッセージの UID。

戻り値

指定した message_uid のメッセージ番号を返します。

変更履歴

バージョン 説明
8.1.0 引数 imap は、IMAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な imap リソース が期待されていました。

参考

  • imap_uid() - 指定したメッセージシーケンス番号の UID を返す

add a note add a note

User Contributed Notes 3 notes

up
0
phpdocu at malli dot co dot at
2 years ago
Here is a simple working snippet to properly check the return value of imap_msgno():

$id = imap_msgno($imapConnection, $mailUid); //convert to normal messagenumber in current context
$verifyUid = imap_uid($imapConnection, $id);
if ($verifyUid != $mailUid)
  throw new Exception("Attention: imap_msgno returned nonsense!  The mail was probably not found in the mailbox!");
up
-1
os at simonconsulting dot at
13 years ago
For me, this function returns FALSE if uid does not match a message in the current mailbox.
up
-1
dcridland.at.redwire.com
23 years ago
<p>Note that imap_msgno() doesn't ever give you an error message. So, assuming you're passing about message numbers as a UID, be warned that:</p>
<p>$msguid = false;<br>
$msgno = imap_msgno( $your_initialized_connection, $msguid );</p>
<p>Will leave ($msgno==1) - this is probably not what you want, and it's surprisingly easy to miss while you're doing the basic testing.</p>
To Top