Как получить и обработать данные Gmail


Я делаю проект, который включает в себя обработку данных из моей истории Gmail.

В частности, я хочу создать многостраничный PDF-файл, который имеет пользовательскую страницу для каждого из 100 или около того людей-показывая такие данные , как количество электронных писем, отправленных в прошлом году, количество электронных писем, полученных в прошлом году, средняя длина слова электронной почты, наиболее часто используемые термины в электронной почте, дата самой старой электронной почты, отправленной или полученной, возможно, даже среднее количество восклицательных знаков или ругательств на электронную почту., и т.д.

Я видел этот вопрос, который имел полезную ссылку на функции IMAP в руководстве PHP , но может ли кто-нибудь помочь мне с тем, какова архитектура и сложность такого проекта?

Я представляю:

  1. напишите php-скрипт для запуска некоторых функций IMAP на моих данных Gmail и запишите их в базу данных MySQL.
  2. напишите другой скрипт для запуска цикла запросов MySQL к базе данных и печати в PDF на основе полученных результатов
1 2

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. это не так уж трудно, как только вы поймете основной поток.