Problemas para configurar hostmail

Hola. Espero que no te importe que me entrometa en el hilo.

Mi proveedor de hosting no tiene problemas con el correo electrónico. Todas las pruebas con diversas herramientas funcionan: los puertos están abiertos y debería poder enviar correos. El problema es que no funciona con Discourse.

https://carlosthomas.net/photos/picture.php?/911/category/8

Independientemente del puerto que intente, sigo recibiendo los mismos errores.

Creé cuentas manualmente y puedo iniciar sesión, pero los correos electrónicos son necesarios para las invitaciones y la validación. Probé con MailGun y funciona, pero no entiendo por qué no funciona con mi proveedor de hosting. Me puse en contacto con ellos y me dijeron que todo debería estar bien, así que estoy un poco perdido.

https://carlosthomas.net/photos/picture.php?/913/category/8

Como usuario nuevo, solo puedo publicar dos enlaces, pero esos deberían llevarte al resto de las fotos.

Avísame si hay algún registro que quieras que extraiga. Tengo experiencia limitada en *NIX, pero puedo seguir instrucciones. Gracias de antemano.

Gracias @JammyDodger por la división/movimiento. Espero recibir ayuda con esto. El servidor no es permanente, es para pruebas, por lo que cualquier registro o comando requerido se puede proporcionar para encontrar una solución.

Básicamente, el correo electrónico funciona (en su mayoría) con MailGun pero no con el proveedor de alojamiento. Los correos electrónicos de MailGun a servicios gratuitos (GMAIL, etc.) funcionan bien. Los intentos de enviar desde MailGun a mi dominio/correo electrónico alojado fallan. No estoy seguro de lo que está pasando. El uso del correo electrónico del dominio funciona bastante bien en cualquier otra aplicación: OSTicket/InvoiceNinja/Windows Mail/ThunderBird/etc.

Cualquier ayuda es apreciada. Gracias de antemano.

Es bastante extraño, sin duda, si las credenciales de hostmail funcionan en otras herramientas y asumiendo que se han pegado correctamente en la configuración de discourse. ¿Tienes herramientas de seguridad que puedan bloquear el dominio de hostmail?

También puedes intentar mirar en \u003cdiscourse_url\u003e/logs para ver si hay un error detallado sobre lo que está sucediendo.

Gracias por tu respuesta. Aquí tienes información.

Mensaje (12 copias reportadas)

