Php 将POP(Gmail)电子邮件保存到MySQL数据库的最有效方法

Php 将POP(Gmail)电子邮件保存到MySQL数据库的最有效方法,php,python,mysql,bash,email,Php,Python,Mysql,Bash,Email,我需要对从Gmail收到的电子邮件进行查询。当我运行谷歌商务应用程序时,我可以访问POP和IMAP。为了避免使用API,我只想将电子邮件下载到MySQL数据库。最后,我将展示CRM的使用统计数据和指标,但现在我只需要定期下载(每5分钟下载一次) 附加信息:我正在使用Ubuntu 14.04。我的应用程序将使用PHP构建,但为了简单起见,我可以使用bash或Python脚本抓取所有电子邮件。在这一点上我并不挑剔 我遇到过一些非常过时的PHP脚本,但我想知道是否有更为最新的: 另外,我打算使用一

我需要对从Gmail收到的电子邮件进行查询。当我运行谷歌商务应用程序时,我可以访问POP和IMAP。为了避免使用API,我只想将电子邮件下载到MySQL数据库。最后,我将展示CRM的使用统计数据和指标,但现在我只需要定期下载(每5分钟下载一次)

附加信息:我正在使用Ubuntu 14.04。我的应用程序将使用PHP构建,但为了简单起见,我可以使用bash或Python脚本抓取所有电子邮件。在这一点上我并不挑剔

我遇到过一些非常过时的PHP脚本,但我想知道是否有更为最新的:


另外,我打算使用一个开源的电子邮件客户端,比如WebMail Lite或Roundcube,但他们似乎没有将电子邮件保存到数据库中,尽管我认为他们实际上可能使用一个API,该API可能允许我获取所需的统计数据,但是,我在想会有一个更有效的解决方案。

这么简单的东西不需要整个库

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'myemail@gmail.com';
$password = 'mypassword';
$inbox = imap_open($hostname,$username,$password);
$emails = imap_search($inbox,'ALL');
foreach($emails as $e){
    $overview = imap_fetch_overview($inbox,$e,0);
    $message = imap_fetchbody($inbox,$e,2);
    // the body of the message is in $message
    $details = $overview[0];
    // you can do a var_dump($details) to see which parts you need
    //then do whatever to insert them into your DB
}

哇,太简单了!似乎还有一个imap_搜索功能,允许我缩小搜索结果范围并进行一些基本计算。如果是这样的话,从技术上讲,我可以动态地执行所有度量,而不是将它们保存到数据库中。谢谢你,阿德尔菲亚!绝对地,它直接用于
foreach
,您可以使用任何搜索条件,在我的示例中,我使用“ALL”返回所有电子邮件。我得到错误“未知:在[ALERT]之后重试普通身份验证”