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 资源

参见

添加注释

用户贡献注释 5 个注释

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,没有服务器部分。
Ben
11 年前
如果您使用此函数并收到以下通知

Notice: Unknown: IMAP protocol error: Could not parse command (errflg=2) in Unknown on line 0

Notice: Unknown: Could not parse command (errflg=2) in Unknown on line 0

您应该检查函数参数。此通知出现(根据我在互联网上找到的信息以及我的问题)是在它收到无效的 $msglist 时。因此请确保给出正确的数字(作为字符串!)
"$msg_num"、$msg_num 或 (string) $msg_num。

在调用函数时不要使用 '$msg_num',这将逐字发送字符串 $msg_num。
您可以给出像 "1,3,5,7,8" 这样的字符串,这将完美地工作以移动给定的邮件。

我把所有的邮件编号都放在一个数组中($messageSet),并使用了

<?php
$messageSetImpl
= implode ( "," , $messageSet );

imap_mail_copy( $imapStream, $messageSetImpl, $mailBox )
?>

我没想到的是我的 $messageSet 有时是空的,那是当我收到通知的时候。因此,您可能想通过首先放置以下内容来检查这一点

<?php
if ( !( empty( $messageSet ) ) ) {

$messageSetImpl = implode ( "," , $messageSet );

imap_mail_copy( $imapStream, $messageSetImpl, $mailBox )

}
?>

这应该可以工作。
jigar dot dhaduk79 at gmail dot com
8 年前
当我们想要复制多封邮件时,可以在 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);
richard dot oplustil at gmail dot com
12 年前
imap_ mail_ move 和 imap_mail_copy 在 MS Exchange 上无法使用序列号。imap_ uid 与 CP_UID 结合使用可以正常工作。
To Top