imap_delete() 不工作?
imap_delete() not working?
我正在制作退回处理程序,我想删除所有退回的电子邮件。我正在尝试使用 imap_delete()
执行此操作,但未删除电子邮件。可能是什么问题?
<?php
// Settings
require_once(dirname(__FILE__) . '/settings.php');
// Bounce
$bounce = array();
$inbox = imap_open('{imap.example.com:143/novalidate-cert}INBOX', 'mail-bounce@example.com', 'SECRET') or die('Cannot connect to mailbox: ' . imap_last_error());
$emails = imap_search($inbox, 'ALL');
if($emails) {
foreach($emails as $id) {
preg_match('/<(.*?)>: host/s', imap_fetchbody($inbox, $id, 1), $matches);
$bounce[] = $matches[1];
imap_delete($inbox, $id);
}
}
imap_close($inbox);
if(!empty($bounce)) {
$STH = $DBH->prepare("UPDATE newsletter SET status=-1 WHERE email='" . implode(" OR email='", $bounce) . "'");
$STH->execute();
}
?>
imap_last_error()
没有 return 任何错误。
imap_delete()
marks the email for deletion. But it's not actually deleted until you call imap_expunge()
, or until you call imap_close()
带有可选的 CL_EXPUNGE
参数。
我正在制作退回处理程序,我想删除所有退回的电子邮件。我正在尝试使用 imap_delete()
执行此操作,但未删除电子邮件。可能是什么问题?
<?php
// Settings
require_once(dirname(__FILE__) . '/settings.php');
// Bounce
$bounce = array();
$inbox = imap_open('{imap.example.com:143/novalidate-cert}INBOX', 'mail-bounce@example.com', 'SECRET') or die('Cannot connect to mailbox: ' . imap_last_error());
$emails = imap_search($inbox, 'ALL');
if($emails) {
foreach($emails as $id) {
preg_match('/<(.*?)>: host/s', imap_fetchbody($inbox, $id, 1), $matches);
$bounce[] = $matches[1];
imap_delete($inbox, $id);
}
}
imap_close($inbox);
if(!empty($bounce)) {
$STH = $DBH->prepare("UPDATE newsletter SET status=-1 WHERE email='" . implode(" OR email='", $bounce) . "'");
$STH->execute();
}
?>
imap_last_error()
没有 return 任何错误。
imap_delete()
marks the email for deletion. But it's not actually deleted until you call imap_expunge()
, or until you call imap_close()
带有可选的 CL_EXPUNGE
参数。