在下面的示例中,有一个数组$ 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