29.7.5 删除邮件
如果用户点击某一特定邮件上的“删除”按钮,将激活"delete"操作。该操作执行index.php脚本中的如下代码:
case'delete':
delete_message($_SESSION['auth_user'],
$_SESSION['selected_account'],$messageid);
//note deliberately no'break'-we will continue to the next case
case'select-account':
case'view-mailbox':
//if mailbox just chosen,or view mailbox chosen,show mailbox
display_list($_SESSION['auth_user'],
$_SESSION['selected_account']);
break;
可以看到,我们使用delete_message()函数删除消息,然后,像前面讨论的那样显示删除消息后的邮箱。delete_message()函数代码如程序清单29-11所示。
程序清单29-11 来自mail_fns.php的delete_message()函数——从邮箱中删除一个指定消息的函数
function delete_message($auth_user,$accountid,$message_id){
//delete a single message from the server
$imap=open_mailbox($auth_user,$accountid);
if($imap){
imap_delete($imap,$message_id);
imap_expunge($imap);
imap_close($imap);
return true;
}
return false;
}
可以看到,该函数使用了几个IMAP函数。其中,我们还没有使用过的函数是imap_delete()和imap_expunge()。请注意,imap_delete()函数只是将邮件标记为删除。我们可以将任意数量的邮件标记为删除。imap_expunge()函数的调用才真正删除消息。