Обновление: я протестировал текущую ветку main
Я собрал текущую ветку main локально и обнаружил ещё одну проблему.
Старый образ release на Docker Hub по-прежнему использует старый код быстрого отклонения и во время RCPT выдаёт ошибку:
450 4.7.1 Recipient address rejected: Internal error, API request failed
Однако в текущей ветке main реализация smtp_should_reject / быстрого отклонения уже удалена. После сборки main Postfix вместо этого выдаёт ошибку:
warning: connect to private/policy: No such file or directory
451 4.3.5 Recipient address rejected: Server configuration problem
Я выяснил, что это связано с двумя оставшимися ссылками в Dockerfile:
check_policy_service unix:private/policy
Сам сервис политики был удалён, но smtpd_recipient_restrictions по-прежнему ссылается на его сокет.
Я удалил unix:private/policy из smtpd_recipient_restrictions, пересобрал образ, и входящая SMTP-почта успешно принималась.
После переключения на глобальный API-ключ доставка в Discourse также прошла успешно:
dsn=2.0.0, status=sent (delivered via discourse service)
Похоже, что есть две отдельные проблемы:
- Опубликованный образ
discourse/mail-receiver:releaseустарел и по-прежнему содержит старую реализацию быстрого отклонения. - В текущей ветке
mainэта реализация была удалена, но вDockerfilePostfix по-прежнему настроен на использованиеunix:private/policy.
Возможно, также есть отдельная проблема с гранулярными API-ключами: ключ, ограниченный только функцией receive emails, возвращал HTTP 404 с /admin/email/handle_mail, тогда как глобальный API-ключ возвращал HTTP 200.
Я могу отправить PR для исправления двух устаревших ссылок на private/policy в Dockerfile, если это поможет.