И так, допустим у вас есть почта на mail.ru. Там накопилось много-много писем, например 30 Гб. Можно попробовать использовать эти письма как холодную базу. Можно проанализировать тексты, домены в адресах, частоту поступлений писем, даты и т.п. Как скачать всю эту корреспонденцию? Вооружимся языком программирования python, но сначала подготовительный этап. Нужно сделать специальный доступ для python-скрипта, чтобы через него получать данные.
Шаг №1. В интерфейсе почты заходим в «Настройки»
Шаг №2. Выбираем пункт «Все настройки безопасности»
Шаг №3. Далее «Пароли для внешних приложений»
Шаг №4. Если к почте не привязан номер мобильника, то нужно привязать
Шаг №5. Добавляем телефон
Шаг №6. Возвращаемся в раздел «Пароли для внешних приложений»
Шаг №7. Задаём название для пароля на скрипт python. Например python_script
Шаг №8. Настройка уровня доступа к почте
Шаг №9. Подтверждаем что вы – это вы
Шаг №10. Получение пароля для python-скрипта
Шаг №11. Видим список всех паролей для приложений
Полученный пароль сохраняем в txt-файл keeper.txt. Адрес почты также сохраняем в отдельный txt-файл mail.txt, они нам потом пригодятся в коде. На этом настройки на стороне почтового ящика окончены. Приступаем к написанию кода для скачивания всех писем.
Шаг №12. Пишем скрипт на python в Jupyter Notebook
Все письма сохранятся в указанную вами папку some_folder. Название файлов будет равно UID писем с расширением .eml.
Несколько нюансов
- Скрипт не удаляет письма с сервера почты! На компьютер выгружаются только копии.
- Если писем много, порядка 70 000 шт., то они будут долго выгружаться. Конкретно у меня ушло 2 дня на выгрузку такого количества (70 000 шт.) на мобильном интернете.
- При этом не должно быть выключений инета и засыпаний компьютера, иначе скрипт прервёт свою работу.
- Если работа скрипта будет прервана, то можно начать выгрузку с последнего письма, дописав скрипт сравнения имеющегося списка файлов с тем, что на почте. Для этого мы и прописывали в названии UID =)
После выгрузки всех писем можно приступать к аналитике, но это уже другая история.
Код на GitHub: https://gist.github.com/MikyPo/8eb32cc16f313ec107340ea2d8133368