Problemi nella configurazione di hostmail

Ciao. Spero non ti dispiaccia se mi intrometto nella discussione.

Il mio provider di hosting non ha problemi con le email. Tutti i test con vari strumenti funzionano: le porte sono aperte e dovrebbe essere possibile inviare posta. Il problema è che non funziona con Discourse.

https://carlosthomas.net/photos/picture.php?/911/category/8

Indipendentemente dalla porta che provo, ottengo sempre gli stessi errori.

Ho creato manualmente degli account e posso accedere, ma le email sono necessarie per inviti e convalide. Ho testato con MailGun e funziona, ma non riesco a capire perché non funzioni con il mio provider di hosting. Li ho contattati e mi hanno detto che tutto dovrebbe andare bene, quindi sono un po’ perso.

https://carlosthomas.net/photos/picture.php?/913/category/8

Come nuovo utente posso pubblicare solo due link, ma questi dovrebbero portarti al resto delle foto.

Fammi sapere se ci sono log che vorresti che estraessi. Ho un’esperienza limitata con *NIX, ma posso seguire le istruzioni. Grazie in anticipo.

Grazie @JammyDodger per la divisione/spostamento. Spero di ricevere assistenza per questo. Il server non è permanente, è per test, quindi eventuali log o comandi richiesti possono essere forniti per trovare una soluzione.

In pratica, l’email funziona (per lo più) con MailGun ma non con il provider di hosting. Le email da MailGun a servizi gratuiti (GMAIL, ecc.) funzionano bene. I tentativi di invio da MailGun al mio dominio/email ospitata falliscono. Non sono sicuro di cosa stia succedendo. L’uso dell’email del dominio funziona abbastanza bene in qualsiasi altra applicazione: OSTicket/InvoiceNinja/Windows Mail/ThunderBird/ecc.

Qualsiasi aiuto è apprezzato. Grazie in anticipo.

È piuttosto strano, di sicuro, se le tue credenziali hostmail funzionano in altri strumenti e supponendo che siano state incollate correttamente nella configurazione di discourse. Hai strumenti di sicurezza che potrebbero bloccare il dominio hostmail?

Puoi anche provare a guardare in \u003cdiscourse_url\u003e/logs per vedere se ci sono errori dettagliati su ciò che sta accadendo.

Grazie per la tua risposta. Ecco alcune informazioni.

Message (12 copies reported)

