PHP Conference Japan 2024

imap_mail_copy

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

imap_mail_copy将指定的消息复制到邮箱

描述

imap_mail_copy(
    IMAP\Connection $imap,
    string $message_nums,
    string $mailbox,
    int $flags = 0
): bool

message_nums指定的邮件消息复制到指定的邮箱。

参数

imap

一个IMAP\Connection 实例。

message_nums

message_nums是一个范围,不仅仅是邮件编号(如» RFC2060中所述)。

mailbox

邮箱名称,更多信息请参见imap_open()

警告

除非禁用了imap.enable_insecure_rsh,否则将不受信任的数据传递给此参数是不安全的。

flags

flags是一个或多个位的掩码:

  • CP_UID - 序列号包含 UID
  • CP_MOVE - 复制后从当前邮箱中删除邮件。如果设置此标志,则该函数的行为与imap_mail_move()相同。

返回值

成功返回true,失败返回false

变更日志

版本 描述
8.1.0 imap参数现在需要一个IMAP\Connection实例;以前需要一个有效的imap 资源

参见

添加注释

用户贡献的注释 3 个注释

marcus at names dot co dot uk
22 年前
如果您在使用 imap_mail_copy 和 imap_mail_move 时遇到问题,请检查您是否已安装 imap_devel(imap 开发库)以及 imap(imap 守护程序)。如果没有,PHP 似乎会正确配置 --with-imap,但某些函数无法工作。

我花了大约 12 个小时才弄明白这一点!!
hxlvt at hotmail dot com
23 年前
经过一番折腾,imap_mail_copy 对我来说确实有效。如果您遇到问题,您可能需要检查的一件事是新的邮箱名称。确保它只是一个文件夹名称,例如 INBOX.haha,不包含服务器部分。
jigar dot dhaduk79 at gmail dot com
9 年前
当我们想要复制多封邮件时,可以在 msg_num 之前写上 '(string)'。例如:

$msg_num = "1,2,3,4,5,6,7";
$copy = imap_mail_copy($imap_stream, (string) $msg_num, '[Gmail]/Important', CP_UID);
To Top