# Configuración SMTP no funciona con smtp-relay de GMail

**URL:** https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425
**Category:** Self-hosting
**Tags:** email
**Created:** [14 Mayo, 2021 16:23 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425 "2021-05-14T16:23:01Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![kvsf](https://avatars.discourse-cdn.com/v4/letter/k/e47774/32.png) [@kvsf](https://meta.discourse.org/u/kvsf)
#### Post date: [14 Mayo, 2021 16:23 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/1 "2021-05-14T16:23:02Z")

</div>

No puedo configurar el SMTP con Discourse y el SMTP de GMail

Habilité el Relay SMTP en la configuración de Google, permití el envío desde mi dominio (sin whitelist de IPs), usando autenticación SMTP + cifrado.

Discourse está alojado en `forum.example.com`

```plaintext
DISCOURSE_SMTP_ADDRESS: smtp-relay.gmail.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: noreply@example.com
DISCOURSE_SMTP_PASSWORD: password
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_DOMAIN: mydomain.io
DISCOURSE_NOTIFICATION_EMAIL: noreply@example.com
DISCOURSE_SMTP_ENABLE_START_TLS: true

```

Tuve un error genérico `Job exception: end of file reached`. Cuando añadí las variables de entorno `NOTIFICATION_EMAIL` y `SMTP_DOMAIN`, ahora veo:

```plaintext
503 5.5.1 bad sequence of commands x20sm63393lfr.126 - gsmtp

```

al ejecutar doctor y tratar de enviar un correo a mí mismo.

Cambié `DISCOURSE_SMTP_DOMAIN` para que coincida con `forum.mydomain.io` y todavía tengo el mismo error.

¿Cómo se supone que debo depurar esto más allá de cambiar variables de entorno, reconstruir y esperar a que funcione?

Gracias de antemano.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15 Mayo, 2021 02:29 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/2 "2021-05-15T02:29:34Z")

</div>

En lugar de reconstruir, puedes ejecutar:

```plaintext
./launcher destroy app 
./launcher start app 

```

Hay varios temas sobre cómo hacer que funcione lo de Google. Es posible, pero no es fácil. Y probablemente cambie cada mes. 😉

---

<div class="post-metadata">

### Author: ![openUC2](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@openUC2](https://meta.discourse.org/u/openUC2)
#### Post date: [25 Enero, 2024 13:30 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/3 "2024-01-25T13:30:29Z")

</div>

Aunque creo que el error de @kvsf ya está solucionado o que se han cambiado algunas cosas fundamentales en tu configuración, me gustaría continuar este hilo publicando mi propia configuración, mi enfoque adicional y mi búsqueda de ayuda dentro del mismo dominio de problemas.

# Configuración Básica

- Google Workspace Business Starter
- Configurar Gmail-Routing \> SMTP-Relay con i) solo usuarios registrados dentro del dominio, ii) lista blanca de IP con la IP de mi servidor de alojamiento de foros y forzar autenticación SMTP, iii) forzar TLS
- Instalación de discourse docker según la documentación de discourse
- Configuración de `app.yml` según

```plaintext
expose:
  - "80:80" # http
  - "443:443" # https

env:
  DISCOURSE_HOSTNAME: "forum.mydomain.com"
  DISCOURSE_DEVELOPER_EMAILS: 'dev@mydomain.com'

  DISCOURSE_SMTP_ADDRESS: "smtp-relay.gmail.com"
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: "user@mydomain.com"
  DISCOURSE_SMTP_PASSWORD: "mypass"
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_OPEN_TIMEOUT: 25
  DISCOURSE_SMTP_READ_TIMEOUT: 25
  DISCOURSE_SMTP_DOMAIN: "mydomain.com"
  DISCOURSE_NOTIFICATION_EMAIL: "noreply@mydomain.com"
  LETSENCRYPT_ACCOUNT_EMAIL: dev@mydomain.com

```

# Mis Pruebas

