После пребывания в течение часа на этой ошибке я нашел, что файл модуля дублирован. удалите дополнительный файл, и shift+cmd+k для очистки и ошибка не стало.
Я бы просто использовал PHP-функции imap и сделал бы что-то вроде этого:
<?php
$mailbox = imap_open("{imap.googlemail.com:993/ssl}INBOX", "USERNAME@googlemail.com", "PASSWORD");
$mail = imap_search($mailbox, "ALL");
$mail_headers = imap_headerinfo($mailbox, $mail[0]);
$subject = $mail_headers->subject;
$from = $mail_headers->fromaddress;
imap_setflag_full($mailbox, $mail[0], "\\Seen \\Flagged");
imap_close($mailbox);
?>
Это подключается к imap.googlemail.com (сервер imap googlemail), устанавливает $ subject в тему первого сообщения и $ от до адреса отправителя первого сообщения. Затем он отмечает это сообщение как прочитанное. (Это не проверено, но должно работать: S)
Вы можете использовать IMAP из PHP.
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
or die("can't connect: " . imap_last_error());
$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");
echo gettype($status) . "\n";
echo $status . "\n";
imap_close($mbox);
?>
Zend Framework также имеет API Zend_Mail для чтения почты. Это позволяет легко переключать протоколы при необходимости (POP3, IMAP, Mbox и Maildir). В настоящее время только классы хранилища IMAP и Maildir поддерживают установку флагов.
http://framework.zend.com/manual/en/zend.mail.read.html
Пример чтения сообщений из документации Zend Framework:
$mail = new Zend_Mail_Storage_Pop3(array('host' => 'localhost',
'user' => 'test',
'password' => 'test'));
echo $mail->countMessages() . " messages found\n";
foreach ($mail as $message) {
echo "Mail from '{$message->from}': {$message->subject}\n";
}