Error de correo electrónico después de la instalación

He instalado Discourse y ahora tengo acceso de administrador, pero cuando intento enviar invitaciones o correos de prueba, falla por completo.

Tengo un servidor de correo (mail.mydomain.com) con la cuenta postmaster@mydomain.com. Tras leer varias preguntas y respuestas de soporte, parece que mydomain.com podría requerir registros DNS SPF y DKIM. ¿Se me pasó esto en las instrucciones de instalación?

Encontré y probé el registro SPF y parece estar correcto.
Puedo enviar correos desde mi cuenta personal a postmaster@mydomain.com y llegan correctamente.

Sin embargo, si envío un correo de prueba desde Discourse, no se recibe. ¿Es necesario DKIM? De ser así, ¿cómo instalo DKIM? ¿Se me pasó este paso en algún lugar?

Gracias de antemano…

SPF y DKIM no deberían impedir que el correo saliente vaya de Discourse a tu servidor de correo. Revisa los registros en /logs de tu foro y los registros del servidor de correo en busca de mensajes de error.

Cualquier documentación sobre esto provendrá de tu proveedor de correo, ya que no hay una única forma de configurarlos. Pero como se mencionó, es extremadamente improbable que esto sea la causa de tus fallos de entrega.

Gracias a todos. Disculpen la demora. Parece que las pruebas de correo saliente caen en un agujero negro. Ahora entiendo que los registros SPF y DKIM no deberían ser obligatorios. Esto es lo que veo ahora al iniciar sesión como administrador:

/emails/settings: ingreso cualquier dirección de correo (la mía o la de un usuario invitado; del dominio del host o no) y obtengo este mensaje de error:

Hubo un problema al enviar el correo de prueba. Por favor, verifique su configuración de correo, asegúrese de que su host no esté bloqueando las conexiones de correo e inténtelo de nuevo.

Según mi comprensión de la configuración de correo en Discourse, creo que es correcta, pero no he visto ninguna definición real. El dominio del host no está bloqueando, ya que puedo enviar un correo desde mi dirección personal. Verifiqué UFW del droplet de Discourse y reporta que está deshabilitado.

/logs/error logs está vacío. Un error obvio (el mencionado anteriormente), ¡pero no se registró! La opción “Registrar todos los fallos de procesamiento de correo en [/logs]” está activada (verificado). No encuentro ningún error en el dominio del host.

Además, tengo un sitio WP con el plugin WP Discourse instalado pero no activado. ¿Podría este plugin ayudar de alguna manera?

Gracias de antemano

Edición…
Regresé al Dashboard y vi esto:

Hay 7 trabajos de correo que fallaron. Verifique su app.yml y asegúrese de que la configuración del servidor de correo sea correcta. [Ver los trabajos fallidos en Sidekiq](https://talk.thesturdytree.com/sidekiq/retries)

Hice clic en Sidekiq y veo 7 entradas que son duplicadas de estas:

[en 3 horas](https://talk.thesturdytree.com/sidekiq/retries/1585096899.6700559-58d9041788be7dd98d743894) 15 [default](https://talk.thesturdytree.com/sidekiq/queues/default) Jobs::InviteEmail {"invite_id"=>2, "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout con #<TCPSocket:(closed)>

[en 3 horas](https://talk.thesturdytree.com/sidekiq/retries/1585097052.665957-fc6f06d948e7d37ec15354cc) 15 [critical](https://talk.thesturdytree.com/sidekiq/queues/critical) Jobs::CriticalUserEmail {"type"=>"email_login", "user_id"=>1, "email_token"=>"da467ec8590f0ecb0220d3aed5b33c61", "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout con #<TCPSocket:(closed)>

Esa página del panel de administración también dice “¡Estás actualizado!” pero cuando me conecto por ssh al droplet, se me informa que “55 paquetes pueden ser actualizados”. ¿Esto requiere alguna acción?

Son problemas independientes. El panel de administración te indica que el propio Discourse está actualizado. El mensaje al iniciar sesión en el droplet te informa de que hay software del sistema que puede actualizarse. Probablemente deberías investigar cómo configurar actualizaciones automáticas para este sistema.

Esto suena como si tu instancia de Discourse no pudiera conectarse al servidor de correo especificado en el puerto indicado. Asegúrate de que tu configuración sea correcta y de que DigitalOcean no bloquee las conexiones salientes en el puerto que estás intentando usar.

https://github.com/discourse/discourse/blob/master@{2020-03-24}/docs/INSTALL-cloud.md#post-install-maintenance

En Ubuntu, usa el comando dpkg-reconfigure -plow unattended-upgrades.

Sugerencias, en orden lógico de ejecución:

  1. Verifica que tu droplet pueda conectarse al servidor de correo mediante telnet.
  2. Verifica que las credenciales de SMTP funcionen independientemente del droplet.

Si el paso 1 falla, entonces tienes un problema de red. DigitalOcean ha bloqueado ciertos puertos de salida, y este es el problema el 85% de las veces.

Si tanto el paso 1 como el 2 funcionan, revisa tu archivo app.yml. Es probable que la contraseña incluya un carácter que impide su análisis correcto (~5% de las veces) o que no la hayas ingresado correctamente.

En cuanto al servidor de correo, si estás alojando tu propio servidor en lugar de usar uno de los proveedores recomendados, SPF y DKIM pueden ayudar definitivamente con la entregabilidad, pero es probable que te encuentres al principio de la curva en términos de problemas de correo.

Gracias a todos por la ayuda.
Creo que el problema era mi servidor de correo proporcionado por GoDaddy. Nunca llegué a identificar la causa del problema. Parece que GoDaddy tiene muchos problemas con las cuentas compartidas. En última instancia, decidí que no valía la pena el esfuerzo y busqué proveedores de correo recomendados, eligiendo mailjet.com. Abrí una cuenta gratuita en Mailjet y edité app.yml en consecuencia. También fue necesaria una configuración adicional de Mailjet. De nuevo, intenté la prueba de correo de Discourse: éxito. Mi comunidad de Discourse es pequeña, por lo que no debería haber problemas con el límite de correos gratuitos de Mailjet. Todo parece estar bien por ahora, pero veo que aún queda mucha configuración por delante.
Gracias de nuevo…