Перейти к основному содержимому

Интеграция IMAP: создание задач из писем через свой почтовый сервер

Письма, отправленные на специальный адрес, автоматически превращаются в задачи в нужной колонке YouGile:

  • Тема письма → название задачи
  • Тело письма → описание задачи
  • Вложения → прикрепляются к задаче

Требования

  • Docker и Docker Compose
  • Сервер с публичным IP-адресом
  • Доступ к DNS-настройкам вашего домена
  • Открытые порты: 25 (SMTP), 143 (IMAP), 993 (IMAPS)

Установка

Шаг 1: Настройка DNS

Добавьте записи для поддомена задач (например, tasks.company.com):

ТипИмяЗначениеПриоритет
Atasks.company.comIP_вашего_сервера
MXtasks.company.comtasks.company.com10

Важно: Замените tasks.company.com на ваш поддомен, IP_вашего_сервера на реальный IP.

Проверка DNS (после применения, обычно занимает 5–60 минут):

dig MX tasks.company.com
dig A tasks.company.com

Шаг 2: Настройка YouGile

  1. Откройте настройки компании в YouGile
  2. Перейдите в раздел «Интеграции» → «Почта»
  3. Укажите:
    • Домен для задач: 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: Создание адреса для колонки

  1. В YouGile откройте нужную доску
  2. Нажмите на колонку → «Настройки» → «Email для задач»
  3. Скопируйте сгенерированный адрес (например, 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

Решение:

  1. Проверьте DNS-записи
  2. Проверьте, что порт 25 открыт и доступен извне
  3. Проверьте логи: docker exec mailserver tail -50 /var/log/mail/mail.log

Задачи не создаются в YouGile

Симптом: Письмо доставлено, но задача не появилась

Решение:

  1. Проверьте API_SECRET в .env
  2. Проверьте логи mail-sync: docker logs mail-sync --tail 50
  3. Убедитесь, что адрес колонки существует в YouGile

YouGile работает с самоподписанным сертификатом

Добавьте в docker-compose.yml для сервиса mail-sync:

environment:
- NODE_TLS_REJECT_UNAUTHORIZED=0

Затем перезапустите:

docker compose up -d