Job exception: execution expired


Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `initialize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `open'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `tcp_socket'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:641:in `block in do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:186:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:193:in `timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:640:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:610:in `start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'

Quindi per chiarire: “hostmail” è solo il nome che gli ho dato poiché è l’email del mio provider di hosting (GlowHost) dal dominio che sto testando - discourse.carlosthomas.net - che funziona per lo più bene con MailGun, ma non con l’email ospitata.

Non ero a conoscenza di /logs - posso rifare le impostazioni e cancellare i log, quindi tentare le email e pubblicare le informazioni se vuoi. Potrei anche cancellare i log ora - inviare a Gmail - che avrà successo - poi inviare alla mia email ospitata - che fallirà - e inviare i log.

Aggiungo un po’ di contesto. Amici che gestiscono un sito su vBulletin 4.2.5 e io sto temporaneamente ospitando Discourse per dare loro un’idea. Il problema sono le email: posso seguire le istruzioni per creare manualmente gli account, ma se decidono per Discourse, avranno bisogno delle email per aggiungere gli utenti. C’è anche la parte di importazione, per cui ho trovato questo link che penso possa aiutare.

Ma l’email deve essere risolta. Terrò attiva la macchina con Discourse solo fino a quando non avremo risolto questo problema. E sto cercando di mostrare che tipo di supporto c’è. La mia esperienza con i dettagli nei forum e quello che ho visto suggerisce che l’utilizzo/migrazione/supporto dovrebbe essere abbastanza facile una volta soddisfatti i requisiti per l’hosting della piattaforma. E una volta utilizzati i metodi ufficiali, ottenere supporto dovrebbe essere abbastanza facile.

Ma sì, questo è dove siamo. In attesa di feedback.

1 Mi Piace

Ciao a tutti. Tenterò alcune cose durante il fine settimana, se tutto andrà bene. Ho intenzione di formattare/reinstallare e pubblicare i progressi. Se qualcuno ha suggerimenti prima di allora, per favore fatemelo sapere.

Una volta arrivato a quel punto, ho intenzione di estrarre tutti i log che posso trovare e pubblicarli qui. Utilizzerò alcune password generate casualmente per il processo per consentire l’accesso alle persone che vogliono aiutare. Vediamo come va.

Sto attualmente eseguendo controlli e modifiche al file app.yml - ho cancellato i log in precedenza - tenterò l’invio di email e vi informerò.

MODIFICA
Quindi, cancellando i log e inviando email a Gmail o al mio dominio, non vengono visualizzati errori. Ricevo email su Gmail ma nessuna sul mio dominio.

I log su MailGun dicono fondamentalmente questo:

{
	"recipient": "me@mydomain",
	"id": "SCBCSJxDSqupdU9Da29rRw",
	"envelope": {
		"sender": "postmaster@mg.mydomain",
		"targets": "me@mydomain",
		"transport": "smtp",
		"sending-ip": "192.168.0.1"
	},
	"timestamp": 1697462206.8430145,
	"user-variables": {},
	"message": {
		"headers": {
			"from": "Discourse Test Forum <postmaster@mg.mydomain>",
			"message-id": "9d3b190d-bcbd-4378-8eb6-fc90cd57fe35@discourse.mydomain",
			"to": "me@mydomain",
			"subject": "[Discourse Test Forum] Email Deliverability Test"
		},
		"attachments": [],
		"size": 4546
	},
	"storage": {
		"region": "us-west1",
		"key": "BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA",
		"env": "production",
		"url": "https://storage-us-west1.api.mailgun.net/v3/domains/mg.mydomain/messages/BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA"
	},
	"reason": "generic",
	"delivery-status": {
		"enhanced-code": "",
		"mx-host": "mydomain",
		"description": "",
		"certificate-verified": true,
		"attempt-no": 1,
		"code": 550,
		"message": "Verification failed for <bounce+674b6a.be6180c-me=mydomain@mg.mydomain>\nThe mail server does not recognize bounce+674b6a.be6180c-me=mydomain@mg.mydomain as a valid sender.\nSender verify failed",
		"session-seconds": 40.878,
		"tls": true
	},
	"campaigns": [],
	"severity": "permanent",
	"tags": [],
	"recipient-domain": "mydomain",
	"flags": {
		"is-routed": false,
		"is-authenticated": true,
		"is-test-mode": false,
		"is-system-test": false
	},
	"log-level": "error",
	"event": "failed"
}

Ricevo questo solo se provo sul mio dominio. Se provo su qualsiasi altro dominio va bene, gratuito o meno.
Attualmente le impostazioni nel file app.yml sono:

## questo è il template del container Docker standalone tutto-in-uno di Discourse
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI *MOLTA* ATTENZIONE QUANDO EDIZI!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per validare questo file se necessario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Decommenta la riga seguente per abilitare il listener IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Decommenta queste due righe se desideri aggiungere Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## quali porte TCP/IP deve esporre questo container?
## Se vuoi che Discourse condivida una porta con un altro webserver come Apache o nginx,
## vedi https://meta.discourse.org/t/17247 per i dettagli
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Imposta db_shared_buffers al massimo del 25% della memoria totale.
  ## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, oppure puoi sovrascriverlo
  db_shared_buffers: "2048MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione Git dovrebbe usare questo container? (default: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Quante richieste web concorrenti sono supportate? Dipende da memoria e core CPU.
  ## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, oppure puoi sovrascriverlo
  UNICORN_WORKERS: 8

  ## TODO: Il nome del dominio a cui risponderà questa istanza di Discourse
  ## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
  DISCOURSE_HOSTNAME: mydomain

  ## Decommenta se vuoi che il container venga avviato con lo stesso
  ## hostname (-h option) specificato sopra (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di email separate da virgole che saranno rese admin e developer
  ## alla prima registrazione, esempio 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'me@mydomain'

  ## TODO: Il server di posta SMTP utilizzato per convalidare nuovi account e inviare notifiche
  # Indirizzo SMTP, nome utente e password sono obbligatori
  # ATTENZIONE il carattere '#' nella password SMTP può causare problemi!

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@mg.mydomain
  DISCOURSE_SMTP_PASSWORD: "mailgunpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (opzionale, default true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: postmaster@mg.mydomain


  ## Se hai aggiunto il template Lets Encrypt, decommenta sotto per ottenere un certificato SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: freemailaccount

  ## L'indirizzo CDN http o https per questa istanza di Discourse (configurato per il pull)
  ## vedi https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## La chiave API di Maxmind per la geolocalizzazione degli indirizzi IP
  ## vedi https://meta.discourse.org/t/-/137387/23 per i dettagli
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Il container Docker è stateless; tutti i dati sono memorizzati in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-docs.git
## Qualsiasi comando personalizzato da eseguire dopo la build
run:
  - exec: echo "Inizio comandi personalizzati"
  ## Se vuoi impostare l'indirizzo email 'Da' per la tua prima registrazione, decommenta e modifica:
  ## Dopo aver ricevuto la prima email di registrazione, ri-commenta la riga. Deve essere eseguita solo una volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine comandi personalizzati"

Le uniche modifiche apportate a questo file sono state:

  DISCOURSE_SMTP_ADDRESS: smtp.mydomain
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@mydomain
  DISCOURSE_SMTP_PASSWORD: "mydomainmailpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (opzionale, default true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: email@mydomain

Una volta che riceverò una risposta da qualcuno, apporterò quelle modifiche e controllerò di nuovo nei log. O… forse lo faccio e basta - posto i log - e aspetto una risposta. Non dovrebbe volerci molto. Vedremo.

1 Mi Piace

Onestamente, non lo so. :thinking: Non sembra essere un problema di Discourse. Voglio dire, l’email è stata inviata correttamente da Discourse, ma Mailgun non è riuscita a consegnarla all’indirizzo email.

L’errore 550 significa “La casella di posta dell’utente non era disponibile (ad esempio, non trovata)

1 Mi Piace

Grazie per la tua risposta. Non so cosa succeda: l’email funziona bene. Semplicemente non le piace il mio dominio, immagino.

Ho modificato l’impostazione per utilizzare la mia email di dominio per l’invio. Ora controllo i log e vedo quali errori ottengo.

EDIT
Nessun errore nei log, ma ho ottenuto questo.

Proverò da ./discourse-doctor, ma i log sono legittimamente vuoti in /logs.

E ottengo gli stessi errori postati all’inizio.

L’indirizzo email in uso funziona. Copio e incollo i dettagli, inclusa la password. Ho testato la stessa email su ThunderBird / Windows Mail senza alcun problema. Quindi…

Ho contattato il supporto del mio provider di hosting in precedenza, questa è stata la risposta.

Quindi non lo so. Forse c’è qualcosa che mi sfugge? Le email di prova funzionano con 465 / 587 e non ci sono problemi. Sono perso.

Ci sono caratteri speciali che potrebbero essere bloccati o causare problemi con le impostazioni email?

Impostazioni modificate sulla porta 465 e vedo solo questo nei /logs.

Niente di grave, credo.

Vorrei inviare i miei complimenti e ringraziamenti a @Arkshine per l’assistenza finora. A quanto pare, il VPS non riesce a raggiungere il dominio ospitato, motivo per cui le e-mail non funzionano. È piuttosto strano, ma sto contattando il provider di hosting per verificarlo. Aggiornerò.

È stato piuttosto rapido e facile. Un semplice ping al dominio ospitato da una sessione SSH al VPS che esegue Discourse ha mostrato cosa stava succedendo. Vediamo come va.

EDIT
Avrei voluto che @Arkshine rispondesse in modo da poterlo contrassegnare come soluzione. Comunque, ho ricevuto risposta dal provider di hosting. A quanto pare, i loro server hanno bloccato automaticamente l’IP del VPS a causa di tentativi falliti di SMTP. Non sono sicuro di cosa sia successo, cambierò le impostazioni ed eseguirò nuovamente i test per vedere. Dovrebbe andare bene ora: l’IP ospitato è raggiungibile dal VPS ora. Ho testato le impostazioni delle e-mail e siamo pronti!

Spero che queste informazioni aiutino qualcuno. Se potessi modificare l’OP, inserirei semplicemente un TLDR, oppure possono semplicemente fare clic sul link per andare alla soluzione.

Ancora, molti ringraziamenti a @Arkshine per tutto l’aiuto. Continua così!

2 Mi Piace

Sono d’accordo, è di grande aiuto e una risorsa. :slight_smile:

3 Mi Piace

Vorrei anche menzionare che il suo DP e lo sfondo del profilo sono davvero fantastici. Mi piace.

1 Mi Piace

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