PHP4手册:函数库及函数(二十) IMAP 电子邮件系统函式库


--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
--------------------------------------------------------------------------------
本函式库共有 46 个函式
IMAP 的全名是 Internet Message Access Protocol,即网际网路讯息存取协定,为美国史丹福大学 (Stanford University) 在 1986 年开始研发的多重邮箱电子邮件系统。PHP 所提供的功能是 IMAP 4 的系统,这是根据 RFC 1730 所实作的。更多有关 IMAP 的资讯可以参考 IMAP 的官方网站 http://www.imap.org。
欲使用 IMAP 的电子邮件功能,要先到 ftp://ftp.cac.washington.edu/imap 下载 IMAP 的客户端程式。在编译完成之后将 c-client/c-client.a 复制到 /usr/local/lib 之中,并将 c-client/rfc822.h、mail.h 及 linkage.h 三个档案复制到 /usr/local/include 之下。之后编译 PHP 程式时要加入 --with-imap 的选项。
imap_append: 附加字串到指定的邮箱中。
imap_base64: 解 BASE64 编码。
imap_body: 读信的内文。
imap_check: 传回邮箱资讯。
imap_close: 关闭 IMAP 连结。
imap_createmailbox: 建立新的信箱。
imap_delete: 标记欲删除邮件。
imap_deletemailbox: 删除既有信箱。
imap_expunge: 删除已标记的邮件。
imap_fetchbody: 从信件内文取出指定区段。
imap_fetchstructure: 获取某信件的结构资讯。
imap_header: 获取某信件的标头资讯。
imap_headers: 获取全部信件的标头资讯。
imap_listmailbox: 获取邮箱列示。
imap_listsubscribed: 获取订阅邮箱列示。
imap_mail_copy: 复制指定信件到它处邮箱。
imap_mail_move: 移动指定信件到它处邮箱。
imap_num_msg: 取得信件数。
imap_num_recent: 取得新进信件数。
imap_open: 开启 IMAP 连结。
imap_ping: 检查 IMAP 是否连线。
imap_renamemailbox: 更改邮箱名字。
imap_reopen: 重开 IMAP 连结。
imap_subscribe: 订阅邮箱。
imap_undelete: 取消删除邮件标记。
imap_unsubscribe: 取消订阅邮箱。
imap_qprint: 将 qp 编码转成八位元。
imap_8bit: 将八位元转成 qp 编码。
imap_binary: 将八位元转成 base64 编码。
imap_scanmailbox: 寻找信件有无特定字串。
imap_mailboxmsginfo: 取得目前邮箱的资讯。
imap_rfc822_write_address: 电子邮件位址标准化。
imap_rfc822_parse_adrlist: 剖析电子邮件位址。
imap_setflag_full: 设定信件旗标。
imap_clearflag_full: 清除信件旗标。
imap_sort: 将信件标头排序。
imap_fetchheader: 取得原始标头。
imap_uid: 取得信件 UID。
imap_getmailboxes: 取得全部信件详细资讯。
imap_getsubscribed: 列出所有订阅邮箱。
imap_msgno: 列出 UID 的连续信件。
imap_search: 搜寻指定标准的信件。
imap_last_error: 最后的错误讯息。
imap_errors: 所有的错误讯息。
imap_alerts: 所有的警告讯息。
imap_status: 目前的状态资讯。
--------------------------------------------------------------------------------
函式:imap_append()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_append
附加字串到指定的邮箱中。
语法: int imap_append(int imap_stream, string mbox, string message, string [flags]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可在指定的电子邮箱中增加附加的字串。参数 imap_stream 为 IMAP 的代号。参数 mbox 为电子邮箱的位址。参数 message 为欲附加的讯息。参数 flag 为可省略的旗标,表示电子邮箱的旗标值。值得注意的是要与 Cyrus IMAP 伺服器沟通时,应使用 \r\n 作为行结束字元 (end-of-line, EOL)。若有错误则传回 false 值。
函式:imap_base64()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_base64
解 BASE64 编码。
语法: string imap_base64(string text);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可将用 BASE64 编码字串解码。传回值是解码后的字串。
参考
imap_binary() base64_encode() base64_decode()
--------------------------------------------------------------------------------
函式:imap_body()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_body
读信的内文。
语法: string imap_body(int imap_stream, int msg_number, int [flags]);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可读取信件的内文 (body) 部份。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。参数 flags 可省略,有下列的值
FT_UID : 信件序号为 UID。
FT_PEEK : 若无设定 \Seen 旗标则不要设本旗标。
FT_INTERNAL : 传回字串使用系统格式,不要刻意转成 CRLF 行结束标准。
使用范例
本例利用 IMAP 协定读取 myid@localhost 的第一封信件。
$mbox = imap_open("{localhost:143}INBOX","myid","mypw");
$message = imap_body($mbox, 1);
imap_close($mbox);
echo $message;
?>
--------------------------------------------------------------------------------
函式:imap_check()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_check
传回邮箱资讯。
语法: object imap_check(int imap_stream);
传回值: 物件
函式种类: 网路系统
内容说明
本函式可取得目前电子邮箱的资讯。传回值为物件型态,包含下面的属性
物件属性 代表意义说明
Date 最新邮件的日期
Driver 使用的介面
Mailbox 电子邮箱网址
Nmsgs 总邮件数目
Recent 新进邮件数目
参考
imap_mailboxmsginfo()
--------------------------------------------------------------------------------
函式:imap_close()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_close
关闭 IMAP 连结。
语法: int imap_close(int imap_stream, int [flags]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来关闭 IMAP 的资料流,亦即结束连结。可省略的参数 flags 的值若为 CL_EXPUNGE 则在关闭连结前会将电子邮件信箱清空。
--------------------------------------------------------------------------------
函式:imap_createmailbox()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_createmailbox
建立新的信箱。
语法: int imap_createmailbox(int imap_stream, string mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来建立新的信箱。成功则传回 true 值。
--------------------------------------------------------------------------------
函式:imap_delete()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_delete
标记欲删除邮件。
语法: int imap_delete(int imap_stream, int msg_number);
传回值: 整数
函式种类: 网路系统
内容说明
本函式仅用来标记欲删除之邮件。实际删除的指令 imap_expunge()
--------------------------------------------------------------------------------
函式:imap_deletemailbox()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_deletemailbox
删除既有信箱。
语法: int imap_deletemailbox(int imap_stream, string mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来删除既有的信箱。成功则传回 true 值。
--------------------------------------------------------------------------------
函式:imap_expunge()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_expunge
删除已标记的邮件。
语法: int imap_expunge(int imap_stream);
传回值: 整数
函式种类: 网路系统
内容说明
本函式用来删除已加入删除标记的邮件。欲标记邮件须使用 imap_delete() 函式。
--------------------------------------------------------------------------------
函式:imap_fetchbody()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_fetchbody
从信件内文取出指定区段。
语法: string imap_fetchbody(int imap_stream, int msg_number, string part_number, flags [flags]);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可读取信件的内文 (body) 部份。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。参数 part_number 为指定的区段。参数 flags 可省略,有下列的值
FT_UID : 信件序号为 UID。
FT_PEEK : 若无设定 \Seen 旗标则不要设本旗标。
FT_INTERNAL : 传回字串使用系统格式,不要刻意转成 CRLF 行结束标准。
--------------------------------------------------------------------------------
函式:imap_fetchstructure()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_fetchstructure
获取某信件的结构资讯。
语法: array imap_fetchstructure(int imap_stream, int msg_number);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式可读取指定信件的相关资讯。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。传回的资讯为阵列的方式,各元素的内容见下表
元素名称 型态
type 整数 (Integer)
encoding 整数 (Integer)
ifsubtype 布林 (Boolean)
subtype 字串 (String)
ifdescription 布林 (Boolean)
description 字串 (String)
ifid 布林 (Boolean)
id 字串 (String)
lines 整数 (Integer)
bytes 整数 (Integer)
ifparameters 布林 (Boolean)
其中 type 元素的值代表的意义如下
值 代表意义
0 文字 text
1 复合 multipart
2 讯息 message
3 程式 application
4 声音 audio
5 图形 image
6 影像 video
7 其它 other
而 encoding 值代表的意义如下
值 代表意义
0 七位元 (7 bit)
1 八位元 (8 bit)
2 二进位 (binary)
3 BASE64 编码
4 QP 编码 (QuotedPrintable)
5 其它
--------------------------------------------------------------------------------
函式:imap_header()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_header
获取某信件的标头资讯。
语法: object imap_header(int imap_stream, int msg_number, int [fromlength], int [subjectlength], int [defaulthost]);
传回值: 物件
函式种类: 网路系统
内容说明
本函式可读取指定信件的标头资讯。参数 msg_number 为信件的序号。传回物件有下列的属性:Answered、bcc、bccaddress、cc、ccaddress、Date、date、Deleted、fetchfrom、fetchsubject、Flagged、followup_to、from、fromaddress、in_reply_to、MailDate、message_id、Msgno、newsgroups、Recent、references、remail、reply_to、reply_toaddress、return_path、return_pathaddress、sender、senderaddress、Size、Subject、subject、to、toaddress、udate、Unseen。
--------------------------------------------------------------------------------
函式:imap_headers()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_headers
获取全部信件的标头资讯。
语法: array imap_headers(int imap_stream);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式可读取全部信件的标头资讯。参数 imap_stream 为 IMAP 的代号。传回的阵列一个元素为某一封信的标头。
使用范例
$mb = imap_open("{my.imap.com.tw}INBOX", "wilson", "mypasswd");
$AllHeaders = imap_headers($mb);
imap_close($mb);
echo "
\n";
for ($i=0; $i < count($AllHeaders); $i++) {
echo $AllHeaders[$i]."--------------------------------------------------------------------------------\n";
}
echo "
\n";
?>
--------------------------------------------------------------------------------
函式:imap_listmailbox()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_listmailbox
获取邮箱列示。
语法: array imap_listmailbox(int stream_id, string ref, string pattern);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式可获得邮箱列示。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 伺服器名称,参考下例。参数 pattern 可用万用字元 * 代表全部的路径,aayawa@yahoo.com 并指出 (27-Apr-1999) 若本参数以 "" (空字元) 代入,不会传回资料。
使用范例
本例为 alank@shermanloan.com 于 02-Jun-1999 所提出的。
$Account = "myid";
$Password= "mypasswd";
$mailbox = imap_open("{mail.xyz.com:143}INBOX", $Account, $Password);
if ($mailbox) {
$mailboxes = imap_listmailbox($mailbox, "{mail.xyz.com:143}", "*");
for ($index = 0; $index < count($mailboxes); $index++) {
print($mailboxes[$index] . "\n");
}
imap_close($mailbox);
} else {
print("无法?/font>}启 $Account 的信箱.\n");
}
?>
--------------------------------------------------------------------------------
函式:imap_listsubscribed()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_listsubscribed
获取订阅邮箱列示。
语法: array imap_listsubscribed(int stream_id, string ref, string pattern);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式可获得订阅邮箱 (subscribed) 列示。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 伺服器名称。参数 pattern 可用万用字元 * 代表全部的路径。
参考
imap_listmailbox() imap_subscribe() imap_unsubscribe()
--------------------------------------------------------------------------------
函式:imap_mail_copy()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_mail_copy
复制指定信件到它处邮箱。
语法: int imap_mail_copy(int imap_stream, string msglist, string mbox, int [flags]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式复制指定的信件到指定的邮箱 (mailbox) 之中。参数 imap_stream 为 IMAP 的代号。参数 msglist 可以是信件号序,也可以是范围。参数 mbox 为复制的目的邮箱。参数 flags 可省略,有二种选择 CP_UID,CP_MOVE。
--------------------------------------------------------------------------------
函式:imap_mail_move()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_mail_move
移动指定信件到它处邮箱。
语法: int imap_mail_move(int imap_stream, string msglist, string mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函式移动指定的信件到指定的邮箱 (mailbox) 之中。参数 imap_stream 为 IMAP 的代号。参数 msglist 可以是信件号序,也可以是范围。参数 mbox 为移动的目的邮箱。
--------------------------------------------------------------------------------
函式:imap_num_msg()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_num_msg
取得信件数。
语法: int imap_num_msg(int imap_stream);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可取得邮箱 (mailbox) 的信件数。参数 imap_stream 为 IMAP 的代号。
--------------------------------------------------------------------------------
函式:imap_num_recent()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_num_recent
取得新进信件数。
语法: int imap_num_recent(int imap_stream);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可取得邮箱 (mailbox) 的新进未读信件数。参数 imap_stream 为 IMAP 的代号
--------------------------------------------------------------------------------
函式:imap_open()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_open
开启 IMAP 连结。
语法: int imap_open(string mailbox, string username, string password, int [flags]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可打开客户端与伺服器之间的 IMAP 连结,并可连结至 POP3 或 NNTP 伺服器。参数 mailbox 为伺服器端的位置。参数 username 为使用者帐号。参数 password 为使用者的密码。参数 flags 可省略,有下列的值:
OP_READONLY : 打开连结使用唯读状态。
OP_ANONYMOUS : 匿名读取 NNTP 伺服器,不使用 .newsrc 档案。
OP_HALFOPEN : 只与 IMAP 或 NNTP 伺服器连结,不开启邮箱。
CL_EXPUNGE : 关闭连结时自动清除邮箱中的信件。
使用范例
下例分别为开启 IMAP、POP3、NNTP 的部份参考范例
$mbox = imap_open("{localhost:143}INBOX","user_id","password");
?/font>}启与 IMAP 伺服器连结,IMAP 的埠 (port) 通?/font>`为 143。
$mbox = imap_open("{localhost/pop3:110}INBOX","user_id","password");
\\ ?/font>}启与 POP3 伺服器连结,POP3 的埠值为 110。
$nntp = imap_open("{localhost/nntp:119}comp.test","","");
\\ ?/font>}启与 NNTP 伺服器连结,NNTP 的埠为 119。
?>
--------------------------------------------------------------------------------
函式:imap_ping()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_ping
检查 IMAP 是否连线。
语法: int imap_ping(int imap_stream);
传回值: 整数
函式种类: 网路系统
内容说明
本函用来检查与 IMAP 伺服器的连线状态。参数 imap_stream 为 IMAP 的代号。若仍然保持与 IMAP 伺服器连线则传回 true 值。
--------------------------------------------------------------------------------
函式:imap_renamemailbox()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_renamemailbox
更改邮箱名字。
语法: int imap_renamemailbox(int imap_stream, string old_mbox, string new_mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函用来更改邮箱 (mailbox) 的名字。参数 imap_stream 为 IMAP 的代号。参数 old_mbox 及 new_mbox 分别为原邮箱名字及欲更换成的新邮箱名字。更换成功则传回 true 值。
--------------------------------------------------------------------------------
函式:imap_reopen()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_reopen
重开 IMAP 连结。
语法: int imap_reopen(string imap_stream, string mailbox, string [flags]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可重新开启客户端与伺服器之间的 IMAP 连结。本函式通常与 imap_ping() 函式合用。参数 mailbox 为伺服器端的位置。参数 flags 可省略,有下列的值:
OP_READONLY : 打开连结使用唯读状态。
OP_ANONYMOUS : 匿名读取 NNTP 伺服器,不使用 .newsrc 档案。
OP_HALFOPEN : 只与 IMAP 或 NNTP 伺服器连结,不开启邮箱。
CL_EXPUNGE : 关闭连结时自动清除邮箱中的信件。
使用范例
$userid = "nulluser";
$passwd = "passwd38";
$mb = imap_open("(imap.null.org)INBOX", $userid, $passwd);
if (!imap_ping($mb)) {
imap_reopen($mb, $userid, $passwd);
}
imap_close($mb);
?>
--------------------------------------------------------------------------------
函式:imap_subscribe()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_subscribe
订阅邮箱。
语法: int imap_subscribe(int imap_stream, string mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可订阅新邮箱 (mailbox)。
--------------------------------------------------------------------------------
函式:imap_undelete()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_undelete
取消删除邮件标记。
语法: int imap_undelete(int imap_stream, int msg_number);
传回值: 整数
函式种类: 网路系统
内容说明
本函式将标记欲删除邮件取消。标记欲删除邮件需使用 imap_delete()。参数 msg_number 代表邮件的流水序号。
--------------------------------------------------------------------------------
函式:imap_unsubscribe()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_unsubscribe
取消订阅邮箱。
语法: int imap_unsubscribe(int imap_stream, string mbox);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可取消订阅新邮箱 (mailbox)。
--------------------------------------------------------------------------------
函式:imap_qprint()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_qprint
将 qp 编码转成八位元。
语法: string imap_qprint(string string);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可将 QP (quoted-printable) 编码字串转成八位元字串。
参考
quoted_printable_decode() imap_8bit()
--------------------------------------------------------------------------------
函式:imap_8bit()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_8bit
将八位元转成 qp 编码。
语法: string imap_8bit(string string);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可将八位元字串转成 QP (quoted-printable) 编码字串。
参考
quoted_printable_decode() imap_qprint()
--------------------------------------------------------------------------------
函式:imap_binary()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_binary
将八位元转成 base64 编码。
语法: string imap_binary(string string);
传回值: 字串
函式种类: 网路系统
内容说明
本函式将字串转成 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网路上顺利传输。更多的 BASE64 编码资讯可以参考 RFC2045 文件之 6.8 节或是 base64_encode()。
参考
imap_base64() base64_decode() chunk_split()
--------------------------------------------------------------------------------
函式:imap_scanmailbox()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_scanmailbox
寻找信件有无特定字串。
语法: array imap_scanmailbox(int imap_stream, string ref, string pattern, string content);
传回值: 阵列
函式种类: 网路系统
内容说明
本函用来检查与 IMAP 伺服器信件中有无特定的字串。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 伺服器名称,如 "{mail.wahaha.com:143}"。参数 pattern 为剖析比对字串的规则。参数 content 则为欲寻找的字串内容。
--------------------------------------------------------------------------------
函式:imap_mailboxmsginfo()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_mailboxmsginfo
取得目前邮箱的资讯。
语法: object imap_mailboxmsginfo(int imap_stream);
传回值: 物件
函式种类: 网路系统
内容说明
本函用来取得目前使用中邮箱 (mailbox) 的相关资讯。参数 imap_stream 为 IMAP 的代号。传回物件包括下列的属性
物件属性 代表意义说明
Date 最新邮件的日期
Driver 使用的介面
Mailbox 电子邮箱网址
Nmsgs 总邮件数目
Recent 新进邮件数目
Unread 未读邮件数目
Size 邮箱大小
参考
imap_check()
--------------------------------------------------------------------------------
函式:imap_rfc822_write_address()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_rfc822_write_address
电子邮件位址标准化。
语法: string imap_rfc822_write_address(string mailbox, string host, string personal);
传回值: 字串
函式种类: 网路系统
内容说明
本函式将电子邮件位址成为 rfc822 的标准格式。
--------------------------------------------------------------------------------
函式:imap_rfc822_parse_adrlist()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_rfc822_parse_adrlist
剖析电子邮件位址。
语法: object imap_rfc822_parse_adrlist(string address, string default_host);
传回值: 物件
函式种类: 网路系统
内容说明
本函式可剖析电子邮件位址。传回的物件包括下列属性
属性名 说明
mailbox 使用者名称
host 伺服器名称
personal 个人名字
adl 所在来源绕路
--------------------------------------------------------------------------------
函式:imap_setflag_full()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_setflag_full
设定信件旗标。
语法: int imap_setflag_full(int imap_stream, string sequence, string flag, int [options]);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可指定连续信件而设定旗标。参数 imap_stream 为 IMAP 的代号。参数 sequence 为特定的区段序号。参数 flag 为欲设定的旗标值,包括 Seen、Answered、Flagged、Deleted、Draft 及 Recent。参数 options 可省略,可为 ST_UID。
--------------------------------------------------------------------------------
函式:imap_clearflag_full()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_clearflag_full
清除信件旗标。
语法: imap_clearflag_full(int imap_stream, string sequence, string flag, int [options]);
传回值: 无
函式种类: 网路系统
内容说明
本函式可指定连续信件而清除旗标。参数 imap_stream 为 IMAP 的代号。参数 sequence 为特定的区段序号。参数 flag 为欲设定的旗标值,包括 Seen、Answered、Flagged、Deleted、Draft 及 Recent。参数 options 可省略,可为 ST_UID。
--------------------------------------------------------------------------------
函式:imap_sort()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_sort
将信件标头排序。
语法: array imap_sort(int imap_stream, int criteria, int reverse, int [options]);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式将信件标头排序。参数 imap_stream 为 IMAP 的代号。参数 criteria 的意义见下表,并只能是下表的其中一项
排序方法 说明
SORTDATE 依发信日期排序
SORTARRIVAL 依抵达日期排序
SORTFROM 依寄件人排序
SORTSUBJECT 依主题排序
SORTTO 依收件人排序
SORTCC 依副本寄送处排序
SORTSIZE 依信件大小排序
参数 reverse 值为 0 时表由小到大排序,若值为 1 表由大到小排序。参数 options 可省略,有下列的值: SE_UID 与 SE_NOPREFETCH。
--------------------------------------------------------------------------------
函式:imap_fetchheader()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_fetchheader
取得原始标头。
语法: string imap_fetchheader(int imap_stream, int msg_no, int [options]);
传回值: 字串
函式种类: 网路系统
内容说明
本函式将信件标头排序。参数 imap_stream 为 IMAP 的代号。参数 msg_no 为信件序号。参数 options 可省略,其值有下列数种
FT_UID : 信件序号为 UID。
FT_INTERNAL : 传回字串使用系统格式,不要刻意转成 CRLF 行结束标准。
FT_PREFETCHTEXT : 去掉额外的 RTT
--------------------------------------------------------------------------------
函式:imap_uid()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_uid
取得信件 UID。
语法: string imap_uid(string mailbox, int msgno);
传回值: 字串
函式种类: 网路系统
内容说明
本函式可取得指定信件的 UID。参数 mailbox 为邮箱名。参数 msgno 为信件序号。
--------------------------------------------------------------------------------
函式:imap_getmailboxes()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_getmailboxes
取得全部信件详细资讯。
语法: object imap_getmailboxes(int imap_stream, string ref, string pattern);
传回值: 物件
函式种类: 网路系统
内容说明
本函用来检查 IMAP 伺服器信件的详细资讯。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 伺服器名称,如 "{mail.wahaha.com:143}"。参数 pattern 为剖析比对字串的规则。
--------------------------------------------------------------------------------
函式:imap_getsubscribed()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_getsubscribed
列出所有订阅邮箱。
语法: array imap_getsubscribed(int imap_stream, string ref, string pattern);
传回值: 阵列
函式种类: 网路系统
内容说明
本函用来列示出所有订阅 IMAP 伺服器信箱 (mailbox)。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 伺服器名称,如 "{mail.wahaha.com:143}"。参数 pattern 为剖析比对字串的规则。
--------------------------------------------------------------------------------
函式:imap_msgno()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_msgno
列出 UID 的连续信件。
语法: int imap_msgno(int imap_stream, int uid);
传回值: 整数
函式种类: 网路系统
内容说明
本函用来列示指定 UID 的连续信件。参数 imap_stream 为 IMAP 的代号。参数 UID 为使用者代号。
--------------------------------------------------------------------------------
函式:imap_search()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_search
搜寻指定标准的信件。
语法: array imap_search(int imap_stream, string criteria, int flags);
传回值: 阵列
函式种类: 网路系统
内容说明
本函用来搜寻合乎指定条件的信件。参数 imap_stream 为 IMAP 的代号。参数 criteria 为指定的条件,各栏位以空格 (space) 分开,条件见下表。参数 flags 为 SE_UID。
条件 说明
ALL 传回所有合乎标准的信件
ANSWERED 信件有设定 \\ANSWERED 旗标者
BCC "字串" Bcc 栏中有指定 "字串" 的信件
BEFORE "日期" 指定 "日期" 以前的信件
BODY "字串" 内文栏位中有指定 "字串" 的信件
CC "字串" Cc 栏中有指定 "字串" 的信件
DELETED 合乎已删除的信件
FLAGGED 信件有设定 \\FLAGGED 旗标者
FROM "字串" From 栏中有指定 "字串" 的信件
KEYWORD "字串" 关键字为指定 "字串" 者
NEW 新的信件
OLD 旧的信件
ON "日期" 指定 "日期" 的信件
RECENT 信件有设定 \\RECENT 旗标者
SEEN 信件有设定 \\SEEN 旗标者
SINCE "日期" 指定 "日期" 之后的信件
SUBJECT "字串" Subject 栏中有指定 "字串" 的信件
TEXT "字串" Text 栏中有指定 "字串" 的信件
TO "字串" To 栏中有指定 "字串" 的信件
UNANSWERED 未回应的信件
UNDELETED 未删除的信件
UNFLAGGED 未设定旗标的信件
UNKEYWORD "字串" 未设定关键 "字串" 的信件
UNSEEN 未读取的信件
--------------------------------------------------------------------------------
函式:imap_last_error()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_last_error
最后的错误讯息。
语法: string imap_last_error(void);
传回值: 字串
函式种类: 网路系统
内容说明
本函式用来显示最后出现的 IMAP 错误字串。本函式不需要使用任何参数。
--------------------------------------------------------------------------------
函式:imap_errors()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_errors
所有的错误讯息。
语法: array imap_errors(void);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式用来显示所有出现的 IMAP 错误字串。本函式不需要使用任何参数。
--------------------------------------------------------------------------------
函式:imap_alerts()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_alerts
所有的警告讯息。
语法: array imap_alerts(void);
传回值: 阵列
函式种类: 网路系统
内容说明
本函式用来显示所有出现的 IMAP 警告字串。本函式不需要使用任何参数。
--------------------------------------------------------------------------------
函式:imap_status()
--------------------------------------------------------------------------------
IMAP 电子邮件系统函式库
imap_status
目前的状态资讯。
语法: object imap_status(int imap_stream, string mailbox, int options);
传回值: 物件
函式种类: 网路系统
内容说明
本函式用来显示目前 IMAP 的状态资讯。参数 imap_stream 为 IMAP 的代号。参数 mailbox 为指定的邮箱。参数 options 有下面的选择:SA_MESSAGES、SA_RECENT、SA_UNSEEN、SA_UIDNEXT、SA_UIDVALIDITY 与 SA_ALL。