Как получить и обработать данные Gmail
Я делаю проект, который включает в себя обработку данных из моей истории Gmail.
В частности, я хочу создать многостраничный PDF-файл, который имеет пользовательскую страницу для каждого из 100 или около того людей-показывая такие данные , как количество электронных писем, отправленных в прошлом году, количество электронных писем, полученных в прошлом году, средняя длина слова электронной почты, наиболее часто используемые термины в электронной почте, дата самой старой электронной почты, отправленной или полученной, возможно, даже среднее количество восклицательных знаков или ругательств на электронную почту., и т.д.
Я видел этот вопрос, который имел полезную ссылку на функции IMAP в руководстве PHP , но может ли кто-нибудь помочь мне с тем, какова архитектура и сложность такого проекта?
Я представляю:
- напишите php-скрипт для запуска некоторых функций IMAP на моих данных Gmail и запишите их в базу данных MySQL.
- напишите другой скрипт для запуска цикла запросов MySQL к базе данных и печати в PDF на основе полученных результатов
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"; } }
Отвечая на ваш дополнительный вопрос:
- можно обрабатывать электронную почту на локальном сервере или даже с вашего собственного ноутбука / рабочего стола. Он работает так же, как и настольный почтовый клиент.
- это не так уж трудно, как только вы поймете основной поток.