Discourse/mail-receiver: l'immagine Docker di release sembra essere obsoleta

Ciao,

Penso che l’immagine Docker ufficiale discourse/mail-receiver:release sia stata trascurata e non sia stata ricostruita da molto tempo.

Il repository GitHub è ancora attivamente mantenuto:

Tuttavia, l’immagine Docker ufficiale:

discourse/mail-receiver:release

sembra essere stata costruita quasi 2 anni fa.

Questo sembra causare problemi di compatibilità con le versioni attuali di Discourse.

Nel mio caso, la posta in entrata raggiunge correttamente il ricevitore di posta, ma viene rifiutata durante RCPT TO con:

450 4.7.1 Recipient address rejected: Internal error, API request failed

L’immagine Docker vecchia sembra ancora utilizzare il meccanismo smtp_should_reject / fast-rejection.

Tuttavia, il codice sorgente di Discourse attuale contiene questo commento:

# this endpoint has been broken for years
# and was used only in the public mail-receiver's fast rejection code,
# which is removed in https://github.com/discourse/mail-receiver/pull/33

La PR #33 ha già rimosso quel codice di fast-rejection da mail-receiver, ma quei cambiamenti non sembrano essere inclusi nell’immagine discourse/mail-receiver:release attualmente pubblicata.

La documentazione/README ufficiale di mail-receiver istruisce ancora gli utenti a utilizzare:

discourse/mail-receiver:release

Quindi mi chiedo se il processo di pubblicazione dell’immagine Docker sia stato semplicemente dimenticato dopo i recenti cambiamenti.

Potresti per favore verificare se è necessario costruire e pubblicare una nuova immagine discourse/mail-receiver:release?

Grazie!

Aggiornamento: ho testato il ramo main attuale

Ho compilato localmente il ramo main attuale e ho riscontrato un altro problema.

L’immagine release su Docker Hub esegue ancora il vecchio codice di rifiuto rapido (fast-rejection) e fallisce durante RCPT con:

450 4.7.1 Recipient address rejected: Internal error, API request failed

Tuttavia, il ramo main attuale ha già rimosso l’implementazione di smtp_should_reject / rifiuto rapido. Dopo aver compilato main, Postfix fallisce invece con:

warning: connect to private/policy: No such file or directory
451 4.3.5 Recipient address rejected: Server configuration problem

Ho tracciato questo problema a due riferimenti residui nel Dockerfile:

check_policy_service unix:private/policy

Il servizio policy è stato rimosso, ma smtpd_recipient_restrictions fa ancora riferimento al suo socket.

Ho rimosso unix:private/policy da smtpd_recipient_restrictions, ho ricompilato l’immagine e la posta SMTP in entrata è stata quindi accettata con successo.

Dopo il passaggio a una Global API Key, anche la consegna a Discourse ha avuto successo:

dsn=2.0.0, status=sent (delivered via discourse service)

Sembra quindi che ci siano due problemi separati:

  1. L’immagine discourse/mail-receiver:release pubblicata è obsoleta e contiene ancora la vecchia implementazione di rifiuto rapido.
  2. Il ramo main attuale ha rimosso quell’implementazione, ma il Dockerfile configura ancora Postfix per utilizzare unix:private/policy.

Potrebbe esserci anche un problema separato con le API key granulari: una key limitata solo a receive emails ha restituito HTTP 404 da /admin/email/handle_mail, mentre una Global API Key ha restituito HTTP 200.

Posso inviare una PR per i due riferimenti obsoleti a private/policy nel Dockerfile, se ciò fosse utile.