2016-02-27 83 views
1

我試圖從收件箱移動電子郵件到垃圾箱,並寫了下面的代碼,總是給人錯誤Error in IMAP command COPY: Invalid messageset (0.000 + 0.000 secs).PHP:IMAP郵件移動到垃圾

$stream = imap_open($hostname, $username, $password) or die('Cannot connect to mail: ' . imap_last_error()); 

if(imap_mail_move($stream, '4', 'INBOX.Trash') or die(imap_last_error())) { 
    echo '1'; 
} 
else { 
    echo 'error'; 
} 

這裏是我

嘗試不同的變化
imap_mail_move($stream, '4', 'Trash') 
imap_mail_move($stream, 4 , 'Trash') 
imap_mail_move($stream, '4', 'INBOX/Trash') 
imap_mail_move($stream, 4 , 'INBOX/Trash') 
+0

確保你的第二個參數是一個有效的UID –

回答

2

例如,它可能包含該名稱的國家版本。 另外一些Gmail帳戶使用英文版的「[Gmail]/Bin」。 您應該使用CommonFolders類來識別文件夾:

$server = '{imap.gmail.com:993/ssl}'; 
$connection = imap_open($server, '[email protected]', 'password'); 
$mailboxes = imap_list($connection, $server, '*'); 
var_dump($mailboxes); 

在葡萄牙語(巴西),你可以看到:

0 => string '{imap.gmail.com:993/ssl}INBOX' (length=29) 
1 => string '{imap.gmail.com:993/ssl}[Gmail]/Com estrela' (length=43) 
2 => string '{imap.gmail.com:993/ssl}[Gmail]/E-mails enviados' (length=48) 
3 => string '{imap.gmail.com:993/ssl}[Gmail]/Importante' (length=42) 
4 => string '{imap.gmail.com:993/ssl}[Gmail]/Lixeira' (length=39) 
5 => string '{imap.gmail.com:993/ssl}[Gmail]/Rascunhos' (length=41) 
6 => string '{imap.gmail.com:993/ssl}[Gmail]/Spam' (length=36) 
7 => string '{imap.gmail.com:993/ssl}[Gmail]/Todos os e-mails' (length=48) 

所以,我在巴西葡萄牙語垃圾是: '的[Gmail]/Lixeira'

您需要將您的代碼更改爲垃圾。

imap_mail_move($stream, 4 , '[Gmail]/Lixeira'); 

現金 http://www.electrictoolbox.com/open-mailbox-other-than-inbox-php-imap/

相關問題