This is a little script to create a query for all emails-addresses that are in your mails in this folder. So you are able to flag unreachable/wrong emailaddresses if this folder has a filter for daemon-addresses.
It's not checking or setting the flag for 'read'.
<?php
$rootfolder = 'Returned';
$imaphost = '{imap.domain.org:143}' . $rootfolder;
$mbox = imap_open($imaphost, $imap_user, $imap_password, OP_HALFOPEN) or die("can't connect: " . imap_last_error());
$list = imap_getmailboxes ($mbox, $imaphost, "*");
$emaillist = array();
if (is_array ($list))
{
reset ($list);
while (list($key, $val) = each($list))
{
$name = substr(imap_utf7_decode($val->name), strlen($imaphost));
$status = imap_status ($mbox, $imaphost . $name, SA_ALL);
if($status) {
$ilen = $status->messages;
for ($i = 1; $i <= $ilen; $i++)
{
$message = imap_body($mbox, $i, FT_PEEK);
$message = strtolower($message);
$message = str_replace( "\t", " ", $message);
$message = str_replace( "\n", " ", $message);
$message = str_replace( "\r", " ", $message);
$message = str_replace( ';', " ", $message);
$message = str_replace( '"', " ", $message);
$message = str_replace( "\\", " ", $message);
$message = str_replace( "/", " ", $message);
$message = str_replace("=3d", " ", $message);
$message = str_replace( "=", " ", $message);
$message = str_replace( ":", " ", $message);
$message = str_replace( "<", " ", $message);
$message = str_replace( ">", " ", $message);
$message = str_replace( "[", " ", $message);
$message = str_replace( "]", " ", $message);
$message = str_replace( "'", " ", $message);
$wordlist = explode(" ", $message);
$ilenword = count($wordlist);
for ($iword = 0; $iword < $ilenword; $iword++)
{
$email = $wordlist[$iword];
if (("$email" != "") && ((strlen(str_replace("@", "", $email)) + 1) == strlen($email)))
{
if (array_search($email, $emaillist) . "" == "")
{
$emaillist[count($emaillist)] = $email;
}
}
}
}
}
else
{
print "imap_status failed: " . imap_last_error() . "\n";
}
}
}
else
{
print "imap_getmailboxes failed: " . imap_last_error() . "\n";
}
$query = "UPDATE tblUsers SET US_EmailFailed = 1 WHERE US_Email IN (''";
$ilen = count($emaillist);
for ($i = 0; $i < $ilen; $i++)
{
$query .= ",'" . $emaillist[$i] . "'";
}
$query .= ")";
imap_close($mbox);
?>
Gtz ...