Come configurare SMTP per utilizzare localhost?

Ho configurato postfix per funzionare sull’host Docker locale in modo che un test eseguito con swaks --to destination@domain.tld --from admin@hostdomain.tld --server localhost -tls abbia esito positivo. Utilizza la porta 25 e invia l’email senza alcun problema.

Mi sorge quindi la domanda: come configurare correttamente le impostazioni SMTP in app.yml per utilizzare localhost per la consegna della posta?

Imposta l’indirizzo SMTP su 127.0.0.1

Quindi, per essere chiari, stai dicendo che dovrebbe essere configurato solo l’IP e gli altri campi dovrebbero essere commentati? Ad esempio:

  DISCOURSE_SMTP_ADDRESS: 127.0.0.1
  #DISCOURSE_SMTP_PORT: 25
  #DISCOURSE_SMTP_USER_NAME: 
  #DISCOURSE_SMTP_PASSWORD:
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, default true)

Se si trova sullo stesso host Docker ma all’interno di un contenitore Docker diverso, è necessario specificare l’indirizzo IP dell’host.

127.0.0.1 non funzionerà poiché è l’indirizzo di loopback. Ogni contenitore vede 127.0.0.1 come se stesso.

Non si tratta di un container Docker diverso, ma semplicemente dello stesso host Docker.

Quindi servirà comunque l’indirizzo IP dell’host.

Quindi in tal caso è necessario utilizzare l’indirizzo IP pubblico o esiste uno schema IP specifico utilizzato da Docker? Ad esempio, all’interno dell’host vedo docker0 con 172.17.0.1 e all’interno del contenitore (./launcher enter app; apt-get install ifconfig) eth0 è 172.17.0.2. Sospetto di dover utilizzare l’indirizzo 172.17.0.1 dell’host all’interno del contenitore Discourse, ma non vorrei che cambiasse in qualche modo in futuro.

Solo per documentare qui, quanto segue è stato sufficiente (tutte le altre righe SMTP commentate) per inviare al server SMTP dell’host Docker se non è necessaria alcuna autenticazione:

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 25