PHP: IMAP 将电子邮件移至回收站
PHP: IMAP move email to trash
我正在尝试将电子邮件从收件箱移至垃圾箱并编写了以下代码,但该代码总是出错 Error in IMAP command COPY: Invalid messageset (0.000 + 0.000 secs).
$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')
例如,它可能包含该名称的国家版本。
还有一些 Gmail 帐户使用英文版的“[Gmail]/Bin”。
您应该使用 CommonFolders class 来识别文件夹:
$server = '{imap.gmail.com:993/ssl}';
$connection = imap_open($server, 'user_name@gmail.com', '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/
我正在尝试将电子邮件从收件箱移至垃圾箱并编写了以下代码,但该代码总是出错 Error in IMAP command COPY: Invalid messageset (0.000 + 0.000 secs).
$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')
例如,它可能包含该名称的国家版本。 还有一些 Gmail 帐户使用英文版的“[Gmail]/Bin”。 您应该使用 CommonFolders class 来识别文件夹:
$server = '{imap.gmail.com:993/ssl}';
$connection = imap_open($server, 'user_name@gmail.com', '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/