Zend Framework を使用して、Gmail アプリ アカウントからメールを読み取ろうとしています。Zend Framework dir をサーバー (パス: /Zend/library/) に転送しました。
Zend Framework と Mail モジュールをロードするにはどうすればよいですか? そして、どうすればメールをさらに読むことができますか?
私は結果なしで次のことを試しました:
$path = 'Zend/library/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
受信トレイを読むための構文は次のようなものだと思います:
$mail = new Zend_Mail_Storage_Imap(array('host' => 'imap.gmail.com', 'user' => "name@domain.com", 'password' => "mypassword", 'ssl' => 'SSL'));
編集
次のコードが機能します。
$path = 'Zend/library/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
$mail = new Zend_Mail_Storage_Imap(array('host' => 'imap.gmail.com',
'user' => 'mail@domain.com',
'password' => 'password',
'ssl' => 'SSL'));
echo $mail->countMessages();`
...しかし、未読のメールをエコーしようとすると:
echo "Unread mails:\n";
foreach ($mail as $message) {
if ($message->hasFlag(Zend_Mail_Storage::FLAG_SEEN)) {
continue;
}
// mark recent/new mails
if ($message->hasFlag(Zend_Mail_Storage::FLAG_RECENT)) {
echo '! ';
} else {
echo ' ';
}
echo $message->subject . "\n";
}
次のメッセージが表示されます。
Fatal error: Uncaught exception 'Zend_Mail_Storage_Exception' with message 'cannot login, user or password wrong' in /var/www/zvinx.dk/test/Zend/library/Zend/Mail/Storage/Imap.php:279 Stack trace: #0 /var/www/zvinx.dk/test/gmail.php(11): Zend_Mail_Storage_Imap->__construct(Array) #1 {main} thrown in /var/www/zvinx.dk/test/Zend/library/Zend/Mail/Storage/Imap.php on line 279
ユーザー名またはパスワードが間違っていると表示されます。これは、動作していたときから変更していないという奇妙な原因です...なぜこのエラーが発生するのですか?