Excepción de trabajo: ejecución expirada


Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `initialize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `open'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `tcp_socket'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:641:in `block in do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:186:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:193:in `timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:640:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:610:in `start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'

Para aclarar, “hostmail” es solo el nombre que le di ya que es el correo de mi proveedor de hosting (GlowHost) del dominio que estoy probando - discourse.carlosthomas.net - que funciona MAYORMENTE BIEN con MailGun, pero no con el correo alojado.

No estaba al tanto de los /logs; puedo rehacer la configuración y borrar los logs, luego intentar enviar correos y publicar la información si lo deseas. También podría borrar los logs ahora, enviar a Gmail, lo cual será exitoso, luego enviar a mi correo alojado, lo cual fallará, y enviar los logs.

Añadiendo algo de contexto. Amigos que administran un sitio en vBulletin 4.2.5 y yo estoy alojando temporalmente Discourse para que se hagan una idea. El problema son los correos electrónicos: puedo seguir instrucciones para crear manualmente las cuentas, pero si deciden usar Discourse, necesitarán los correos electrónicos para agregar usuarios. También está la parte de la importación, para la cual encontré este enlace que creo que puede ayudar.

Pero el problema del correo electrónico debe resolverse. Solo mantendré el servidor con Discourse activo hasta que resolvamos este problema. Y estoy tratando de mostrar cómo es el soporte. Mi experiencia con los detalles en los foros y lo que he visto sugiere que el uso/migración/soporte debería ser bastante fácil una vez que se cumplan los requisitos para alojar la plataforma. Y una vez que se utilicen los métodos oficiales, obtener soporte debería ser lo suficientemente fácil.

Pero sí, ahí es donde estamos. Esperando comentarios.

1 me gusta

Hola a todos. Intentaré algunas cosas durante el fin de semana si todo va bien. Tengo la intención de limpiar/reinstalar y publicar el progreso. Si alguien tiene alguna sugerencia antes, por favor hágamelo saber.

Una vez que llegue a ese punto, tengo la intención de extraer todos los registros que se puedan encontrar y publicarlos aquí. Usaré algunas contraseñas generadas aleatoriamente para el proceso para permitir el acceso a las personas que quieran ayudar. Veamos cómo va.

Actualmente realizando verificaciones y cambios en el archivo app.yml. Borré los registros antes. Intentaré enviar correos electrónicos y avisaré.

EDITAR
Así que borrar los registros y enviar correos electrónicos a Gmail o a mi propio dominio no muestra errores. Recibo correos en Gmail pero ninguno en mi dominio.

Los registros en MailGun básicamente dicen esto:

{
	"recipient": "me@mydomain",
	"id": "SCBCSJxDSqupdU9Da29rRw",
	"envelope": {
		"sender": "postmaster@mg.mydomain",
		"targets": "me@mydomain",
		"transport": "smtp",
		"sending-ip": "192.168.0.1"
	},
	"timestamp": 1697462206.8430145,
	"user-variables": {},
	"message": {
		"headers": {
			"from": "Discourse Test Forum <postmaster@mg.mydomain>",
			"message-id": "9d3b190d-bcbd-4378-8eb6-fc90cd57fe35@discourse.mydomain",
			"to": "me@mydomain",
			"subject": "[Discourse Test Forum] Email Deliverability Test"
		},
		"attachments": [],
		"size": 4546
	},
	"storage": {
		"region": "us-west1",
		"key": "BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA",
		"env": "production",
		"url": "https://storage-us-west1.api.mailgun.net/v3/domains/mg.mydomain/messages/BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA"
	},
	"reason": "generic",
	"delivery-status": {
		"enhanced-code": "",
		"mx-host": "mydomain",
		"description": "",
		"certificate-verified": true,
		"attempt-no": 1,
		"code": 550,
		"message": "Verification failed for <bounce+674b6a.be6180c-me=mydomain@mg.mydomain>\nThe mail server does not recognize bounce+674b6a.be6180c-me=mydomain@mg.mydomain as a valid sender.\nSender verify failed",
		"session-seconds": 40.878,
		"tls": true
	},
	"campaigns": [],
	"severity": "permanent",
	"tags": [],
	"recipient-domain": "mydomain",
	"flags": {
		"is-routed": false,
		"is-authenticated": true,
		"is-test-mode": false,
		"is-system-test": false
	},
	"log-level": "error",
	"event": "failed"
}

Solo obtengo esto si intento con mi propio dominio. Si intento con cualquier otro dominio, está bien, sea gratuito o no.
Configuraciones actuales en app.yml son:

## esta es la plantilla de contenedor Docker todo en uno y autónoma de Discourse
##
## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TENGA MUCHO CUIDADO AL EDITAR!
## LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES DE ESPACIO BLANCO O ALINEACIÓN.
## visite http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Descomente la siguiente línea para habilitar el oyente IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Descomente estas dos líneas si desea agregar Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## ¿qué puertos TCP/IP debe exponer este contenedor?
## Si desea que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulte https://meta.discourse.org/t/17247 para obtener detalles
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Establezca db_shared_buffers en un máximo del 25% de la memoria total.
  ## será establecido automáticamente por bootstrap según la RAM detectada, o puede anularlo
  db_shared_buffers: "2048MB"

  ## puede mejorar el rendimiento de clasificación, pero agrega uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (por defecto: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
  ## será establecido automáticamente por bootstrap según las CPU detectadas, o puede anularlo
  UNICORN_WORKERS: 8

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Requerido. Discourse no funcionará con un número IP simple.
  DISCOURSE_HOSTNAME: mydomain

  ## Descomente si desea que el contenedor se inicie con el mismo
  ## nombre de host (-h opción) que se especifica arriba (por defecto "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
  ## en el registro inicial, ejemplo 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'me@mydomain'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  # Se requieren la DIRECCIÓN SMTP, el nombre de usuario y la contraseña
  # ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas.

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@mg.mydomain
  DISCOURSE_SMTP_PASSWORD: "mailgunpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (opcional, por defecto true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: postmaster@mg.mydomain


  ## Si agregó la plantilla Lets Encrypt, descomente a continuación para obtener un certificado SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: freemailaccount

  ## La dirección CDN http o https para esta instancia de Discourse (configurada para tirar)
  ## consulte https://meta.discourse.org/t/14857 para obtener detalles
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## La clave de API de geolocalización MaxMind para la búsqueda de direcciones IP
  ## consulte https://meta.discourse.org/t/-/137387/23 para obtener detalles
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## El contenedor Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Los plugins van aquí
## consulte https://meta.discourse.org/t/19157 para obtener detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-docs.git
## Cualquier comando personalizado para ejecutar después de la compilación
run:
  - exec: echo "Beginning of custom commands"
  ## Si desea establecer la dirección de correo electrónico 'De' para su primer registro, descomente y cambie:
  ## Después de recibir el primer correo electrónico de registro, vuelva a comentar la línea. Solo necesita ejecutarse una vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Los únicos cambios realizados en esto serían:

DISCOURSE_SMTP_ADDRESS: smtp.mydomain
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@mydomain
  DISCOURSE_SMTP_PASSWORD: "mydomainmailpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (opcional, por defecto true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: email@mydomain

Una vez que reciba una respuesta de alguien, haré esos cambios y volveré a revisar los registros. O… tal vez simplemente lo hago, publico los registros y espero una respuesta. No debería tomar mucho tiempo. Ya veremos.

1 me gusta

Honestamente, no lo sé. :thinking: Eso no parece ser un problema de Discourse. Quiero decir, el correo electrónico fue enviado correctamente por Discourse, pero Mailgun no pudo entregarlo a la dirección de correo electrónico.

El error 550 significa “El buzón del usuario no estaba disponible (por ejemplo, no se encontró)

1 me gusta

Gracias por tu respuesta. No sé qué pasa, el correo electrónico funciona bien. Supongo que simplemente no le gusta mi dominio.

He cambiado la configuración para usar mi correo electrónico de dominio para enviar. Ahora revisaré los registros y veré qué errores obtengo.

EDITAR
No hay errores en los registros, pero obtuve esto.

Intentaré desde ./discourse-doctor, pero los registros están realmente vacíos en /logs.

Y obtengo los mismos errores publicados al principio.

La dirección de correo electrónico en uso funciona. Copio y pego los detalles, incluida la contraseña. He probado el mismo correo electrónico en ThunderBird / Windows Mail sin ningún problema. Así que…

Contacté previamente al soporte de mi proveedor de alojamiento; esta fue la respuesta.

Así que no sé. ¿Quizás me estoy perdiendo algo? Los correos electrónicos de prueba funcionan con 465 / 587 y no hay problemas. Estoy perdido.

¿Hay algún carácter especial que pueda ser bloqueado o causar un problema con la configuración del correo electrónico?

Se cambiaron la configuración al puerto 465 y solo veo esto en /logs.

Nada de gran consecuencia, creo.

Me gustaría enviar elogios y agradecimientos a @Arkshine por la ayuda hasta ahora. Aparentemente, el VPS no puede alcanzar el dominio alojado, por lo que los correos no funcionan. Eso es bastante extraño, pero me pondré en contacto con el proveedor de alojamiento para comprobarlo. Actualizaré.

Eso fue bastante rápido y fácil. Un simple ping al dominio alojado desde una sesión SSH al VPS que ejecuta Discourse mostró lo que estaba sucediendo. Veamos cómo va.

EDITAR
Ojalá @Arkshine hubiera respondido para poder marcar eso como la solución. De todos modos, me respondieron del proveedor de alojamiento. Aparentemente, sus servidores bloquearon automáticamente la IP del VPS debido a intentos fallidos de SMTP. No estoy seguro de qué pasó con eso, cambiaré la configuración y volveré a ejecutar las pruebas para ver. Debería estar bien ahora, la IP alojada es pingable desde el VPS ahora. ¡Probé la configuración de correo electrónico y estamos listos para empezar!

Espero que esta información ayude a alguien. Si pudiera editar la publicación original, simplemente pondría un TLDR, o pueden hacer clic en el enlace para ir a la solución.

Nuevamente, muchas gracias a @Arkshine por toda la ayuda. ¡Sigan con el buen trabajo!

2 Me gusta

Estoy de acuerdo, es de gran ayuda y un gran recurso. :slight_smile:

3 Me gusta

También me gustaría mencionar que su DP y fondo de perfil son geniales. Me gusta.

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.