PHPのお勉強!

PHP TOP

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 - UIDS を含む処理の数
  • CP_MOVE - コピー後にメールボックスからメッセージを削除する。 このフラグが設定されていると、この関数は imap_mail_move() と同じ振る舞いをします。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.1.0 引数 imap は、IMAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な imap リソース が期待されていました。

参考

  • imap_mail_move() - 指定されたメッセージをメールボックスに移動する

add a note

User Contributed Notes 3 notes

up
4
marcus at names dot co dot uk
22 years ago
If you are having problems getting imap_mail_copy and imap_mail_move to work, check you have installed imap_devel (the imap development libraries) as well as imap (the imap daemon). Without it, PHP appears to configure correctly --with-imap, but some functions do not work.

It took me about 12 hours to figure this out!!
up
4
hxlvt at hotmail dot com
23 years ago
After much fooling around, imap_mail_copy did work for me. One thing you might want to check, if you are having problems, is the new mailbox name. Make sure it is just a folder name, e.g. INBOX.haha without the server part.
up
1
jigar dot dhaduk79 at gmail dot com
9 years ago
When we want to copy more than one mail, we can write '(string)' before msg_num. Like..

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