ich starte ein Forum und bin mit Discourse völlig neu. Es wird auf DO gehostet und hat aus irgendeinem Grund Probleme mit SMTP oder dem Port. Ich wollte nun wissen, ob du dich für Google-Logins oder Social-Logins entschieden hast und ob es ein Problem darstellt, wenn keine lokalen Anmeldungen/Logins im Forum möglich sind.
SMTP ist auf DO standardmäßig blockiert. Wenn Sie E-Mails nutzen möchten, müssen Sie einen Proxy irgendwo einrichten. Viele haben gesagt, dass Mailgun für Discourse in der Cloud gut funktioniert, aber damit habe ich keine Erfahrung.
Das könnte das sein, wonach Sie suchen:
Ja, Sie können Social Login (Discord, Google, …) oder Discourse ID (ohne Einrichtung) ohne SMTP verwenden. Sie verlieren jedoch Digests und E-Mail-Benachrichtigungen, aber wenn Ihr Ziel nur eine Community ist, wird es auch mit geringerer Beteiligung funktionieren (Digests sollen die Bindung fördern).
Super, ich habe SendGrid, Mailgun und Resend ausprobiert. Das gleiche Problem tritt auf – es könnte ein Port-Problem sein, ich habe alle Ports getestet. Für den Moment möchte ich prüfen, ob die Social-Logins funktionieren, und die lokalen Logins abschaffen.
Hallo @abeen, willkommen
Ich habe zahlreiche selbst gehostete Installationen mit Mailgun und Resend auf DigitalOcean (und anderen Cloud-Servern) durchgeführt – kannst du bitte mehr Informationen zu dem Problem geben, das du hast? Bearbeitest du deine app.yml mit den entsprechenden Einstellungen? Ich nehme an, es handelt sich um eine Standardinstallation?
Die DO gibt an: „Bitte beachten Sie, dass ab dem 6. März 2025 zusätzlich zu dem bereits blockierten Port 25 auch die Ports 465 und 587 auf Droplets blockiert wurden. Dies dient dazu sicherzustellen, dass DigitalOcean-Server nicht zum Versenden von Spam-E-Mails missbraucht werden.“
Im Admin-Bereich sehe ich:
Es sind 30 E-Mail-Jobs fehlgeschlagen. Überprüfen Sie Ihre app.yml und stellen Sie sicher, dass die Einstellungen für den Mailserver korrekt sind. Siehe die fehlgeschlagenen Jobs in Sidekiq.
Ich habe die Resend-API neu erstellt, den Port auf 587 geändert und es auch mit 2525 versucht. Bei mir funktioniert nichts.
Dies ist wahrscheinlich das Hauptproblem, das deine Schwierigkeiten verursacht: Du verwendest geschweifte Anführungszeichen. YAML-Dateien mögen diese nicht und brechen meist ab. Du musst einfache oder doppelte gerade Anführungszeichen verwenden, wie 'passwort' oder "passwort".
Hast du eine Standardinstallation auf einer Subdomain durchgeführt oder handelt es sich um eine Installation auf der Stammdomain? Im ersten Fall sollte es so etwas wie forum.dobato.au oder discourse.dobato.au sein (prüfe, was in deinem Nameserver eingetragen ist). Falls du nicht beabsichtigt hast, eine Installation auf der Stammdomain durchzuführen, muss dies korrigiert werden.
Diese Zeile ist überflüssig; lösche sie.
Obwohl Resend dies unterstützt und es funktionieren sollte, ist der Standard 587.
Diese Zeile wird nicht benötigt; es bringt nichts, den Mailer zu zwingen, STARTTLS zu starten – der zugrunde liegende Ruby-Mailer (ActionMailer) verwendet enable_starttls_auto: true, was bedeutet, dass er die Verbindung automatisch auf TLS aktualisiert, wenn der Server (Resend) dies unterstützt. Lösche diese Zeile.
Dein korrekter app.yml-Abschnitt sollte wie folgt aussehen:
DISCOURSE_HOSTNAME: dobato.au # (Überprüfe dies – es könnte falsch sein!)
DISCOURSE_DEVELOPER_EMAILS: meine_email@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_tatsaechlicher_api_key_hier" # Beachte die geraden Anführungszeichen!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
Oh, ich habe DO vergessen, haha. Ich bin vor einiger Zeit von ihnen weggezogen. In meinem Kopf dachte ich an Resend und Hetzner. Also ja, benutze 2525 (ich erinnere mich jetzt, dass ich das beim Migrieren auch umgestellt habe).
Edit: Ich habe meinen Beitrag korrigiert. Danke, Jakee.
Zusammen mit den hervorragenden Ratschlägen oben wird das Ausführen von rake emails:test (siehe Troubleshoot email on a new Discourse install), um den Fehler sofort anzuzeigen, wahrscheinlich helfen.
Meine Website ist jetzt abgestürzt. Es ist eine neue Website mit wenigen Mitgliedern, und ich bin mir nicht sicher, wie ich meine benutzerdefinierten Seiten und Mitglieder herunterladen kann. Ich möchte überhaupt kein SMTP verwenden.
Ja, deine yml-Datei ist wahrscheinlich fehlerhaft. Poste sie hier komplett (ohne E-Mail-Adressen und Passwörter). Das sollte wirklich nicht so schwierig sein, um es zum Laufen zu bringen.
Nur aus Neugier: Welche Droplet-Größe bei DigitalOcean nutzt du?
Konntest du bereits überprüfen, ob dein Nameserver korrekt konfiguriert ist?
Bitte lies meinen vorherigen Beitrag hier sorgfältig durch. Deine YAML-Datei ist falsch.
Das sollte für ein nicht überlastetes Forum funktionieren. Hast du überhaupt eine Swap-Datei? Führe free -h in der Kommandozeile aus und poste die Ausgabe hier.
Ich verstehe. Es ist möglich, Discourse auf Lightsail mit SES zu hosten (einige Nutzer hier tun das). Oder du könntest Port 2525 ausprobieren, falls du das noch nicht getan hast. Aber wenn du diese Port-Probleme vermeiden möchtest, könntest du zu einem anderen Anbieter wechseln, wie etwa Hetzner oder Lightsail.