使用imap_delete()的foreach($ delete_addresses [$ key]值失败

时间:2016-04-18 07:43:55

标签: php imap

在下面的示例中,有一个数组$ delete_addresses填充了电子邮件地址。 print_r()显示正确。 但是在foreach中我做错了什么并且没有得到imap_delete所需的$ key数。 我得到的不是说很多错误信息: 警告:在第75行的/home/deb96951n2/domains/domain.nl/public_html/wp-admin/email_handlers/bouncehandler.php中为foreach()提供的参数无效

你们中有更多经验的人可以告诉我我做错了什么以及如何纠正它? Imap不是我的日常工作。

$delete_addresses = array();
$bouncecounter = 0;
$deletecounter = 0;
for ($n=1;$n<=$num_msgs;$n++) {
  $bounce = imap_fetchheader($conn, $n).imap_body($conn, $n); //entire message
  $multiArray = $bouncehandler->get_the_facts($bounce);

if (!empty($multiArray[0]['action']) && !empty($multiArray[0]['status']) && !empty($multiArray[0]['recipient']) ) {
        echo $multiArray[0]['action'].'= '.$multiArray[0]['status'].'::'.$multiArray[0]['recipient'].'<br>';
        $delete_addresses[] = $multiArray[0]['recipient'];

  if ($multiArray[0]['action'] == 'failed') {
            $result = mysqli_query($db, "UPDATE wp_mm_external_emails set deleted = 1 WHERE email = '".$multiArray[0]['recipient']."' ");

  } //if delivery failed        
        $deletecounter++;   
} //if passed parsing as bounce
        $bouncecounter++ ;
} //for loop

  foreach ($delete_addresses as $key => $value) { //trim($key) is email address, $value is number of failures

if ($value>=$delete) {      

/*
do whatever you need to do here, e.g. unsubscribe email address
*/
# mark for deletion
        print_r($delete_addresses[$key]);
    foreach ($delete_addresses[$key] as $delnum) imap_delete($conn, $delnum);

} //if failed more than $delete times

} // foreach

0 个答案:

没有答案