函数名:imap_gc()
适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
用法:imap_gc(resource $imap_stream, int $flags = 0): bool
功能:清理垃圾邮件箱,释放已删除邮件的空间。
参数:
- $imap_stream:必需,一个有效的 IMAP 流资源,通过 imap_open() 函数返回。
- $flags:可选,用于指定进一步的操作。默认为0,表示仅清理已删除邮件的空间。可以使用以下常量进行组合:
- IMAP_GC_ELT:清理所有已删除邮件的空间。
- IMAP_GC_TEXTS:清理所有已删除文本邮件的空间。
- IMAP_GC_REFS:清理所有已删除引用邮件的空间。
- IMAP_GC_ALL:清理所有已删除邮件的空间。
返回值:成功时返回 true,失败时返回 false。
示例:
$imap_stream = imap_open("{imap.example.com:993/imap/ssl}INBOX", "username", "password");
if ($imap_stream) {
// 执行某些操作,如删除邮件
imap_delete($imap_stream, 1);
// 清理已删除邮件的空间
if (imap_gc($imap_stream, IMAP_GC_ELT)) {
echo "垃圾邮件箱已成功清理。";
} else {
echo "清理垃圾邮件箱失败。";
}
imap_close($imap_stream);
} else {
echo "无法连接到 IMAP 服务器。";
}
上述示例中,首先通过 imap_open() 函数建立与 IMAP 服务器的连接,并获取到一个有效的 IMAP 流资源。然后,使用 imap_delete() 函数删除了邮件箱中的第一封邮件。最后,通过 imap_gc() 函数清理已删除邮件的空间,使用 IMAP_GC_ELT 常量表示清理所有已删除邮件的空间。如果清理成功,将输出"垃圾邮件箱已成功清理",否则输出"清理垃圾邮件箱失败"。最后,使用 imap_close() 函数关闭了与 IMAP 服务器的连接。