Code: Select all
<?php
$server = "mail.yourdomain.com";
$user = "XXXXXX";
$password = "XXXXXX";
$subjectMatch = "Test"; // subject of the email messages you want processed
$delete = "Y"; // if delete is Y then processed mail will be deleted
$host = "{".$server.":143"."}"."INBOX";
$msgStream = imap_open($host,$user,$password);
$check = imap_mailboxmsginfo($msgStream);
$number = $check->Nmsgs;
function getHeader($msgStream,$msgNumber) {
$mailheader = imap_headerinfo($msgStream,$msgNumber);
$headerArray = array();
$headerArray[0] = $mailheader->subject;
$from = $mailheader->from;
foreach ($from as $id => $object) {
$headerArray[1] = $object->personal; // from personal
$headerArray[2] = $object->mailbox . "@" . $object->host; // from address
}
$headerArray[3] = $mailheader->Date;
return $headerArray;
}
function getBody($msgStream,$msgNumber){
$body=imap_body($msgStream,$msgNumber);
return $body;
}
$msgNumber = "1";
while ($msgNumber <= $number) {
$headerArray = getHeader($msgStream,$msgNumber);
$body = getBody($msgStream,$msgNumber);
if ($headerArray[0] == $subjectMatch) { // check to see if the current message subject line matches what you want
// do your special logic here
// you have the header array and the body to work with
// the echo line below is just for testing
echo "$headerArray[0]<br>$headerArray[1]<br>$headerArray[2]<br>$headerArray[3]<br>$body<br>";
if ($delete == "Y") imap_delete($msgStream, $msgNumber); // mark the current message for deletion
}
$msgNumber ++;
}
if ($delete == "Y") imap_expunge($msgStream); // delete all messages marked for deletion
imap_close($msgStream);
?>
Code: Select all
if (strtotime($headerarray[3]) <= strtotime("-3 days")) {