Ben bizim site için bir e-posta mesajı ayrıştırıcı oluşturmaya çalışıyorum. Ne sonunda yapacağım eklere sahip iletileri yineleme ve mesaj, belirli bir e-posta adresinden gelirse eki kaydetmek olmalıdır.
Bu sadece ilk test, ancak, aşağıda yorumları görmek, sorunlarla çalıştırıyorum edilir.
<?php
echo "Loading..."."<br />\n";
$mailuser="help@mysite.com";
echo "User=$mailuser"."<br />\n";;
$mailpass="mypassword";
echo "Pass=$mailpass"."<br />\n";
// had to use this because we have SSL on site and regular port 110 didn't work
$mailhost="{localhost:995/pop3/ssl/novalidate-cert}";
echo "Host=$mailhost"."<br />\n";
$mailbox=imap_open($mailhost,$mailuser,$mailpass) or die("<br />\nFAILLED! ".imap_last_error());
$check = imap_check($mailbox);
// last message parsed will be stored in the file msgcounter.dat
$firstmsg = file_get_contents('msgcounter.dat') + 1;
$lastmsg = $firstmsg+$check->Recent; // should be == last msg index + count of latest messages
echo 'First:'.$firstmsg.' - Last:'.$lastmsg."<br>";
$result = imap_fetch_overview($mailbox,"$firstmsg:$lastmsg");
print_r($result);
foreach ($result as $overview) {
echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
{$overview->subject}\n";
}
// the following approach didn't work either, Kept getting warnings about
// Bad message number
//
// Some messages in the sequence HAVE been deleted.
/*
for ($index = $firstmsg-1; $index <= ($lastmsg); $index++ ) {
if (strlen(trim(imap_fetchheader($mailbox, $index))) > 0) {
echo 'in message index loop:'.$index;
}
}
*/
imap_close($mailbox);
echo "completed.". "<br />\n";;
?>