使用 PHP 从 Gmail 帐户中获取电子邮件可能比您想象的要容易。使用 PHP 及其 IMAP 扩展,您可以立即从 Gmail 帐户检索电子邮件!只是为了好玩,我将使用 MooTools Fx.Accordion 插件来显示每封电子邮件。
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; }
一些简单的 CSS 格式。
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
});
一些简单的手风琴代码。
PHP
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'davidwalshblog@gmail.com';
$password = 'davidwalsh';
/* 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.= '<div >';
$output.= '<span >'.$overview[0]->subject.'</span> ';
$output.= '<span >'.$overview[0]->from.'</span>';
$output.= '<span >on '.$overview[0]->date.'</span>';
$output.= '</div>';
/* output the email body */
$output.= '<div >'.$message.'</div>';
}
echo $output;
}
/* close the connection */
imap_close($inbox);
通过设置个人用户名/密码设置,我们连接到 Gmail。连接后,我们会请求所有电子邮件。如果我们找到电子邮件,我会对电子邮件进行反向排序,以便最新的电子邮件显示在顶部。对于我们收到的每一封电子邮件,我都会以 MooTools Fx.Accordion 格式输出主题和消息。
现在我已经向您展示了基础知识,是时候构建您的下一个出色的 PHP 电子邮件应用程序了!继续发送几封电子邮件至 davidwalshblog@gmail.com 以查看您的 eamil 在页面上的显示!
存在一些编码问题,我还没有找到包含图像的好方法。任何提示表示赞赏!
