我正在使用您可能从 php.net 识别的以下代码来删除我收件箱中的所有电子邮件:
function deleteEmails($emailAddress)
{
// connect to gmail with your credentials
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = $emailAddress; # e.g somebody@gmail.com
$password = '****************';
// try to connect
$inbox = imap_open($hostname,$username,$password) or die('Cannot download information: ' . imap_last_error());
$check = imap_mailboxmsginfo($inbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";
imap_delete($inbox, '1:*');
$check = imap_mailboxmsginfo($inbox);
echo "Messages after delete: " . $check->Nmsgs . "<br />\n";
imap_expunge($inbox);
$check = imap_mailboxmsginfo($inbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";
imap_close($inbox);
}
如果我让它失控,这有助于处理我的帐户偶尔会发生的堵塞。但是,我真正需要的是它删除我所有的电子邮件,除了最近的一封。我试图改变imap_delete($inbox, '1:*');
,imap_delete($inbox, '2:*');
但这只是导致它根本不起作用。
我错过了什么?
编辑 下面的建议我尝试了以下方法:
imap_delete($inbox, "2:$check->Nmsgs");
但有趣的是,它删除了所有“对话”,但在 gmail 中“对话”最多可以发送 61 封电子邮件!我不知道如何解决这个问题。此外,删除的内容在几分钟后返回......