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()函数的调用才真正删除消息。