Google G Suite Relay SMTP funktioniert nicht

Hallo, ich versuche zum ersten Mal, Discourse auf einer DigitalOcean Linux VPS zu installieren. Diese VPS hostet mehrere Websites auf Nginx, und ich habe das Tutorial befolgt, wie man Discourse auf mehreren Websites installiert: Run other websites on the same machine as Discourse - #182 by angus

Discourse wurde installiert und lief einwandfrei. Doch als ich ein Admin-Konto erstelle, erhalte ich keine E-Mail. Ich habe dieses Tutorial befolgt: crunchify[dot]com/how-to-setup-email-for-discourse-forum-with-google-apps-smtp-relay-right-way/

Mein Server verwendet Postfix, um E-Mails an Google G Suite weiterzuleiten, und funktioniert einwandfrei mit WordPress und MyBB. Das oben genannte Tutorial erwähnt jedoch kein Postfix, und ich gehe davon aus, dass es eine direkte Verbindung zu Google G Suite herstellt.

Ich habe diesen Leitfaden zur Fehlerbehebung bei E-Mail-Problemen befolgt: meta.discourse[dot]org/t/troubleshooting-email-on-a-new-discourse-install/16326

Ich kann eine Telnet-Verbindung zum SMTP-Relay herstellen:

$ sudo telnet smtp-relay.gmail.com 587
Trying 2607:f8b0:400d:c04::1c...
Connected to smtp-relay.gmail.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP n18sm708840ooi.26 - gsmtp

Das Produktions-Log zeigt Folgendes:

Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.1ms | Allocations: 32)
Delivered mail cf23dab4-3e43-421e-8e54-228489c58874@forums.neuronootropic.org (610.1ms)
Job exception: end of file reached

  Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.2ms | Allocations: 32)
Delivered mail a092f703-b590-4792-bd73-d9e4700c3e3c@forums.neuronootropic.org (261.1ms)
Job exception: end of file reached

Ich habe versucht, die E-Mail in der app.yml-Konfigurationsdatei auf noreply@forums.neuronootropic.org zu setzen, da ich weiß, dass diese E-Mail funktioniert, aber es ist das Gleiche. Es werden immer noch E-Mails mit diesen Nummern gesendet, ich vermute, es handelt sich um eine Art Verschlüsselung? Sie kommen nie in meinem Posteingang an.


Mein anderes Problem betrifft Nginx. Es hat gestern noch einwandfrei funktioniert, aber heute habe ich in der app.yml-Konfigurationsdatei herumgespielt und die URL auf ein Unterverzeichnis statt auf eine Subdomain gesetzt.

Ich wollte nur testen, ob vielleicht die Subdomain das Problem mit der nicht funktionierenden E-Mail verursacht, da mein aktuelles Forum, MyBB, in einem Unterverzeichnis läuft und keine E-Mail-Probleme hat.

Dies scheint Nginx beschädigt zu haben. Aus irgendeinem Grund versucht Nginx nun, ein SSL-Zertifikat aus dem Discourse-Verzeichnis zu laden, obwohl dies in meiner Nginx-Konfigurationsdatei nicht angegeben ist. Hier ist der Fehler:

