Usare un server email locale/sendmail per le email in uscita?

Ci sono due modi per inviare email tramite un server SMTP locale:

  1. connettersi e autenticarsi alla porta di submission, come la 587 con STARTTLS o la 465 con TLS implicito/immediato => richiesta di rete, controlli e restrizioni applicati tramite smtpd
  2. usare sendmail o simili, che invoca il comando locale pickup (nel caso di Postfix), senza effettuare alcuna connessione di rete, e bypassando tutti i controlli e le restrizioni configurate per il servizio di submission smtpd.

Quest’ultimo è più semplice e veloce, implementato nei comuni sistemi di runtime e framework, come PHP mailer e questa libreria di posta Ruby utilizzata da Discourse. E l’autenticazione viene bypassata, non sono necessarie credenziali in chiaro da memorizzare da nessuna parte. O in altre parole: il server SMTP non viene utilizzato affatto in questo caso, ma solo il client SMTP.

Voglio dire, sì, la connessione alla porta di submission non dovrebbe avere un impatto significativo sul carico del server, rispetto a ciò che fa altrimenti Discourse. Quest’ultimo punto può essere risolto con, ad esempio, la regola smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject alla porta di submission, per consentire le submission dagli IP di loopback (impostazione predefinita, mynetworks), prima di effettuare qualsiasi autenticazione. Se la richiesta dal container viene vista con un altro IP, può essere aggiunta a mynetworks. Immagino che sia così che ha funzionato nel caso del topic che ho linkato prima.

Vedremo la prossima volta che aggiorneremo/ricostruiremo il nostro Discourse, quando verranno applicate le impostazioni SMTP modificate. Riporterò come funziona.

Ma sarebbe comunque interessante sapere se ci sono altri modi e cosa significa l’impostazione “Metodo di consegna”.

Postfix è in esecuzione sull’host, non all’interno di un container, ma non farebbe molta differenza, poiché rimane un’autenticazione basata sulla rete.

Sì, un pensiero successivo, ha senso che sendmail ecc. dall’host/altro container non possano funzionare all’interno di un container, poiché richiedono l’accesso diretto a vaste parti degli eseguibili, delle librerie e delle configurazioni di Postfix, suppongo. A meno che non ci sia una sorta di socket magico che possa essere bind-mounted nel container o qualcosa del genere :smile:.

2 Mi Piace