Sidekiq zeigt an, dass Aktivierungs-E-Mails an die E-Mail-Adresse nil gesendet werden

Hallo großartige Leute,

Ich habe eine interessante Aufgabe für euch. Folgendes ist passiert:

  1. Discourse installiert mit discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
  2. E-Mail mit Doctor getestet, funktioniert und E-Mails empfangen.
  3. Versuch, das Admin-Konto zu aktivieren, und Sidekiq zeigt dies an (mit geschwärztem Token):
    {“type”=>“signup”, “user_id”=>1, “email_token”=>“REDACTED”, “to_address”=>nil, “current_site_id”=>“default”}

Ich bin mir nicht sicher, warum nil für to_address ein Ding ist.

Jeder Tipp, Ratschlag oder Vorschlag wäre sehr willkommen!

Ich kann es wahrscheinlich finden, aber weißt du, wie der Sidekiq-Job hieß, der die E-Mail ausgelöst hat?

Wenn Sie nicht auf die Website zugreifen können, weil Sie die Aktivierungs-E-Mail nicht erhalten, können Sie einen Administratorbenutzer und ein Passwort mit rake admin:create erstellen. Eine vollständige Anleitung finden Sie hier: Create an admin account from the console. Damit sollten Sie sich auf der Website anmelden können.

Es scheint, dass Sie immer noch klären müssen, was mit der E-Mail-Zustellung los ist.

6 „Gefällt mir“

Entschuldigen Sie die verspätete Antwort. Der Job, der dies ausgelöst hat, war: Jobs::CriticalUserEmail
Ich habe also die Anleitung genau befolgt. Als es darum ging, das Admin-Konto zu registrieren, wurde keine E-Mail gesendet, und Jobs::CriticalUserEmail enthielt {„type“=>„signup“, „user_id“=>1, „email_token“=>„REDACTED“, „to_address“=>nil, „current_site_id“=>„default“}.
Ich habe das Admin-Konto erzwungen, nur um zu sehen, welche Probleme es gab. Das Ergebnis ist das folgende:

  • Doktor funktioniert und E-Mail wird empfangen
  • Digest-Test funktioniert und E-Mail wird sowohl in HTML- als auch in Plain-Version empfangen
  • Bei jeder Registrierung wird keine E-Mail gesendet, und das Protokoll für E-Mails im Admin-Bereich zeigt nicht einmal eine Nachricht an, dass eine E-Mail gesendet wurde.
    Immer wenn ein Benutzer versucht, sich zu registrieren, ist das Ergebnis dasselbe:
    Jobs::CriticalUserEmail enthielt {„type“=>„signup“, „user_id“=>2, „email_token“=>„REDACTED“, „to_address“=>nil, „current_site_id“=>„default“}.
    Der Schwanz von /var/discourse/shared/standalone/log/rails/production.log zeigt (mit Schwärzungen):
Processing by UsersController#check_username as JSON
  Parameters: {"username"=>"bobo", "email"=>"REDACTED"}
Completed 200 OK in 2ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 636)
Started GET "/session/csrf" for REDACTEDPUBLICIP at 2024-09-26 08:13:03 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 270)
Started POST "/u" for REDACTEDPUBLICIP at 2024-09-26 08:13:03 +0000
Processing by UsersController#create as */*
  Parameters: {"name"=>"JJ", "email"=>"REDACTED", "password"=>"[FILTERED]", "username"=>"bobo", "password_confirmation"=>"[FILTERED]", "challenge"=>"REDACTED", "timezone"=>"Europe/London"}
Completed 200 OK in 335ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 23323)
Started POST "/login" for REDACTEDPUBLICIP at 2024-09-26 08:13:04 +0000
Processing by StaticController#enter as HTML
  Parameters: {"username"=>"bobo", "password"=>"[FILTERED]", "redirect"=>"/u/account-created"}
