Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检索和处理Gmail数据_Php_Mysql_Gmail_Email - Fatal编程技术网

Php 如何检索和处理Gmail数据

Php 如何检索和处理Gmail数据,php,mysql,gmail,email,Php,Mysql,Gmail,Email,我正在做一个项目,涉及处理Gmail历史记录中的数据 具体来说,我想生成一个多页面样式的PDF,它为大约100人中的每一个人都有一个自定义页面-显示数据,如过去一年发送的电子邮件数量、过去一年接收的电子邮件数量、电子邮件的平均字长、电子邮件中最常用的术语、发送或接收的最早电子邮件的日期,甚至可能是每封电子邮件中感叹号或咒骂的平均数量,等等 我看到了,它有一个有用的链接,但是有人能帮我解决这样一个项目的架构和难度吗 我设想: 编写一个php脚本,在我的Gmail数据上运行一些IMAP函数,并将其写

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

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

我看到了,它有一个有用的链接,但是有人能帮我解决这样一个项目的架构和难度吗

我设想:

  • 编写一个php脚本,在我的Gmail数据上运行一些IMAP函数,并将其写入MySQL数据库
  • 编写另一个脚本,在数据库上运行MySQL查询循环,并根据结果打印成PDF

  • 首先,您需要PHPIMAP库。 然后,只需使用以下简单的分步教程:

    $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');
    
    阅读更多详细选项。搜索字符串“标记搜索条件””或阅读PHP文档

    此代码将处理检索到的消息(然后您可以随意将其处理到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";
        }
    }