0

imap_mail_copy を使用して、受信トレイから Gmail の別のフォルダーにメッセージをコピーしようとしています

メールボックスに正常に接続してメッセージを読み取ることはできますが、エラーなしでメッセージを移動することはできません

if(!imap_mail_copy($connection,'$msg_num','[Gmail]/Starred', CP_UID))
        {
            echo "Didn't move messages number: $msg_num";
        }
imap_expunge($connection); 
imap_close($connection,CL_EXPUNGE); 

ここで、$connection はストリーム、$msg_num はヘッダーから読み取られ ($msg_num = $header->Msgno;)、Starred はフォルダーです。

エラーは

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

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

1 に答える 1

1

$msg_numが関数にフィードする必要がある変数の場合、コードを次のように変更する必要があります。

if(!imap_mail_copy($connection,"$msg_num",'[Gmail]/Starred', CP_UID))

また:

if(!imap_mail_copy($connection,$msg_num,'[Gmail]/Starred', CP_UID))

または(文字列にキャストする必要がある場合):

if(!imap_mail_copy($connection, (string) $msg_num,'[Gmail]/Starred', CP_UID))

これで文字通り文字列を送信しています$msg_num

于 2012-09-25T01:48:04.763 に答える