Retrieve Your Gmail Emails Using PHP and IMAP | Techbirds
Posted on: May 14, 2014 /
Categories: PHP / Author Name: Rahul
Grabbing emails from your Gmail account using PHP is probably easier than you think. Armed with PHP and its IMAP extension , you can retrieve emails from your Gmail account in no time! Just for fun, I’ll be using the MooTools Fx.Accordion plugin to display each email.
The CSS
div.toggler { border:1px solid #ccc; background:url(gmail2.jpg) 10px 12px #eee no-repeat; cursor:pointer; padding:10px 32px; } div.toggler .subject { font-weight:bold; } div.read { color:#666; } div.toggler .from, div.toggler .date { font-style:italic; font-size:11px; } div.body { padding:10px 20px; }
div.toggler { border:1px solid #ccc; background:url(gmail2.jpg) 10px 12px #eee no-repeat; cursor:pointer; padding:10px 32px; } div.toggler .subject { font-weight:bold; } div.read { color:#666; } div.toggler .from, div.toggler .date { font-style:italic; font-size:11px; } div.body { padding:10px 20px; } |
The MooTools JavaScript
window.addEvent(‘domready’,function() { var togglers = $$(‘div.toggler’); if(togglers.length) var gmail = new Fx.Accordion(togglers,$$(‘div.body’)); togglers.addEvent(‘click’,function() { this.addClass(‘read’).removeClass(‘unread’); }); togglers[0].fireEvent(‘click’); //first one starts out read });
window.addEvent(‘domready’,function() { var togglers = $$(‘div.toggler’); if(togglers.length) var gmail = new Fx.Accordion(togglers,$$(‘div.body’)); togglers.addEvent(‘click’,function() { this.addClass(‘read’).removeClass(‘unread’); }); togglers[0].fireEvent(‘click’); //first one starts out read }); |
The PHP
/* connect to gmail */ $hostname = ‘{imap.gmail.com:993/imap/ssl}INBOX’; $username = ‘[email protected]’; $password = ‘password’; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die(‘Cannot connect to Gmail: ‘ . imap_last_error()); /* grab emails */ $emails = imap_search($inbox,’ALL’); /* if emails are returned, cycle through each… */ if($emails) { /* begin output var */ $output = ”; /* put the newest emails on top */ rsort($emails); /* for every email… */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); /* output the email header information */ $output.= ”; $output.= ”.$overview[0]->subject.’ ‘; $output.= ”.$overview[0]->from.”; $output.= ‘on ‘.$overview[0]->date.”; $output.= ”; /* output the email body */ $output.= ”.$message.”; } echo $output; } /* close the connection */ imap_close($inbox);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
/* connect to gmail */ $hostname = ‘{imap.gmail.com:993/imap/ssl}INBOX’; $username = ‘[email protected]’; $password = ‘password’; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die(‘Cannot connect to Gmail: ‘ . imap_last_error()); /* grab emails */ $emails = imap_search($inbox,’ALL’); /* if emails are returned, cycle through each… */ if($emails) { /* begin output var */ $output = ”; /* put the newest emails on top */ rsort($emails); /* for every email… */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); /* output the email header information */ $output.= ”; $output.= ”.$overview[0]->subject.’ ‘; $output.= ”.$overview[0]->from.”; $output.= ‘on ‘.$overview[0]->date.”; $output.= ”; /* output the email body */ $output.= ”.$message.”; } echo $output; } /* close the connection */ imap_close($inbox); |
With our individual username/password settings set, we connect to Gmail. Once connected, we request all emails. If we find emails, I reverse sort the emails so that the newest emails appear on top. For every email we receive, I output the subject and message in MooTools Fx.Accordion format.
2,242 total views, 1 views today
Share this On