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 состоит из следующих компонентов:
- Получение писем: я используя имаплиб подключаюсь к моей почте и получаю доступ к писем.
- Фильтрация письма: я фильтрую письма по ключевым словам, чтобы определить, является ли письмо важным.
- Суммаризация письма: я суммирую длинные письма, чтобы сделать их более короткими и удобными для чтения.
- dedup по Message-ID: я предотвращаю дублирование писем, используя Message-ID как уникальный идентификатор.
- Отправка письма: я отправляю важные письма в 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.