Email2Post: Ваш почтовый ящик снова стал CMS
Или как мы через 7 лет вернулись к идее публикации из email и сделали standalone-решение на чистом PHP
В 2019 году мы опубликовали материал «Ищем разраба: DLE-PostingNews2email — Размещение новостей из сообщений электронной почты». Идея была простая: взять почтовый ящик, подключить его к DLE и дать авторам возможность писать статьи в привычном почтовом клиенте. Тогда проект не пошёл в серию — требовалось слишком много «костылей» под архитектуру DLE, а интерес со стороны заказчиков был точечным.
В 2026 году мы пересмотрели подход. Вместо того чтобы встраиваться в движок, мы сделали полностью независимый скрипт на чистом PHP. Встречайте — Email2Post (https://github.com/tcse/Email2Post).
В статье «Священная война разметок: почему DLE хранит HTML, а Telegram — чистый текст» мы подробно разбирали разницу в подходе к хранению контента. Email2Post — это идеальный компромисс:
Такой подход даёт главное преимущество: контент не замыкается в одном формате. Из одних и тех же данных вы можете сгенерировать:
Это именно то, о чём мы говорили в статье «Идеи для скриптов: направления, которые мы видим, но пока не реализуем» — контент должен жить независимо от платформы.
Мы сделали минимально жизнеспособный продукт, который можно развернуть на любом хостинге с PHP и поддержкой IMAP. Вы получаете:
Пример письма с паролем и cut-ом:
Результат на сайте:
Вся логика парсинга реализована в отдельных парсерах (markdown.php, bbcode.php), которые можно легко дополнить или заменить.
Мы сознательно ограничили первую версию, чтобы она оставалась максимально понятной для самостоятельного использования. В коммерческой версии Email2Post-Pro (приватный репозиторий) появляются возможности для профессиональных проектов:
Pro-версия — это решение для тех, кому нужен не просто блог из писем, а полноценный сайт с кастомным дизайном, поддержкой больших объёмов данных (до 50 000+ постов) и интеграцией с внешними сервисами.
Владельцам небольших проектов, которые хотят вести новостную ленту или блог без захода в админку.
Авторам, которые привыкли работать с почтой — написал письмо, отправил, статья опубликована.
Разработчикам, которым нужен простой, документированный PHP-скрипт для встраивания в свои решения.
Клиентам TCSE, которые перерастают возможности бесплатной версии и хотят получить индивидуальную доработку.
Email2Post — это не просто «ещё один скрипт». Это реализация идеи, которая лежала в основе нескольких наших статей и проектов последних лет. Мы наконец-то разделили контент и его представление, сделав ставку на чистые данные и гибкую систему парсинга.
Вы можете использовать бесплатную версию прямо сейчас, а когда понадобится больше — мы всегда готовы помочь с расширением функционала под вашу задачу.
Полезные ссылки:
В 2019 году мы опубликовали материал «Ищем разраба: DLE-PostingNews2email — Размещение новостей из сообщений электронной почты». Идея была простая: взять почтовый ящик, подключить его к DLE и дать авторам возможность писать статьи в привычном почтовом клиенте. Тогда проект не пошёл в серию — требовалось слишком много «костылей» под архитектуру DLE, а интерес со стороны заказчиков был точечным.
В 2026 году мы пересмотрели подход. Вместо того чтобы встраиваться в движок, мы сделали полностью независимый скрипт на чистом PHP. Встречайте — Email2Post (https://github.com/tcse/Email2Post).
🎯 Философия: данные vs. разметка
В статье «Священная война разметок: почему DLE хранит HTML, а Telegram — чистый текст» мы подробно разбирали разницу в подходе к хранению контента. Email2Post — это идеальный компромисс:
- В письме вы пишете в удобной вам разметке (Markdown, BBCode или просто текст с переносами строк).
- В JSON хранится исходный текст с сохранением форматирования и ссылок.
- На сайте происходит преобразование разметки в HTML на лету.
Такой подход даёт главное преимущество: контент не замыкается в одном формате. Из одних и тех же данных вы можете сгенерировать:
- HTML для сайта,
- RSS / JSON Feed для агрегаторов и подкастов,
- структурированный текст для Telegram Instant View,
- AMP-версии для мобильного поиска,
- а в перспективе — экспорт в PDF или голосовое озвучивание.
Это именно то, о чём мы говорили в статье «Идеи для скриптов: направления, которые мы видим, но пока не реализуем» — контент должен жить независимо от платформы.
📦 Что входит в Email2Post (бесплатная версия)
Мы сделали минимально жизнеспособный продукт, который можно развернуть на любом хостинге с PHP и поддержкой IMAP. Вы получаете:
| Компонент | Реализация |
| Приём писем | IMAP-парсер, проверка по cron |
| Форматы контента | Автоопределение Markdown, BBCode, Plain text |
| Шорткоды | [p:пароль], [cut], [end], [status], [tags], [format:markdown] |
| Медиафайлы | Сохранение вложений, галерея изображений, аудио-плеер |
| Хранение | JSON-файлы (не требует БД) |
| Шаблон | Адаптивный minimal на чистом PHP |
| ЧПУ | Правила .htaccess для красивых URL |
🧪 Технические детали
Пример письма с паролем и cut-ом:
[p:blog2emqil2026]
# Заголовок статьи
Это краткое введение. Оно попадёт в `caption` и отобразится в ленте блога.
[cut]
А это полный текст статьи. Он будет виден только на странице самого поста.
[code]
[format:markdown]
## Заголовок второго уровня
Текст с **разметкой** Markdown.
* Пункт списка 1
* Пункт списка 2
Результат на сайте:
- https://ваш-сайт.ru/post/email123 — страница поста с преобразованным HTML.
- https://ваш-сайт.ru/page/2 — пагинация.
- https://ваш-сайт.ru/tag/новости — страница тега.
Вся логика парсинга реализована в отдельных парсерах (markdown.php, bbcode.php), которые можно легко дополнить или заменить.
🚀 Развёртывание за 5 минут
- Скачать репозиторий:
git clone https://github.com/tcse/Email2Post.git
- Загрузить на хостинг в любую папку (например, /blog/).
- Настроить data/config.php:
'email' => [
'imap' => [
'host' => '{imap.ваш-провайдер.ru:993/imap/ssl}INBOX',
'username' => 'blog@ваш-сайт.ru',
'password' => 'ваш_пароль',
],
'publish_passwords' => [
'blog2emqil2026' => 'Имя Автора',
],
],
'base_url' => 'https://ваш-сайт.ru/blog/',
- Настроить cron для автоматической проверки почты:
*/10 * * * * php /путь/до/папки/core/cron/email_parser.php
- Готово! Отправляйте письма на blog@ваш-сайт.ru — они превратятся в статьи.
⚠️ Чего нет в бесплатной версии (и что мы добавили в Pro)
Мы сознательно ограничили первую версию, чтобы она оставалась максимально понятной для самостоятельного использования. В коммерческой версии Email2Post-Pro (приватный репозиторий) появляются возможности для профессиональных проектов:
| Функция | Бесплатно | Pro |
| AMP-страницы | ❌ | ✅ Генерация ускоренных мобильных версий |
| Telegram Instant View | ❌ | ✅ Автоматические теги tg:siteverification + редирект для бота |
| Шаблонизатор | ❌ | ✅ DLE-like теги [image-x], {short-story}, [if condition] |
| RSS / JSON Feed | ❌ | ✅ Гибкая настройка лент, подкаст-фид |
| Sitemap.xml | ❌ | ✅ Автоматическое обновление карты сайта |
| Модерация по email | ✅ (базовая) | ✅ Управление опубликованными постами (редактирование, удаление) |
| Базы данных | ❌ (только JSON) | ✅ SQLite / MySQL (миграция из JSON) |
| Мультипользователи | ❌ | ✅ Роли «админ», «редактор», «автор» |
Pro-версия — это решение для тех, кому нужен не просто блог из писем, а полноценный сайт с кастомным дизайном, поддержкой больших объёмов данных (до 50 000+ постов) и интеграцией с внешними сервисами.
пример хранения записей блога в статическом json
🧩 Кому подходит Email2Post?
Владельцам небольших проектов, которые хотят вести новостную ленту или блог без захода в админку.
Авторам, которые привыкли работать с почтой — написал письмо, отправил, статья опубликована.
Разработчикам, которым нужен простой, документированный PHP-скрипт для встраивания в свои решения.
Клиентам TCSE, которые перерастают возможности бесплатной версии и хотят получить индивидуальную доработку.
💎 Итог
Email2Post — это не просто «ещё один скрипт». Это реализация идеи, которая лежала в основе нескольких наших статей и проектов последних лет. Мы наконец-то разделили контент и его представление, сделав ставку на чистые данные и гибкую систему парсинга.
Вы можете использовать бесплатную версию прямо сейчас, а когда понадобится больше — мы всегда готовы помочь с расширением функционала под вашу задачу.
Полезные ссылки:
- Репозиторий Email2Post на GitHub (MIT license)
- Демонстрационный сайт
- Пост в Telegram-канале TCSE — обсудить проект, задать вопросы