Ich plane, etwa 600 E-Mail-Adressen aus einer Mailingliste in Discourse zu importieren, mit dem Ziel, dass alle automatisch die Kategorie „Announcements“ beobachten. Diese Kategorie soll im Wesentlichen die Hauptfunktion der Mailingliste übernehmen.
Meines Wissens nach können wir im Rahmen des Importvorgangs (ich verstehe, dass Skripte beteiligt sind und mein Entwickler dies durchführen muss) dafür sorgen, dass alle importierten Personen die Kategorie „Announcements“ beobachten, sodass sie definitiv E-Mails für jeden Beitrag erhalten (es sei denn, sie hören manuell auf, diese zu beobachten). Stimmt das?
Weniger klar ist mir, wie die Benutzererfahrung für die importierten Nutzer sein wird. Jeder wird ein Konto haben, aber ich gehe davon aus, dass sie sich nicht einloggen können, bis sie ein Passwort festgelegt haben. Beim ersten Besuch der Seite wird Discourse sie dazu auffordern. Korrekt?
Und was ist, wenn sie überhaupt kein Passwort festlegen? (Die meisten wissen nicht, dass sie jetzt Mailman-Konten haben; es gab also Widerstand gegen die Notwendigkeit eines weiteren Kontos. Seufz.) Wenn jemand die Seite nie besucht und sich nie einloggt, erhalten sie dann trotzdem E-Mails zu Themen und Beiträgen in der Kategorie „Announcements“?
Für alle, die das bereits durchgeführt haben: Mit welchen Support-Problemen mussten Sie sich nach dem Import auseinandersetzen?
Wenn Sie bereits eine transaktionale Beziehung zu diesen Personen haben, d. h. Sie migrieren sie auf eine neue Plattform, gibt es Möglichkeiten, den Prozess der Benutzererstellung zu beschleunigen. Dies ist für fortgeschrittene Administratoren gedacht, aber hier sind einige Ideen für die Befehlszeile (Rails-Konsole), die funktionieren könnten:
Nach meiner Erfahrung erstellt dies den neuen Benutzer mit den von Ihnen angegebenen Details, aktiviert sein Konto, damit er E-Mails empfangen kann, und sendet ihm anschließend eine E-Mail, die ihn darüber informiert, dass ein Konto für ihn auf Ihrer Discourse-Seite erstellt wurde, und enthält einen Link zur Einrichtung seines Kontos:
Ein neues Konto wurde für Sie auf Ihrer Discourse-Seite erstellt
Danke! Das scheint relativ einfach zu sein (und ja, das sind alles Benutzer auf einer Liste, die ich verwalte und von der ich weg von Mailman bewegen möchte).
Weißt du, was passiert, wenn sie ihr Konto nie einrichten, in Bezug darauf, dass sie E-Mails an die Kategorie „Automatisch abonnierte Ankündigungen
Es gibt hier auf diesem Thema klügere Köpfe als mich, aber ich denke, dass sie, da du den Befehl u.activate(); ausführst, bereits vollständig aktiviert sind. Das Einzige, was sie über die E-Mail tun, ist, ihr Passwort von der anfänglichen zufälligen Zeichenfolge zu ändern, die niemand kennt.
Es gibt die Vorstellung, dass inaktive Benutzer schließlich keine E-Mails mehr erhalten, aber ich bin mir nicht sicher, ob das hier für „automatisch beobachtete
Noch eine kurze Frage zu den Imports. Wissen Sie, was passiert, wenn Sie versuchen, eine E-Mail-Adresse zu importieren, die bereits einem Benutzer im System zugewiesen ist? Wird sie einfach übersprungen?
Ich hatte Angst, dass du das sagen würdest. Der Ansatz über die Rails-Konsole lag weit über meinen Admin-Fähigkeiten (Rails war auf unserem VPS nicht einmal installiert, und ich konnte ohnehin nicht sehen, wie ich auf diese Weise 600 Adressen importieren könnte), daher muss ich unseren Entwickler hinzuziehen. Ich werde ihn bitten, das zu prüfen.
Danke! Ich musste vor der dritten Zeile sudo su hinzufügen, um die Berechtigung zum Verbinden mit dem Docker-Daemon zu erhalten. Danach hat es funktioniert, und ich konnte die Zeilen im obigen Rails-Skript ausführen und einen Testbenutzer erstellen. Hurra!
Wie würde sich dieses Skript jedoch erweitern lassen, um mit einer Liste von 600 E-Mail-Adressen zu arbeiten? Es 600-mal auszuführen scheint… mühsam.
Sie würden ein Skript erstellen, das entweder diese Zeile für die 600 Benutzer enthält oder die Daten in eine Datenstruktur einfügt und diese durchläuft.
Da hier niemand Ruby-Erfahrung hatte, haben wir uns dafür entschieden, eine große Datei mit allen Befehlen zu erstellen und diese in die Rails-Konsole einzufügen. Das scheint zu funktionieren, außer dass es nun vier Fehler in Sidekiq gibt (von den ersten 50 Test-Importen), und ich weiß nicht, was ich damit anfangen soll oder was sie bedeuten. Wurden die Benutzer erstellt? Oder haben sie einfach keine Willkommens-E-Mail erhalten? Da die Wiederholungen fehlschlagen, sollte ich diese Fehler einfach löschen und weitermachen?
Ich kann mir schwer vorstellen, wie die user_id ungültig sein könnte.
Wahrscheinlich ja, aber du solltest herausfinden, welche Benutzer fehlgeschlagen sind und warum. Gab es Fehler, als du die Befehle eingefügt hast? Wenn du das nicht herausfinden kannst, musst du die vorhandenen Benutzer mit denen vergleichen, die du erwartest, und sehen, was der Unterschied ist.
Wenn du nicht einfach zurückscrollen kannst, solltest du in kleineren Chargen arbeiten, damit du den Fortschritt leichter überprüfen kannst.
Ich wurde erst viel später darüber informiert, sodass es keine Möglichkeit gab, zurückzugehen. Es ist möglich, dass diese Fehler auftreten, wenn eine importierte E-Mail-Adresse bereits im System existiert – das kann ich testen. Alle Benutzer, die ich erwartet hatte, wurden erstellt.
Was ich jedoch nicht herausfinden kann, ist, ob es einen Zusammenhang zwischen den Informationen in diesem Screenshot und irgendetwas gibt, das ich in Discourse nachschlagen könnte. Sind email_tokens etwas, das mit anderen Informationen verknüpft werden kann?
Es klingt so, als müsste ich das einfach weiterhin in kleinen Chargen durchführen und schauen, ob ich einen Fehler einer dieser Meldungen zuordnen kann.
Es stellte sich heraus, dass diese Fehler jedes Mal generiert wurden, wenn beim Import ein Fehler auftrat – etwa bei Benutzernamen mit mehr als 20 Zeichen, bei zwei aufeinanderfolgenden Sonderzeichen in einem Benutzernamen oder möglicherweise, wenn die E-Mail-Adresse bereits vergeben war (hier habe ich inkonsistente Ergebnisse beobachtet). Ich habe jedes Problem einzeln behoben und bin einfach weitergegangen. Am Ende habe ich alle Fehler aus Sidekiq gelöscht.