Discourse/mail-receiver:release a imagem Docker parece estar desatualizada

Olá,

Acredito que a imagem Docker oficial discourse/mail-receiver:release tenha sido negligenciada e não tenha sido reconstruída há bastante tempo.

O repositório no GitHub ainda é ativamente mantido:

No entanto, a imagem Docker oficial:

discourse/mail-receiver:release

parece ter sido construída há quase 2 anos.

Isso parece causar problemas de compatibilidade com as versões atuais do Discourse.

No meu caso, os e-mails recebidos chegam ao mail receiver com sucesso, mas são rejeitados durante o RCPT TO com a mensagem:

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

A imagem Docker antiga ainda parece usar o mecanismo de smtp_should_reject / rejeição rápida.

No entanto, o código-fonte atual do Discourse contém este comentário:

# 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

O PR #33 já removeu esse código de rejeição rápida do mail-receiver, mas essas mudanças não parecem estar incluídas na imagem discourse/mail-receiver:release atualmente publicada.

A documentação/README oficial do mail-receiver ainda instrui os usuários a usar:

discourse/mail-receiver:release

Portanto, me pergunto se o processo de publicação da imagem Docker foi simplesmente esquecido após as mudanças recentes.

Poderiam verificar se uma nova imagem discourse/mail-receiver:release precisa ser construída e publicada?

Obrigado!

Atualização: Testei o branch main atual

Compilei o branch main atual localmente e encontrei outro problema.

A imagem release antiga no Docker Hub ainda executa o antigo código de rejeição rápida (fast-rejection) e falha durante o RCPT com:

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

No entanto, o branch main atual já removeu a implementação de smtp_should_reject / rejeição rápida. Após compilar o main, o Postfix falha com:

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

Rastreie isso até duas referências remanescentes no Dockerfile:

check_policy_service unix:private/policy

O próprio serviço de política foi removido, mas smtpd_recipient_restrictions ainda referencia seu socket.

Removi unix:private/policy de smtpd_recipient_restrictions, reconstruí a imagem e o e-mail SMTP de entrada foi aceito com sucesso.

Após alternar para uma Chave de API Global, a entrega para o Discourse também teve sucesso:

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

Parece haver dois problemas separados:

  1. A imagem discourse/mail-receiver:release publicada está desatualizada e ainda contém a antiga implementação de rejeição rápida.
  2. O branch main atual removeu essa implementação, mas o Dockerfile ainda configura o Postfix para usar unix:private/policy.

Também pode haver um problema separado com chaves de API granulares: uma chave escopada apenas para receive emails retornou HTTP 404 de /admin/email/handle_mail, enquanto uma Chave de API Global retornou HTTP 200.

Posso enviar um PR para as duas referências obsoletas de private/policy no Dockerfile, se isso for útil.

2 curtidas

Posso confirmar a imagem de release desatualizada a partir de outra alteração em mail-receiver.

Abri este PR, que foi mesclado em 11 de agosto:

Ele altera o mail receiver de:

post.set_form_data(email: @mail)

para o parâmetro mais novo email_encoded esperado pelo Discourse.

Após a fusão do PR, reconstruí o mail-receiver em 17 de agosto, mas o container recém-construído ainda continha:

post.set_form_data(email: @mail)

Adicionei os detalhes ao PR mesclado aqui:

Reconstruí novamente em 22 de agosto e o ./launcher rebuild mail-receiver relatou que a imagem de release publicada estava atualizada, com o digest:

sha256:2a0d45bb92a783c846a821e635413764eeadb3441ef6190085545a4bf054cb1e

O recebimento de e-mails ainda funciona na minha instalação, mas cada e-mail recebido continua a disparar o aviso do Discourse:

the email parameter is deprecated

porque a imagem publicada não contém a alteração mesclada em #37.

Portanto, isso parece confirmar de forma independente o primeiro problema que você encontrou: as alterações mescladas no repositório mail-receiver não estão sendo incluídas na imagem discourse/mail-receiver:release publicada.

2 curtidas

Discutindo internamente, concordo que o projeto está em um estado estranho… ele é mantido? Não é mantido? É difícil de dizer.

Internamente, usamos uma imagem diferente; esta é apenas para quem faz auto-hospedagem e, muitas vezes, as atualizações ficam pendentes.

Estou tentando descobrir se desistimos da publicação do Docker aqui e passamos para a conta pessoal de alguém, ou se mantemos essa coisa.

Mantenham isso, por favor. É necessário e relativamente muito usado.

2 curtidas