note 93706 modified in function.imap-delete by thiago

From: Date: Wed, 23 Sep 2009 19:22:22 +0000
Subject: note 93706 modified in function.imap-delete by thiago
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-160991@lists.php.net to get a copy of this message
In case you feel the need to kill all emails from before a certain year on your Gmail account, this would work: <?php error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); echo "parsing ini file...\n"; $ini = parse_ini_file('g.ini'); $user = $ini['user']; $pass = $ini['pass']; $year = $ini['year']; echo "account {$user} - killing msgs from before {$year}\n\n"; echo "connecting...\n"; $imap = imap_open("{imap.gmail.com:993/imap/ssl/novalidate-cert}[Gmail]/All Mail", $user, $pass) or die("can't connect: " . imap_last_error() . "\n"); echo "checking current mailbox...\n"; $mbox = imap_check($imap); echo "fetching overview...\n"; $flaggedForDelete = 0; for($n = 0; $n < $mbox->Nmsgs; $n++) { echo "processing {$n} of {$mbox->Nmsgs}...\r"; $hdr = imap_fetchheader($imap, $n); preg_match('/^Date: (.*?)$/m', $hdr, $matches); $date = date_parse(strtotime($matches[1])); if($date['year'] < $year) { imap_delete($imap, $msg->msgno); $flaggedForDelete++; } } echo "expunging mailbox ({$flaggedForDelete} messages flagged)... "; echo ((imap_expunge($imap)) ? "ok" : "failed!")."\n"; imap_close($imap); ?> --was-- In case you feel the need to kill all emails from before a certain year on your Gmail account, this would work: <?php error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); echo "parsing ini file...\n"; $ini = parse_ini_file('g.ini'); $user = $ini['user']; $pass = $ini['pass']; $year = $ini['year']; echo "account {$user} - killing msgs from before {$year}\n\n"; echo "connecting...\n"; $imap = imap_open("{imap.gmail.com:993/imap/ssl/novalidate-cert}[Gmail]/All Mail", $user, $pass) or die("can't connect: " . imap_last_error() . "\n"); echo "checking current mailbox...\n"; $mbox = imap_check($imap); echo "fetching overview...\n"; $flaggedForDelete = 0; for($n = 0; $n < $mbox->Nmsgs; $n++) { echo "processing {$n} of {$mbox->Nmsgs}...\r"; $hdr = imap_fetchheader($imap, $n); preg_match('/^Date: (.*?)$/m', $hdr, $matches); $date = date_parse(strtotime($matches[1])); if($date['year'] < 2009) { imap_delete($imap, $msg->msgno); $flaggedForDelete++; } } echo "expunging mailbox ({$flaggedForDelete} messages flagged)... "; echo ((imap_expunge($imap)) ? "ok" : "failed!")."\n"; imap_close($imap); ?> http://php.net/manual/en/function.imap-delete.php

« previous php.notes (#160991) next »