我使用php从Exchange邮箱中读取邮件。以下只是一个简单的脚本而不是一个真实的例子。
在某些时候,' for'循环有时会中断,我正在解决这些问题。
如果有10条消息并且最后一条消息中断,那么其他9条本应删除的消息将不会被删除,因为无法到达删除代码。
是否有解决办法,即使代码中断,我仍然可以删除已经处理删除的正确电子邮件。
//checking how many messages are in the mailbox
$total = imap_num_msg($inbox);
//if there are any messages then process them
if ( $total > 0){
echo "\nAnalysing Mailbox\n";
for ($x=$total; $x>0; $x--){
//doing some work here
delete_processed_message($x);
}
echo "Please wait, expunging old messages\n";
imap_expunge($inbox);
echo "Please wait, disconnecting from mail box\n";
imap_close($inbox);
非常感谢。
答案 0 :(得分:0)
另一种方法是将@RolesAllowed
包裹在try-catch block中(可以找到官方文档here)。这样,即使它抛出异常(这可能是它破坏的原因),它也会继续其余的消息。
代码应如下所示
delete_processed_message($x)
就像在this question中解释的那样,使用for循环中的try-catch确保完成。