Redirected to https://REDACTEDDOMAIN/u/account-created
Completed 302 Found in 1ms (ActiveRecord: 0.0ms | Allocations: 507)
Started GET "/u/account-created" for REDACTEDPUBLICIP at 2024-09-26 08:13:04 +0000
Processing by UsersController#account_created as HTML
  Rendered layout layouts/application.html.erb (Duration: 14.0ms | Allocations: 4624)
Completed 200 OK in 21ms (Views: 15.1ms | ActiveRecord: 0.0ms | Allocations: 6821)
Started GET "/sidekiq/queues/critical" for REDACTEDPUBLICIP at 2024-09-26 08:13:15 +0000

Im Protokoll dort werden zwar genaue E-Mail-Adressen für die Registrierungsparameter angezeigt, aber Sidekiq meldet immer noch „to_address“=>nil.

1 „Gefällt mir“

Gibt es Fehler auf der Seite „Fehlerprotokolle“ Ihrer Website? Diese Seite finden Sie unter /logs. Sie können sie über die Seitenleiste des Administrators erreichen, indem Sie auf den Eintrag „Sicherheit / Fehlerprotokolle“ klicken.

1 „Gefällt mir“

Oh interessant. Ich erhalte Folgendes:

1 „Gefällt mir“

Können Sie auf die Sidekiq-Weboberfläche unter /sidekiq zugreifen? Wenn ja, werden auf dieser Seite Fehler gemeldet?

1 „Gefällt mir“

Ich bin es, aber was ich bekomme ist das:

Versuchen Sie, auf die Registerkarte „Enqueued“ zu klicken. Es ist ein Link.

1 „Gefällt mir“

Ich bekomme das:

Dort habe ich das address_to=nil-Ding entdeckt.

Mit Redis und/oder Sidekiq stimmt etwas nicht. Es gibt ein paar andere Mitglieder dieses Forums, die vielleicht Ideen haben, wie man das Problem debuggen kann.

Ich wäre versucht, mich per SSH auf dem Server anzumelden und Folgendes auszuführen:

cd /var/discourse
./launcher rebuild app

Es kann zu diesem Zeitpunkt nicht schaden.

1 „Gefällt mir“

Ja, das habe ich mehrmals getan, daher frage ich ja nach.

Ich habe einen Neubau durchgeführt. Ich habe sogar eine komplett neue Installation vorgenommen.

Es scheint bei jeder einzelnen Installation zu passieren. Egal was. Und jetzt bin ich einfach ratlos.

Und ich bin unglaublich dankbar für das, was Sie versucht haben, mir zu helfen.

1 „Gefällt mir“

Das ist überraschend. Stellen Sie sicher, dass Sie alle Schritte befolgen, die hier beschrieben sind: . discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.

Stellen Sie außerdem sicher, dass der Server, auf dem Sie Discourse installieren, die hier beschriebenen Anforderungen erfüllt: discourse/docs/INSTALL.md at main · discourse/discourse · GitHub.

Es wäre großartig, herauszufinden, was schief läuft.

3 „Gefällt mir“

