L'email non funziona; Net::SMTPAuthenticationError

Sto ospitando il server Discourse su DigitalOcean, dominio da PorkBun, server di posta con MailGun.

Il mio account MailGun è attivo e il dominio (discourse.mydomain.com) è verificato per l’uso con mg.mydomain.com. Tutti i record TXT DNS sono a posto.

Ho eseguito più volte ogni singolo passaggio di risoluzione dei problemi nel thread qui; Troubleshoot email on a new Discourse install

Posso accedere a telnet sull’host e inviare email manualmente senza problemi (https://serverfault.com/questions/49935/easiest-way-to-send-a-test-email-from-a-server-to-test-settings)

L’app.yml contiene quanto segue

  DISCOURSE_DEVELOPER_EMAILS: 'myemail@gmail.com'
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: mail
  DISCOURSE_SMTP_PASSWORD: "12345678901234567890"
  DISCOURSE_SMTP_DOMAIN: mg.mydomain.com
  DISCOURSE_NOTIFICATION_EMAIL: admin@mg.mydomain.com

Quando provo a eseguire discourse-doctor o se eseguo ./launcher enter app quindi eseguo rake 'emails:test[mail@mg.mydomain.com]' ottengo il seguente errore

======================================== ERRORE ========================================
                                    ERRORE IMPREVISTO

Net::SMTPAuthenticationError

====================================== SOLUZIONE =======================================
Questo non è un errore comune. Non esiste una soluzione consigliata!

Si prega di segnalare il messaggio di errore esatto sopra a https://meta.discourse.org/
(E una soluzione, se ne trovi una!)
=======================================================================================

Qualcosa non funziona in Discourse, perché non ho problemi a inviare la posta manualmente. Ho cercato su Google e sui forum qui per molte ore, nessuna soluzione ancora. Qualche idea?

C’è qualcosa che non va nel tuo nome utente/password. È possibile che la tua password contenga un carattere che necessita di escape, come un asterisco o un apostrofo, forse (quindi sarà più facile cambiare la password per non includere quel carattere).

Vedi Risoluzione dei problemi di posta elettronica in una nuova installazione di Discourse

2 Mi Piace

la password non contiene nessuno di quei caratteri. Infatti, è la password generata automaticamente da MailGun, e contiene solo lettere e numeri e alcuni caratteri ‘-’. È piuttosto lunga.

Questa era la mia migliore ipotesi. Proverei a generare una nuova password e/o a copiarla e incollarla di nuovo. La probabilità che si tratti di un bug in Discourse è estremamente remota.

1 Mi Piace

Scommetto che DISCOURSE_SMTP_USER_NAME non è corretto: mail probabilmente non è sufficiente per l’autenticazione con Mailgun. Dovrebbe probabilmente essere mail@mg.mydomain.com.

Immagino che tu pensi che DISCOURSE_SMTP_DOMAIN sia il dominio dell’utente? Non lo è, è il dominio EHLO. Quasi sicuramente non è necessario impostarlo.

1 Mi Piace

Mi sono appena reso conto di questo, quando ho testato con telnet ho usato “mail@mg.mydomain.com” come nome utente e ha funzionato, quindi ci riproverò con quello come DISCOURSE_SMTP_USER_NAME

Immagino che tu pensi che DISCOURSE_SMTP_DOMAIN sia il dominio dell’utente? Non lo è, è il dominio EHLO. Probabilmente non è necessario impostarlo.

Non sono sicuro di capire cosa significhi

Per MailGun stavo usando mg.mydomain.com, per Discourse stavo usando discourse.mydomain.com. Al momento non ho alcun record DNS impostato per mydomain.com, solo per il sottodominio Discourse e i record TXT per il DNS di MailGun.

Rimuovi la riga per DISCOURSE_SMTP_DOMAIN, quasi sicuramente non ti serve.

Viene utilizzata durante la negoziazione SMTP come dominio HELO/EHLO.

1 Mi Piace

sì, inoltre quando ho testato con telnet, sono stato in grado di inviare l’email da tutti i seguenti indirizzi

  • mail@discourse.mydomain.com
  • mail@mydomain.com
  • mail@mg.mydomain.com

Non sono sicuro di quale dovrei usare? Fa differenza?

Questo dipende dalla tua configurazione e da come vuoi che sia il tuo flusso di posta.

1 Mi Piace

ora funziona, grazie a tutti per l’aiuto :slight_smile:

la soluzione è stata usare

  DISCOURSE_SMTP_USER_NAME: mail@mg.mydomain.com

invece di

  DISCOURSE_SMTP_USER_NAME: mail
2 Mi Piace

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