Primeiro código de retorno de e-mail de registro perdido

Para o primeiro e-mail de registro, instalado com a imagem Docker mais recente, meu servidor SMTP está respondendo com:

Código de retorno inesperado 554 (esperado 250):
“Acesso negado: O usuário `arn:aws:iam::[acct]:user/[user]' não está autorizado a executar `ses:SendRawEmail' no recurso `arn:aws:ses:us-west-1:[acct]:identity/[identity]'”.

No entanto, o arquivo de log do Discourse production.log mostra o seguinte:

Iniciado PUT "/finish-installation/resend-email" para [ip] em 2020-11-16 20:58:10 +0000
Processamento por FinishInstallationController#resend_email como HTML
  Parâmetros: ...
Concluído 200 OK em 23ms (Views: 6.4ms | ActiveRecord: 0.0ms | Alocações: 6023)
...
E-mail entregue [randid]@[hostname] (191.3ms)

Parece-me que o site, ou pelo menos os logs, deveriam retornar um erro, em vez de uma mensagem de sucesso.

Obrigado,
Jeff

1 curtida

Geralmente, os e-mails são enviados em uma fila em segundo plano, tornando isso invisível para o usuário.

No entanto, estou aberto a tornar o assistente um pouco mais elaborado e chamativo em caso de falhas, mas será necessário consultar o servidor para identificar isso. Provavelmente, trata-se de uma mudança bastante significativa; não tenho certeza.

2 curtidas

Para o assistente: está tudo bem se ele não exibir a falha. No entanto, também não deve indicar que o e-mail foi enviado com sucesso. Algo mais próximo da realidade seria mais útil. Se for muito difícil mostrar o status de retorno, seria melhor dizer: “e-mail de registro adicionado com sucesso à fila. verifique /path/to/log para o status.”

Para o log: a thread do worker deve registrar o status, especialmente quando houver um erro. Não estou familiarizado com a arquitetura, mas não vejo nada útil em “unicorn.stderr.log” ou em nenhum outro lugar. Algo deve estar consumindo o código de retorno e a mensagem de erro…

1 curtida

Se você estiver se sentindo aventureiro(a), ficarei mais do que feliz em ver um PR que melhore isso.

2 curtidas

Obrigado por estar aberto à mudança. Vou adicionar à minha lista de tarefas, mas não me ofenderei se alguém mais fizer isso primeiro :slight_smile:

1 curtida

Após o login de administrador, os erros de e-mail ficam visíveis no console de administração, indicando que estão armazenados no banco de dados e poderiam ter sido acessíveis via banco de dados antes da conclusão do primeiro registro de administrador.

A tabela skipped_email_logs contém as informações que eu procurava.

Se você estiver logado no contêiner do Discourse como usuário discourse, pode executar:

psql discourse -c "select * from skipped_email_logs"