Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Read gmail with Zend Framework

Im trying to read mails from a gmail apps account by using Zend Framework. I've just transfered the Zend Framework dir to my server (path: /Zend/library/).

How do I load the Zend Framework and the Mail module? And how do I further read the mail?

I've tried the following with no results:

$path = 'Zend/library/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

I believe the syntax for reading the inbox is something like:

$mail = new Zend_Mail_Storage_Imap(array('host' => 'imap.gmail.com', 'user' => "[email protected]", 'password' => "mypassword", 'ssl' => 'SSL'));

EDIT

The following code works:

$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'     => '[email protected]',
                                         'password' => 'password',
                                         'ssl'      => 'SSL'));
echo $mail->countMessages();`

... but when i try to echo unread emails:

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";
}

I get the following message:

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

It says the username or password is wrong, which is weird cause I didnt change it from when it was working... How come this error occur?

like image 551
Christoffer Avatar asked Aug 26 '26 00:08

Christoffer


2 Answers

the gmail settings are a little tricky. try:

$mail = new Zend_Mail_Storage_Imap(array('host'     => 'imap.gmail.com',
                                         'user'     => '[email protected]',
                                         'port'     => '993',
                                         'password' => 'password',
                                         'ssl'      => 'tls',
                                         'auth'     => 'login'
                                          ));

NOTE: the gmail are using the SSL/TLS protocol which apparently is different than the standard SSL.

like image 178
aporat Avatar answered Aug 27 '26 13:08

aporat


You really don't think that you can start using Zend Framework without reading/learning about the basics of the framework? At least take a look at the quickstart on how to use the framework with the autoloading features and then dive into the Zend_Mail documentation, more specifically the part that says "Reading Mail Messages"

like image 31
ChrisR Avatar answered Aug 27 '26 13:08

ChrisR



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!