Al ejecutar `./discourse-doctor`, esta configuración genera el error

```plaintext
Testing sending to ...
SMTP server connection successful.
Sending to artificial.testadress@gmail.com. . .
Sending mail failed.
end of file reached

```

Primero revisé los diferentes [registros de discourse y de correo electrónico](https://meta.discourse.org/t/where-does-discourse-store-and-show-logs/58022)  
Probando manualmente el mismo proceso desde dentro de docker (conectando usando `docker exec -it <CONTAINER_ID> bash`) a través de

`openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587`

no presenta problemas y funciona bien. Así que creo que o mi configuración de parámetros en `app.yml` es extraña O discourse internamente tiene alguna mala comunicación de scripts O … tantas posibilidades. ^^  
Para no tener que ejecutar siempre `./launcher rebuild app` después de cambiar `app.yml` para probar diferentes configuraciones, comencé a editar directamente `/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb` cambiando el código existente a:

```plaintext
class SMTP
  attr_accessor :settings

  DEFAULTS = {
    :address => 'smtp-relay.gmail.com',
    :port => 587,
    :domain => 'mydomain.com',
    :user_name => 'user@mydomain.com',
    :password => 'mypass',
    :authentication => 'login',
    :enable_starttls => nil,
    :enable_starttls_auto => true,
    :openssl_verify_mode => 'peer',
    :ssl => nil,
    :tls => nil,
    :open_timeout => 25,
    :read_timeout => 25
  }

  def initialize(values)
    self.settings = DEFAULTS #.merge(values)
  end

```

lo que lleva al mismo comportamiento que el anterior (dadas las configuraciones personalizadas de `app.yml`).

# Búsqueda de ayuda

Y ahora estoy atascado. Por supuesto, podría jugar más con las configuraciones restantes (e incluso podría volver a usar SSL solamente, aunque esto está obsoleto por discourse), pero me gustaría:

1. aprender cómo analizar este problema más profunda y extensamente
2. comprender así qué está pasando realmente y cuál es el problema
3. solucionarlo y poder usar todo sin problemas (+ finalmente poner en marcha el foro correctamente)

Gracias de antemano por tu ayuda.

---

<div class="post-metadata">

### Author: ![openUC2](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@openUC2](https://meta.discourse.org/u/openUC2)
#### Post date: [5 Febrero, 2024 12:23 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/4 "2024-02-05T12:23:36Z")

</div>

**push** \*  
¿Alguna idea/sugerencia?

---

<div class="post-metadata">

### Author: ![Lou](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lou/32/544605_2.png) [@Lou](https://meta.discourse.org/u/Lou)
#### Post date: [4 Marzo, 2026 18:16 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/5 "2026-03-04T18:16:10Z")

</div>

¿Se ha resuelto esto? Estoy buscando hacer exactamente esto y encontré esta publicación que me está poniendo nervioso.

---

<div class="post-metadata">

### Author: ![NitroBrude](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nitrobrude/32/545574_2.png) [@NitroBrude](https://meta.discourse.org/u/NitroBrude)
#### Post date: [5 Marzo, 2026 17:29 UTC](https://meta.discourse.org/t/smtp-setup-not-working-with-gmails-smtp-relay/190425/6 "2026-03-05T17:29:13Z")

</div>

No estoy seguro con respecto a Gmail, pero Zoho no funciona y Outlook dejó de funcionar en un sitio de comercio electrónico del que yo era parte de la administración.

Desde hace tiempo, la mejor práctica ha sido utilizar un servicio de correo electrónico transaccional como Mailersend, pero se está convirtiendo cada vez más en un requisito a medida que pasa el tiempo.

Edición para aclarar: es un bloqueo por parte del proveedor de correo electrónico y no algo que se pueda solucionar en Discourse o en el lado del servidor. La mayoría de los proveedores ya no admiten, si es que alguna vez lo hicieron oficialmente, el uso de SMTP para enviar correos electrónicos transaccionales.
