PHP Conference Japan 2024

imap_setflag_full

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

imap_setflag_full设置邮件标志

描述

imap_setflag_full(
    IMAP\Connection $imap,
    string $sequence,
    string $flag,
    int $options = 0
): true

导致存储将指定的 flag 添加到为指定 sequence 中的邮件设置的标志。

参数

imap

一个 IMAP\Connection 实例。

sequence

邮件编号序列。您可以使用 X,Y 语法枚举所需的邮件,或者使用 X:Y 语法检索某个区间内的所有邮件

flag

可以设置的标志有 \Seen\Answered\Flagged\Deleted\Draft,如 » RFC2060 中所定义。

options

一个位掩码,可能包含以下单个选项

  • ST_UID - sequence 参数包含 UID 而不是序列号

返回值

始终返回 true

错误/异常

如果 options 无效,则抛出 ValueError

变更日志

版本 描述
8.1.0 imap 参数现在期望一个 IMAP\Connection 实例;以前,期望一个有效的 imap 资源
8.0.0 现在在无效的 options 参数值上抛出 ValueError。以前,会发出警告并且函数返回 false

范例

示例 #1 imap_setflag_full() 示例

<?php
$mbox
= imap_open("{imap.example.org:143}", "username", "password")
or die(
"无法连接: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo
gettype($status) . "\n";
echo
$status . "\n";

imap_close($mbox);
?>

参见

添加注释

用户贡献的注释 2 条注释

AJCartmell at ricardo dot com
22 年前
花了很长时间试图让它工作,然后最终想起来我以只读方式打开了邮箱 - 显然你需要写入权限才能设置标志!
daniel dot blackburn at galorwebservices dot com
14 年前
在可能的情况下,我会避免使用 POP3 帐户。我的主机允许我升级到 IMAP,它更容易得多。我认为使用 POP3 创建任何形式的邮件客户端的唯一准确方法是将邮件下载到 SQL 数据库中,这是一个很大的任务,考虑到 IMAP 标准内置了我们需要的功能。
我尝试在 POP3 中设置标志,但它们似乎根本没有保留,并且几乎不可能检索未读邮件的数量(即 Seen/Unseen 无法正常工作)
转换为 IMAP 并且它可以工作 - 本节中的大多数函数似乎都专注于 IMAP 并且通常不会与 POP3 一起使用
To Top