Ich kann Ihnen den genauen Prozess geben, den ich verwendet habe. Vielleicht ist etwas in dem Prozess, den ich mache, falsch. Ich bin bereit, völlig zu akzeptieren, dass ich irgendwo einen Fehler mache!

  1. Haben Sie eine Domain. Es ist discourse.domain.dev (Domain offensichtlich geschwärzt)
  2. Haben Sie ein E-Mail-Konto eingerichtet. Ich habe ein Mailgun-Konto, also habe ich einen brandneuen Benutzer für SMTP eingerichtet. Die E-Mail lautet discourse@discourse.domain.dev
  3. Haben Sie einen Server. Es ist das neueste Ubuntu (Jammy Jellyfish)
  4. apt install docker.io - Keine
  5. Git war bereits installiert
  6. Benutzer war root
  7. geklont mit git clone https://github.com/discourse/discourse_docker.git /var/discourse
  8. navigiert zu cd /var/discourse
  9. chmod 700 containers
  10. immer noch root-Benutzer
  11. ausgeführt ./discourse-setup
  12. Informationen wie gewünscht eingegeben: discourse.domain.dev
  13. Discourse Admin-E-Mail: my@personal.email
  14. SMTP: smtp.eu.mailgun.org
  15. SMTP-PORT: 587
  16. Benutzername: noreply@discourse.domain.dev
  17. Benutzerpasswort: GESCHWÄRZT
  18. Benachrichtigungs-E-Mail: noreply@discourse.domain.dev
  19. Lets Encrypt E-Mail: my@personal.email
  20. Maxmind ID: Eingefügt
  21. Max Mind Lizenz: Eingefügt
  22. Die Eingabedaten für das Setup überprüft.
  23. Enter gedrückt.
  24. Gewartet.
  25. Noch mehr gewartet
  26. Eine Tasse Tee gemacht
  27. Letzte Zeile des Bootstrap-Prozesses:
    + /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=discourse.domain.dev -e DISCOURSE_DEVELOPER_EMAILS=my@personal.email -e DISCOURSE_SMTP_ADDRESS=smtp.eu.mailgun.org -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=noreply@discourse.domain.dev -e DISCOURSE_SMTP_PASSWORD=b7fc73b0905b5ffb5f70300f1f796000-1b5736a5-0a60075a -e DISCOURSE_SMTP_DOMAIN=discourse.example.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@discourse.domain.dev -e LETSENCRYPT_ACCOUNT_EMAIL=my@personal.email -e DISCOURSE_MAXMIND_ACCOUNT_ID=GESCHWÄRZT -e DISCOURSE_MAXMIND_LICENSE_KEY=GESCHWÄRZT -h devsite -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address GESCHWÄRZT local_discourse/app /sbin/boot
    GESCHWÄRZTE_LANGE_ZEICHENKETTE
  28. ./discourse-doctor ausgeführt. Es schlug fehl, da es keine Verbindung zu Redis herstellen konnte.
  29. ./launcher rebuild app ausgeführt und nichts an der Konfiguration geändert
  30. Es wurde gebaut. Alles in Ordnung. Der einzige Unterschied war die letzte geschwärzte lange Zeichenkette.
  31. ./discourse-doctor ausgeführt. Ich habe die Test-E-Mail von ihm erhalten.
  32. Die Seite war online, also habe ich ein Benutzerkonto für den Administrator erstellt.
  33. Registrieren geklickt
  34. Es wurde gesagt, dass eine Benachrichtigungs-E-Mail gesendet wird.
  35. Keine erhalten.
  36. Über ./discourse-docter nachgesehen und Folgendes gesehen:
    Discourse version at discourse.domain.dev: NICHT GEFUNDEN Discourse version at localhost: NICHT GEFUNDEN
  37. ./launcher enter app ausgeführt
  38. rake admin:create ausgeführt
  39. E-Mail eingegeben: my@personal.email
  40. Passwort zurücksetzen, da Benutzer bereits existiert
  41. Gesagt: “Ihr Konto hat jetzt Admin-Rechte!”
  42. Sich auf der Website unter der Domain angemeldet
  43. Gehen Sie zu discourse.domain.dev/logs - sehen Sie “Sidekiq heartbeat test failed, restarting”
  44. Gehen Sie zu discourse.domain.dev/sidekiq: Sehen Sie:
  45. Gehen Sie zu Enqueued anzeigen
  46. Auf “critical” klicken und Inhalt erweitern und “to_address”=nil wieder sehen.

Stoppen Sie und melden Sie sich.

Dies ist eine vollständige Wiederholung auf einer neuen Maschine heute. Dies sind die GENAU gleichen Schritte, die ich zuvor verwendet habe. Bitte, wenn ich mich verrechnet habe, lassen Sie es mich wissen! :pray:


Systemeinrichtung:

  • CPU: 4 Kerne
  • RAM: 16 GB
  • Betriebssystem: Ubuntu LTS 64bit 24.04
  • Speicher: NVMe 500G
  • Postgres-Version: 13.16-1
  • Redis: 7.0.7
  • Ruby: 3.3.4
1 „Gefällt mir“