【问题标题】:How to retrieve and process Gmail data如何检索和处理 Gmail 数据
【发布时间】:2011-05-09 23:14:12
【问题描述】:

我正在做一个项目,涉及处理我的 Gmail 历史记录中的数据。

具体来说,我想生成一个多页样式的 PDF,该 PDF 为 100 人左右的每一个人提供一个自定义页面 - 显示过去一年发送的电子邮件数量、收到的电子邮件数量等数据过去一年,电子邮件的平均字长,电子邮件中最常用的术语,发送或接收的最早电子邮件的日期,甚至每封电子邮件的感叹号或咒骂的平均数量等。

我看到了this question,它有一个指向IMAP functions in the PHP manual 的有用链接,但是有人可以帮助我了解这样一个项目的架构和难度吗?

我正在设想:

  1. 编写一个 php 脚本来对我的 Gmail 数据运行一些 IMAP 函数并将其写入 MySQL 数据库。
  2. 编写另一个脚本以在数据库上运行 MySQL 查询循环并根据结果打印到 PDF

【问题讨论】:

    标签: php mysql gmail email


    【解决方案1】:

    首先,你需要 php imap 库。 然后,只需使用这个简单的分步教程:

    $email    = "email@gmail.com";//or alamatemail@nama_domain_hosted
    $password = "ini password anda";
     
    $imap_host = "{imap.gmail.com:993/imap/ssl}";
     
    $imap_folder = "INBOX"; //it's what is called label in Gmail
     
    $mailbox = imap_open($imap_host . $imap_folder,$email,$password) or die('Failed to open connection with Gmail: ' . imap_last_error());
    

    使用上面的代码,您已经创建了与 Gmail 的连接。
    现在,如果您想搜索特定消息,请使用:

    $emails = imap_search( $mailbox, 'ALL');
    

    阅读RFC 1176 了解更多详细选项。搜索字符串“tag SEARCH search_criteria”或阅读 PHP 的 imap_search 文档。

    此代码将处理检索到的消息(然后您可以随意将其处理到 MySQL):

    if( $emails )
    {
        foreach( $emails as $email_id)
        {
            $email_info = imap_fetch_overview($mailbox,$email_id,0);
            $message = imap_fetchbody($mailbox,$email_id,2);
            echo "Subject: " . $email_info[0]->subject . "\n";
            echo "Message: " . $message . "\n";
        }
    }
    

    回答您的附加问题:

    1. 可以在本地服务器上处理电子邮件,甚至可以从您自己的笔记本电脑/台式机上处理电子邮件。它的工作方式与桌面电子邮件客户端的工作方式相同。
    2. 一旦掌握了基本流程,就没有那么难了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      相关资源
      最近更新 更多