Primer código de retorno del correo electrónico de registro perdido

Para el correo de registro inicial, instalado con la imagen Docker más reciente, mi servidor SMTP responde con:

Código de retorno inesperado 554 (se esperaba 250):
“Acceso denegado: El usuario `arn:aws:iam::[acct]:user/[user]' no está autorizado para realizar `ses:SendRawEmail' en el recurso `arn:aws:ses:us-west-1:[acct]:identity/[identity]'”.

Sin embargo, el archivo de registro de Discourse production.log muestra lo siguiente:

Iniciado PUT "/finish-installation/resend-email" para [ip] el 2020-11-16 20:58:10 +0000
Procesado por FinishInstallationController#resend_email como HTML
  Parámetros: ...
Completado 200 OK en 23ms (Vistas: 6.4ms | ActiveRecord: 0.0ms | Asignaciones: 6023)
...
Correo entregado [randid]@[hostname] (191.3ms)

Parece que el sitio web, o al menos los registros, deberían devolver un error en lugar de un mensaje de éxito.

Gracias,
Jeff

1 me gusta

Por lo general, los correos electrónicos se envían en una cola en segundo plano, por lo que esto es invisible para el usuario.

Sin embargo, estoy abierto a que el asistente sea un poco más llamativo y ruidoso en caso de errores, pero tendrá que hacer consultas al servidor para detectarlos. Probablemente sea un cambio bastante grande, no estoy seguro.

2 Me gusta

Para el asistente: está bien que el asistente no muestre el fallo. Sin embargo, tampoco debe indicar que el correo electrónico se envió correctamente. Algo más cercano a la verdad sería más útil. Si es demasiado difícil mostrar el estado de retorno, sería mejor decir: “correo de registro añadido correctamente a la cola. consulta /ruta/al/log para ver el estado”.

Para el registro: el hilo del trabajador debería registrar el estado, especialmente cuando hay un error. No estoy familiarizado con la arquitectura, pero no veo nada útil en “unicorn.stderr.log” ni en ningún otro lugar. Algo debe estar consumiendo el código de retorno y el mensaje de error…

1 me gusta

Si te sientes aventurero, estaré más que encantado de ver una PR que mejore esto.

2 Me gusta

Gracias por estar abierto al cambio. Lo añadiré a mi lista de tareas, pero no me ofenderé si alguien más lo hace primero :slight_smile:

1 me gusta

Después del inicio de sesión como administrador, los errores de correo electrónico son visibles desde la consola de administración, lo que indica que están almacenados en la base de datos y podrían haber sido accesibles a través de la base de datos antes de que se completara el primer registro de administrador.

La tabla skipped_email_logs contiene la información que estaba buscando.

Si has iniciado sesión en el contenedor de Discourse como el usuario discourse, puedes ejecutar:

psql discourse -c "select * from skipped_email_logs"