PHP从IMAP邮件帐户中删除旧邮件

时间:2015-11-20 21:13:54

标签: php email datetime automation imap

我正在尝试访问IMAP网络邮件帐户,以便使用php删除旧邮件。我到目前为止的脚本是:

<?php

$del = new DateTime();
$del->modify('-1 month');

$mbox = imap_open("{imap.test.com:993/imap/ssl}INBOX", "username", "password")
 or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    $date = $overview->date;
    $date = DateTime::createFromFormat('D, d M Y H:i:s O', $date); 

    if($date<$del) {
        imap_delete($mbox,$overview->msgno);
    }

}   
imap_expunge($mbox);
imap_close($mbox);
?>

现在代码正确无误。但是,Web托管服务不允许从localhost

脚本访问其IMAP服务器

2 个答案:

答案 0 :(得分:3)

这一行需要一个分号:

enctype="multipart/form-data"

当无法解析PHP时,它会返回500错误。

答案 1 :(得分:0)

尝试删除它之前将其标记为删除,这对我有用。

imap_delete($mbox, 1);

imap_expunge($mbox);