$ sudo nginx -t
nginx: [emerg] BIO_new_file("/var/discourse/shared/standalone/ssl/ssl.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/var/discourse/shared/standalone/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed

Ich verwende Let’s Encrypt für das SSL-Zertifikat, und es funktioniert einwandfrei. Nginx hatte gestern noch keine Probleme, bevor ich versucht habe, Discourse in einem Unterverzeichnis statt auf einer Subdomain auszuführen.

Jede Hilfe wäre willkommen.

Ich habe den G-Suite-Relay für E-Mails zwar noch nicht konfiguriert, aber es scheint so, als müsste forum.neuronootropic.org in deinem G-Suite-Admin-Konto als absendende Domain hinzugefügt und verifiziert werden. Falls dem so ist, gibt es laut Google-Dokumentation keinen Grund, warum es nicht funktionieren sollte.

Wenn du jedoch neuronootr0pic.org bei G-Suite verifiziert hast, könntest du beispielsweise noreply_forum@neuronootropic.org zum Senden von E-Mails verwenden.

Danke für den Vorschlag.

Ich habe es noch einmal getestet. Es stellt sich heraus, dass die Adresse noreply@forums.neuronootropic.org nur E-Mails empfangen, aber nicht von dort aus senden kann. Ich hatte sie als separate Domain in G Suite eingerichtet und angenommen, dass die MX-Einträge der Hauptdomain für beides ausreichen würden.

Das war jedoch nicht der Fall. Ich habe MX-Einträge für forums.neuronootropic.org hinzugefügt, und jetzt kann ich E-Mails senden und empfangen.

Dennoch versendet Discourse nach der Registrierung eines Administrators immer noch keine Aktivierungs-E-Mail.

Habt ihr eine Idee?

Außerdem bin ich mir nicht sicher, warum Nginx versucht, ein SSL-Zertifikat aus dem Discourse-Verzeichnis zu laden, obwohl ich dies nie so konfiguriert habe. Habt ihr einen Ansatz, wie man dieses Problem angehen kann?

Edit: Ich habe die Einstellung für die Benachrichtigungs-E-Mail so geändert, dass E-Mails von der Hauptdomain statt von der Subdomain gesendet werden. Ich habe Discourse neu aufgebaut, aber es sendet immer noch E-Mails von der Subdomain.

exec: rails r "SiteSetting.notification_email='noreply@neuronootropic.org'"

$ tail shared/standalone/log/rails/production.log
  Parameters: {"authenticity_token"=>"K6dxoAPvh8PEU6mLHjyFRhY/CcZFFIalhrX08AIh9EgGuOHrJos7i1w0dgdS7okeoSBTrmWJSsc77YpfTnMO4A=="}
  Rendering finish_installation/resend_email.html.erb within layouts/finish_installation
  Rendered finish_installation/resend_email.html.erb within layouts/finish_installation (Duration: 0.4ms | Allocations: 110)
  Rendered layouts/_head.html.erb (Duration: 0.4ms | Allocations: 145)
Completed 200 OK in 19ms (Views: 7.8ms | ActiveRecord: 0.0ms | Allocations: 3036)
  Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.1ms | Allocations: 32)
Delivered mail bce41ef8-2288-42cd-b7ae-e1eb990a4646@forums.neuronootropic.org (705.1ms)
Job exception: end of file reached

Ich habe das Nginx-Problem behoben. Es stellte sich heraus, dass sich eine Sicherungskonfigurationsdatei von Nginx im Verzeichnis sites-enabled befand. Ich bin mir nicht sicher, wie sie dorthin gelangt ist, da ich die Dateien in sites-available mit sites-enabled verlinke und nicht im sites-enabled-Verzeichnis herumbohre.

Das Problem mit dem G Suite Relay SMTP besteht weiterhin. Ich verstehe nicht warum. Im Produktionslog von Discourse werden keine Fehler erwähnt.

Discourse doctor:

==================== MAIL TEST ====================
Für einen umfassenden Test holen Sie sich eine Adresse unter http://www.mail-tester.com/
Oder senden Sie einfach eine Testnachricht an sich selbst.
E-Mail-Adresse für den Mail-Test? ('n' zum Überspringen) [forums@neuronootropic.org]: forums@neuronootropic.org
Senden der E-Mail an forums@neuronootropic.org. . .
Testen des Sendens an forums@neuronootropic.org über smtp-relay.gmail.com:587.
======================================== FEHLER ========================================
                                    UNERWARTETER FEHLER

Ende der Datei erreicht

====================================== LÖSUNG =======================================
Dies ist kein häufiger Fehler. Es gibt keine empfohlene Lösung!

Bitte melden Sie die genaue Fehlermeldung oben unter https://meta.discourse.org/
(Und eine Lösung, falls Sie eine finden!)
=======================================================================================

Was bedeutet das?

Ich habe… äh… beim Einrichten der Weiterleitung in G Suite den Speichern-Button nicht geklickt, lol

Die E-Mail funktioniert jetzt. :slight_smile: