Интеграция IMAP: создание задач из писем через свой почтовый сервер
Письма, отправленные на специальный адрес, автоматически превращаются в задачи в нужной колонке YouGile:
- Тема письма → название задачи
- Тело письма → описание задачи
- Вложения → прикрепляются к задаче
Требования
- Docker и Docker Compose
- Сервер с публичным IP-адресом
- Доступ к DNS-настройкам вашего домена
- Открытые порты: 25 (SMTP), 143 (IMAP), 993 (IMAPS)
Установка
Шаг 1: Настройка DNS
Добавьте записи для поддомена задач (например, tasks.company.com):
| Тип | Имя | Значение | Приоритет |
|---|---|---|---|
| A | tasks.company.com | IP_вашего_сервера | — |
| MX | tasks.company.com | tasks.company.com | 10 |
Важно: Замените
tasks.company.comна ваш поддомен,IP_вашего_серверана реальный IP.
Проверка DNS (после применения, обычно занимает 5–60 минут):
dig MX tasks.company.com
dig A tasks.company.com
Шаг 2: Настройка YouGile
- Откройте настройки компании в YouGile
- Перейдите в раздел «Интеграции» → «Почта»
- Укажите:
- Домен для задач:
tasks.company.com - Секретный ключ: скопируйте (понадобится для
.env)
- Домен для задач:
Шаг 3: Загрузка и настройка
Скачайте imap.zip, распакуйте в удобное место и заполните файл .env:
cp .env.example .env
# Порт веб-интерфейса mail-sync (не меняйте без необходимости)
YOUGILE_MAILSYNC_PORT=9001
# Порт IMAP (993 = SSL, 143 = без SSL)
YOUGILE_MAILSYNC_IMAP_PORT=993
# Служебный почтовый ящик (создаётся автоматически)
YOUGILE_MAILSYNC_IMAP_USER=not-found@tasks.company.com
# Пароль для служебного ящика (придумайте надёжный)
YOUGILE_MAILSYNC_IMAP_PASSWORD=ваш_надёжный_пароль
# Хост почтового сервера (совпадает с доменом)
YOUGILE_MAILSYNC_IMAP_HOST=tasks.company.com
# Секретный ключ из настроек YouGile
YOUGILE_MAILSYNC_API_SECRET=ключ_из_yougile
# Домен для задач (совпадает с IMAP_HOST)
YOUGILE_MAILSYNC_DOMAIN=tasks.company.com
Шаг 4: Запуск
chmod +x mail-sync.sh
./mail-sync.sh
Успешный вывод:
Created account: not-found@tasks.company.com
Created catch-all alias: @tasks.company.com -> not-found@tasks.company.com
Waiting for mailserver to be ready...
mailserver is ready!
Setup complete!
Шаг 5: Создание адреса для колонки
- В YouGile откройте нужную доску
- Нажмите на колонку → «Настройки» → «Email для задач»
- Скопируйте сгенерированный адрес (например,
h2vs9nqi66ivzhzjco0b@tasks.company.com)
Шаг 6: Проверка
Отправьте тестовое письмо на адрес колонки. Через несколько секунд задача должна появиться в YouGile.
Управление
Перезапуск
docker compose restart
Остановка
docker compose down
Полная переустановка
docker compose down
rm -rf docker-data
./mail-sync.sh
Просмотр логов
docker logs mail-sync --tail 50
docker logs mailserver --tail 50
Решение проблем
mail-sync не подключается к IMAP
Симптом: В логах ECONNREFUSED
Решение: Проверьте, что mailserver запущен:
docker ps | grep mailserver
docker logs mailserver --tail 20
Ошибка SSL-сертификата
Симптом: В логах unable to verify the first certificate или UNABLE_TO_VERIFY_LEAF_SIGNATURE
Решение: Скрипт автоматически настраивает доверие к CA через NODE_EXTRA_CA_CERTS. Если ошибка сохраняется — пересоздайте сертификаты:
docker compose down
rm -rf docker-data/dms/config/ssl
./mail-sync.sh
Письма не доставляются
Симптом: В логах mailserver bounced или rejected
Решение:
- Проверьте DNS-записи
- Проверьте, что порт 25 открыт и доступен извне
- Проверьте логи:
docker exec mailserver tail -50 /var/log/mail/mail.log
Задачи не создаются в YouGile
Симптом: Письмо доставлено, но задача не появилась
Решение:
- Проверьте
API_SECRETв.env - Проверьте логи mail-sync:
docker logs mail-sync --tail 50 - Убедитесь, что адрес колонки существует в YouGile
YouGile работает с самоподписанным сертификатом
Добавьте в docker-compose.yml для сервиса mail-sync:
environment:
- NODE_TLS_REJECT_UNAUTHORIZED=0
Затем перезапустите:
docker compose up -d