如果您在使用 imap_mail_copy 和 imap_mail_move 时遇到问题,请检查您是否已安装 imap_devel(imap 开发库)以及 imap(imap 守护程序)。如果没有,PHP 似乎会正确配置 --with-imap,但某些函数无法工作。
我花了大约 12 个小时才弄明白这一点!!
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_mail_copy — 将指定的消息复制到邮箱
将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()相同。
版本 | 描述 |
---|---|
8.1.0 | imap 参数现在需要一个IMAP\Connection实例;以前需要一个有效的imap 资源。 |
如果您在使用 imap_mail_copy 和 imap_mail_move 时遇到问题,请检查您是否已安装 imap_devel(imap 开发库)以及 imap(imap 守护程序)。如果没有,PHP 似乎会正确配置 --with-imap,但某些函数无法工作。
我花了大约 12 个小时才弄明白这一点!!
经过一番折腾,imap_mail_copy 对我来说确实有效。如果您遇到问题,您可能需要检查的一件事是新的邮箱名称。确保它只是一个文件夹名称,例如 INBOX.haha,不包含服务器部分。
当我们想要复制多封邮件时,可以在 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);