PHP 从 IMAP 邮件帐户中删除旧邮件
PHP delete old messages from IMAP mail account
我正在尝试访问 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);
?>
代码现在是正确的。但是虚拟主机服务不允许从 localhost
脚本访问他们的 IMAP 服务器
这一行需要一个分号:
imap_expunge($mbox);
当 PHP 无法解析时 returns 500 错误。
尝试在删除之前将其标记为删除,这对我有用。
imap_delete($mbox, 1);
imap_expunge($mbox);
我正在尝试访问 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);
?>
代码现在是正确的。但是虚拟主机服务不允许从 localhost
脚本访问他们的 IMAP 服务器这一行需要一个分号:
imap_expunge($mbox);
当 PHP 无法解析时 returns 500 错误。
尝试在删除之前将其标记为删除,这对我有用。
imap_delete($mbox, 1);
imap_expunge($mbox);