Se gli accessi locali sono disabilitati

Ciao,

sto avviando un forum, sono completamente nuovo di Discourse e lo ospito su DigitalOcean. Per qualche motivo, ho problemi con SMTP o con le porte. Ora, vorrei sapere se hai optato per l’accesso con Google o altri social login e se non ci sono problemi nel caso in cui l’iscrizione o l’accesso locale non siano presenti nel tuo forum.

SMTP è bloccato su DO di default. Se vuoi utilizzare la posta, dovrai trovare un proxy da qualche parte. Molte persone hanno detto che Mailgun funziona bene per Discourse nel cloud, ma non è qualcosa con cui ho esperienza.

Questo potrebbe essere ciò che cerchi:

Sì, puoi utilizzare l’accesso tramite social (Discord, Google, …) o Discourse ID (nessuna configurazione necessaria) senza SMTP. Perderai i riassunti e le notifiche via email, ma se il tuo obiettivo è solo creare una comunità funzionerà bene anche con un coinvolgimento inferiore (i riassunti sono progettati per aiutare la fidelizzazione).

Ottimo, ho provato SendGrid, Mailgun e Resend. Ho lo stesso problema, potrebbe essere un problema di porta; ho provato tutte le porte. Per ora voglio verificare se i login tramite social funzionano bene ed eliminare i login locali.

Puoi disabilitare l’impostazione del sito enable local logins se desideri rimuovere gli accessi locali. Puoi anche provare Discourse ID.

Ciao @abeen, benvenuto :wave:
ho eseguito numerosi installazioni self-hosted con Mailgun e Resend su DigitalOcean (e altri server cloud) - puoi fornire maggiori informazioni sul problema che stai riscontrando? stai modificando il tuo app.yml con le impostazioni appropriate? presumo si tratti di un’installazione standard?

Per Resend:

  DISCOURSE_HOSTNAME: <forum.yourforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <your-email@emailaddress.com>
  DISCOURSE_SMTP_ADDRESS: smtp.resend.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: resend
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Per Mailgun:

  DISCOURSE_HOSTNAME: <forum.yourforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <your-email@emailaddress.com>
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: <your.mailgun.acccount.email>
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Il DO afferma: «Si prega di prendere atto che, oltre alla porta 25 precedentemente bloccata, le porte 465 e 587 sono state bloccate sui droplet a partire dal 6 marzo 2025. Questo per garantire che i server di DigitalOcean non vengano utilizzati per inviare email di spam».

E vedo nel pannello di amministrazione:
Ci sono 30 attività di posta fallite. Controlla il tuo app.yml e assicurati che le impostazioni del server di posta siano corrette. Visualizza le attività fallite in Sidekiq.

Ho ricreato l’API di resend, ho cambiato la porta in 587, ho provato con la 2525. Nulla funziona per me.

Questo è il mio yaml


LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: «re_my password here»
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
  • questo è probabilmente il problema principale che ti sta causando difficoltà: stai usando le virgolette curve. I file YML non le gradiscono e solitamente si interrompono. Devi usare virgolette singole o doppie dritte come 'password' o "password".
  • hai eseguito un’installazione standard su un sottodominio o si tratta di un’installazione sul dominio radice? Se nel primo caso, dovrebbe essere qualcosa come forum.dobato.au o discourse.dobato.au (controlla cosa hai impostato sui tuoi nameserver). A meno che tu non abbia intenzione di eseguire un’installazione sul dominio radice, questa impostazione va corretta.
  • questa riga è inutile, rimuovila.
  • anche se Resend lo supporta e dovrebbe funzionare, lo standard è 587.
  • questa riga non è necessaria; non ha senso forzare il mailer a iniziare STARTTLS - il mailer Ruby sottostante (ActionMailer) utilizza enable_starttls_auto: true, il che significa che aggiornerà automaticamente la connessione a TLS se il server (Resend) lo supporta. Cancella questa riga.

La tua sezione app.yml corretta dovrebbe essere così:

DISCOURSE_HOSTNAME: dobato.au # (verifica questo - potrebbe essere errato!)
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_actual_api_key_here" # nota le virgolette dritte!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au

I file YML sono molto rigidi per quanto riguarda la sintassi e gli spazi, quindi è importante mantenere la formattazione del file modello esistente (vedi discourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub)

Ma DigitalOcean ha bloccato la porta 587, ed è per questo che viene utilizzata la 2525.

Oh, mi sono dimenticato di DO lol. :woman_facepalming:t2: Me ne sono andato da un po’. Nella mia testa pensavo a Resend e Hetzner. Quindi sì, usa 2525 (ora ricordo di averlo cambiato anche durante la migrazione).
Edit: ho corretto il mio post. Grazie Jakee

Oltre all’ottima consulenza sopra riportata, eseguire rake emails:test (vedi Troubleshoot email on a new Discourse install) per visualizzare immediatamente l’errore potrebbe essere d’aiuto.

Il mio sito si è bloccato ora. È un nuovo sito con pochi membri, non sono sicuro di come scaricare le mie pagine personalizzate e i membri. Non voglio affatto usare SMTP.

Mi dispiace che ti stia capitando questo.

Sì, il tuo file yml è probabilmente danneggiato. Posta qui l’intero contenuto (senza indirizzi email e password). In realtà non dovrebbe essere così difficile mettere tutto in funzione.

Per pura curiosità, che dimensione di droplet stai utilizzando su DigitalOcean?

Sei riuscito a verificare se il tuo server dei nomi è configurato correttamente?

Ciao,

ho un piano Basic / 1 vCPU / 2 GB RAM / 50 GB di spazio su disco

env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: ``myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: ``smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: “re_mypassword”
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_FROM_ADDRESS: noreply@dobato.au
UNICORN_WORKERS: 4

non voglio usare SMTP. Cercando online il problema con alcuni comandi, ho visto che Nginx e Unicorn non sono in esecuzione.

Per favore, leggi attentamente il mio post precedente qui. Il tuo file yml è errato.

Questo dovrebbe funzionare per un forum non molto attivo. Hai un file di swap? Esegui free -h da riga di comando e pubblica qui l’output.

curl: (52) Risposta vuota dal server
root@dobato:~# free -h
totale usato libero condiviso cache/buff disponibile
Mem: 1.9Gi 201Mi 1.2Gi 4.0Mi 507Mi 1.6Gi
Swap: 2.0Gi 0B 2.0Gi

Che ne dici di Discourse su Amazon Lightsail? Offrono anche Amazon SES SMTP per l’invio di email.

@abeen Li hai cambiati con le virgolette diritte?

Prova a usare invece questi:

"

ho " " , virgolette doppie

Capisco. È possibile ospitare Discourse su Lightsail con SES (alcuni utenti qui lo fanno). Oppure puoi provare la porta 2525, se non l’hai già fatto. Ma se vuoi evitare questi problemi legati alle porte, potresti passare a un altro hosting, come Hetzner o Lightsail.

la ricompilazione termina troppo velocemente con questo.. non so perché?