Найти в Дзене
Уха из Питуха

Скрипт для скачивания заголовков писем с вашей почты и объединения их в один документ

📌 План действий Для автоматизации процесса скачивания заголовков писем с вашей почты и объединения их в один документ мы будем использовать язык программирования Python вместе с популярными библиотеками для работы с электронной почтой и обработки данных.   Шаг 1: Выбор инструментов и технологий Мы выберем следующий стек технологий: Python — простой и мощный язык программирования, идеально подходящий для автоматизации задач. Библиотека imaplib — встроенная библиотека Python для взаимодействия с серверами электронной почты по протоколу IMAP. Модуль email — стандартная библиотека Python для парсинга и обработки сообщений электронной почты. Стандартные модули csv, json или работа с обычным текстом для сохранения результата в удобный формат.   Шаг 2: Подготовка среды разработки Убедитесь, что у вас установлен Python версии 3.x. Установка дополнительных пакетов не потребуется, так как необходимые библиотеки входят в стандартный комплект поставки Python.   Шаг 3: Создание скрипта

📌 План действий

Для автоматизации процесса скачивания заголовков писем с вашей почты и объединения их в один документ мы будем использовать язык программирования Python вместе с популярными библиотеками для работы с электронной почтой и обработки данных.

 

Шаг 1: Выбор инструментов и технологий

Мы выберем следующий стек технологий:

Python — простой и мощный язык программирования, идеально подходящий для автоматизации задач.

Библиотека imaplib — встроенная библиотека Python для взаимодействия с серверами электронной почты по протоколу IMAP.

Модуль email — стандартная библиотека Python для парсинга и обработки сообщений электронной почты.

Стандартные модули csv, json или работа с обычным текстом для сохранения результата в удобный формат.

 

Шаг 2: Подготовка среды разработки

Убедитесь, что у вас установлен Python версии 3.x. Установка дополнительных пакетов не потребуется, так как необходимые библиотеки входят в стандартный комплект поставки Python.

 

Шаг 3: Создание скрипта

Вот готовый рабочий пример скрипта, который скачает заголовки ваших писем и сохранит их в файл формата CSV:

 ' ' 'html

import imaplib

import email

import csv

# Настройки подключения к почте

EMAIL = "your_email@example.com"

PASSWORD = "your_password"

IMAP_SERVER = "imap.example.com"

def fetch_emails():

  # Создаем соединение с сервером IMAP

  mail = imaplib.IMAP4_SSL(IMAP_SERVER)

   

  try:

    # Авторизация

    mail.login(EMAIL, PASSWORD)

     

    # Выбираем папку входящих сообщений

    mail.select("inbox")

     

    # Получаем список всех писем

    _, data = mail.search(None, "ALL")

    email_ids = data[0].split()

     

    emails_data = []

     

    for e_id in email_ids:

      # Получаем данные письма

      _, msg_data = mail.fetch(e_id, "(RFC822)")

       

      raw_email = msg_data[0][1]

      if isinstance(raw_email, bytes):

        raw_email_str = raw_email.decode('utf-8')

         

      # Парсим письмо

      message = email.message_from_string(raw_email_str)

       

      subject = message["Subject"]

      sender = message.get("From")

      date = message.get("Date")

       

      emails_data.append({

        "От кого": sender,

        "Тема": subject,

        "Дата": date

      })

     

    return emails_data

   

  finally:

    # Закрываем соединение

    mail.logout()

def save_to_csv(data, filename="emails.csv"):

  with open(filename, mode='w', newline='', encoding='utf-8') as f:

    fieldnames = ["От кого", "Тема", "Дата"]

    writer = csv.DictWriter(f, fieldnames=fieldnames)

     

    writer.writeheader()

    writer.writerows(data)

if __name__ == "__main__":

  print("Загрузка заголовков писем...")

  emails_data = fetch_emails()

  print(f"Скачано {len(emails_data)} писем.")

   

  save_to_csv(emails_data)

  print("Данные успешно сохранены в файл emails.csv!")

 

' ' '

 

Шаг 4: Запуск и тестирование скрипта

Перед запуском убедитесь, что вы указали правильные значения переменных EMAIL, PASSWORD и IMAP_SERVER в верхней части скрипта. Затем запустите скрипт командой:

 

python script.py

 

Скрипт создаст файл emails.csv , содержащий три колонки: отправителя, тему и дату каждого письма.

 

Дополнительные рекомендации

Безопасность: Храните ваши учетные данные отдельно от кода, например, в отдельном конфигурационном файле или используйте менеджер секретов.

Фильтрация писем: Можно добавить фильтрацию писем по различным критериям (например, скачать только письма за последние сутки или только от определенного отправителя).

Формат вывода: Вместо CSV-файла можно выбрать любой другой формат хранения данных (JSON, TXT и т.д.)

Теперь у вас есть базовый работающий скрипт, который легко адаптировать под конкретные нужды вашего проекта.