Перейти к содержанию

Mailpiler Integration

Это простая интеграция алиасов animails и имени почтового ящика в mailpiler при использовании IMAP-аутентификации.

Отказ от ответственности: Этот проект официально не поддерживается и не сопровождается ни проектом animails, ни его участниками. Гарантия или поддержка не предоставляются, однако вы можете свободно открывать тикеты на GitHub для сообщения об ошибках или предложения новых идей. Репозиторий GitHub находится здесь.

Информация

Поддержка подстановочных знаков (wildcards) для доменов была реализована в Piler 1.3.10, выпущенном 03.01.2021. Предыдущие версии в целом работают, но после входа вы не увидите письма, отправленные с или на алиас домена (например, когда @example.com является алиасом для admin@example.com).

Проблема, требующая решения

mailpiler предлагает аутентификацию на основе IMAP, например:

$config['ENABLE_IMAP_AUTH'] = 1;
$config['IMAP_HOST'] = 'mail.example.com';
$config['IMAP_PORT'] =  993;
$config['IMAP_SSL'] = true;
  • Таким образом, когда вы входите под именем patrik@example.com, вы видите только доставленные письма, отправленные с этого или на этот конкретный адрес.
  • Если в animails определены дополнительные алиасы, такие как team@example.com, вы не увидите письма, отправленные на этот адрес или с него, даже если вы являетесь получателем писем, отправленных на этот алиас.

Подключившись к процессу аутентификации mailpiler, мы можем получить необходимые данные через API animails во время входа в систему. Это инициирует запросы к API animails (требуется доступ к API только для чтения) для считывания алиасов, в которых участвует ваш адрес электронной почты, а также «Имени» почтового ящика для его отображения в правом верхнем углу mailpiler после входа.

Разрешенные адреса электронной почты можно увидеть в настройках mailpiler в правом верхнем углу после входа в систему.

Информация

Эти данные запрашиваются только один раз во время процесса аутентификации. Авторизованные алиасы и реальное имя действительны в течение всей пользовательской сессии, так как mailpiler сохраняет их в данных сессии. Если пользователь будет удален из конкретного алиаса, это вступит в силу только после следующего входа в систему.

Решение

Примечание: Пути к файлам могут отличаться в зависимости от вашей конфигурации.

Требования

Внимание

Поскольку mailpiler проходит аутентификацию в animails (нашем IMAP-сервере), неудачные попытки входа пользователей или ботов могут привести к блокировке вашего экземпляра mailpiler. Поэтому вам стоит рассмотреть возможность внесения IP-адреса экземпляра mailpiler в белый список внутри animails: Configuration & Details - Configuration - Fail2ban parameters - Whitelisted networks/hosts.

Настройка

  1. Установите функцию кастомного запроса mailpiler, добавив следующее в /usr/local/etc/piler/config-site.php:

    $config['MAILCOW_API_KEY'] = 'ВАШ_API_КЛЮЧ_ТОЛЬКО_ДЛЯ_ЧТЕНИЯ';
    $config['MAILCOW_SET_REALNAME'] = true; // если не указано, значение по умолчанию — false
    $config['CUSTOM_EMAIL_QUERY_FUNCTION'] = 'query_animails_for_email_access';
    include('auth-animails.php');
    

    Вы также можете изменить имя хоста animails, если это необходимо:

    $config['MAILCOW_HOST'] = 'mail.domain.tld'; // по умолчанию используется $config['IMAP_HOST']
    

  2. Скачайте PHP-файл с функциями из репозитория GitHub:

    curl -o /usr/local/etc/piler/auth-animails.php https://raw.githubusercontent.com/patschi/mailpiler-animails-integration/master/auth-animails.php
    
  3. Готово!

Убедитесь, что вы заново вошли в систему с вашими учетными данными IMAP, чтобы изменения вступили в силу.

Если это не работает, скорее всего, что-то не так с самим запросом к API. Попробуйте выполнить отладку, отправляя ручные запросы к API. (Совет: откройте https://mail.domain.tld/api в вашем экземпляре)