PHP:IMAP邮件移动到垃圾

问题描述:

我试图从收件箱移动电子邮件到垃圾箱,并写了下面的代码,总是给人错误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 –

例如,它可能包含该名称的国家版本。 另外一些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/