Статьи Обо мне

Mail Daemon v2 — как я автоматизировал почту — IMAP-to-Telegram агрегатор с AI

Mail Daemon — IMAP-to-Telegram агрегатор с AI

Я врач, и моя работа связана с постоянным получением и отправлением писем по электронной почте. Письма с результатами анализов, уведомления, график работы с пациентами — всё это в почте. Но я не всегда могу позволить себе отвлекаться на проверку почты в середине сеанса или между встречами. Поэтому я решил создать свой Mail Daemon — агрегатор, который будет мониторить мою почту, фильтровать важные письма и отправлять их мне в Telegram.

Проблема

У моего провайдера, MGTS, имеется проблема с SMTP-портами. Они блокируют доступ к этим портам, что означает, что я не могу использовать стандартный способ отправки писем по электронной почте. Это стало серьезной проблемой, поскольку я использовал этот метод для получения важных писем и уведомлений. В результате я был вынужден искать альтернативный способ решения этой проблемы.

Решение

Я решил использовать HTTPS API для получения писем из моей почты. Это решение позволяет мне избежать проблем с блокировкой SMTP-портов и получить доступ к моей почте через безопасный и надежный канал. Для этого я выбрал следующий стек технологий:

  • Python 3.11: я выбрал последнюю версию Python для своей разработки, поскольку она предоставляет лучшую поддержку новых функций и библиотек.
  • imaplib: эта библиотека позволяет мне подключиться к моей почте и получить доступ к писем.
  • python-telegram-bot: эта библиотека позволяет мне создать бота в Telegram и отправлять пользователю важные письма.
  • OpenRouter API: эта API позволяет мне получать доступ к моей почте и управлять им.
  • SQLite: я использовал эту базу данных для кэширования писем и предотвращения дубликатов.

Реализация

Мой агрегатор Mail Daemon состоит из следующих компонентов:

  1. Получение писем: я используя имаплиб подключаюсь к моей почте и получаю доступ к писем.
  2. Фильтрация письма: я фильтрую письма по ключевым словам, чтобы определить, является ли письмо важным.
  3. Суммаризация письма: я суммирую длинные письма, чтобы сделать их более короткими и удобными для чтения.
  4. dedup по Message-ID: я предотвращаю дублирование писем, используя Message-ID как уникальный идентификатор.
  5. Отправка письма: я отправляю важные письма в Telegram, используя python-telegram-bot.

Код

Здесь я предоставлю небольшой фрагмент кода, который демонстрирует реализацию агрегатора Mail Daemon:

import imaplib
import email
from python_telegram_bot import TelegramBot
import sqlite3

# Подключиться к почте
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('your_email@gmail.com', 'your_password')
mail.select('inbox')

# Получить письма
status, messages = mail.search(None, 'ALL')

# Фильтровать письма
key_words = ['анализ', 'результат', 'уведомление']
for msg_id in messages[0].split():
    status, msg = mail.fetch(msg_id, '(RFC822)')
    raw_email = msg[0][1]
    email_message = email.message_from_bytes(raw_email)
    if any(word in email_message['Subject'] for word in key_words):
        # Суммаризировать письмо
        text = ''
        for part in email_message.walk():
            if part.get_content_type() == 'text/plain':
                text += part.get_payload()
                break
        # Отправить письмо в Telegram
        bot = TelegramBot('your_bot_token')
        bot.send_message(text, chat_id='your_chat_id')

Результаты

Мой агрегатор Mail Daemon работает отлично! Я получаю важные письма и уведомления в Telegram, а также суммирую длинные письма, чтобы сделать их более короткими и удобными для чтения. Я также предотвращаю дублирование писем, используя Message-ID как уникальный идентификатор.

Выводы

Мой Mail Daemon — агрегатор с AI — является эффективным решением для получения важных писем и уведомлений в Telegram. Используя HTTPS API и SQLite для кэширования писем, я могу гарантировать, что мое решение будет надежным и безопасным. Кроме того, суммаризация длинных писем и предотвращение дублирования писем делают агрегатор более удобным и эффективным. Я рекомендую этот агрегатор всем врачам и специалистам, которые хотят получать важные письма и уведомления в Telegram.

📋 Копировать для: