Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: imap_uid - Manual
[go: Go Back, main page]

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

search for in the

imap_undelete" width="11" height="7"/> <imap_timeout
Last updated: Mon, 05 Feb 2007

view this page in

imap_uid

(PHP 4, PHP 5)

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

説明

int imap_uid ( resource imap_stream, int msg_number )

この関数は、指定したメッセージシーケンス番号の UID を返します。 メッセージ番号はメールボックスの内容を変更する度に変わる可能性が ありますが、UID はユニークな ID であり時間が経過しても変わりません。

この関数は、imap_msgno() の逆関数です。

パラメータ

imap_stream

imap_open() が返す IMAP ストリーム。

msg_number

メッセージ番号。

返り値

指定したメッセージの UID を返します。

注意

注意: この関数は、POP3 メールボックスではサポートされません。

参考

imap_msgno()



add a note add a note User Contributed Notes
imap_uid
steve_foley at excite dot com
05-Sep-2002 02: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 11:25
Another way to get the UID without using imap_uid that works with pop3:

$header = imap_headerinfo( $mbox, $msgno );
$UID = $header->message_id;
21-Jun-2002 05: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.

imap_undelete" width="11" height="7"/> <imap_timeout
Last updated: Mon, 05 Feb 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites