Smtp_sollte 400 schlechte Anfrage bei Nounces ablehnen

Hallo!

Ich habe im Grunde genau das gleiche Problem, das hier beschrieben wird: Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver - #482 by Carleas

Das Problem scheint zu sein, dass die Bounces, die ich erhalte, kein from haben. Wenn der API-Aufruf wie folgt erfolgt: https://forum.example.com/admin/email/smtp_should_reject.json?from=&to=replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com gibt er einen 400er mit folgendem zurück:

{"errors":["param is missing or the value is empty or invalid: from"]}

Hier sind ein paar weitere Auszüge aus den Mail-Receiver-Logs:

Nov 03 07:34:53 mail postfix/smtpd[1044]: connect from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]

<19>Nov  3 07:34:53 discourse-smtp-fast-rejection[1048]: Failed to GET smtp_should_reject answer from https://forum.example.com/admin/email/smtp_should_reject.json: 400<22>Nov  3 07:34:53 policyd-spf[1049]: : prepend Received-SPF: None (no SPF record) identity=helo; client-ip=74.91.xxx.108; helo=v-148-29-xxx-192-srvr1.xxx.com; envelope-from=<> ; receiver=mail.forum.example.com Nov 03 07:34:53 mail postfix/smtpd[1044]: NOQUEUE: reject: RCPT from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]: 450 4.7.1 <replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com>: Recipient address rejected: Internal error, API request failed; from=<> to=<replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com> proto=ESMTP helo=<v-148-29-xxx-192-srvr1.xxx.com>

Selbst wenn ein korrektes from (mit meiner E-Mail-Adresse) vorhanden wäre, käme die Antwort mit:

{"reject":true,"reason":"Mail to this address is not accepted. Check the address and try to send again?"}

Es wäre also trotzdem abgelehnt worden…

Fehlt mir etwas in der Konfiguration? Ich kann es nicht herausfinden.

1 „Gefällt mir“

Hallo! Tut uns leid, aber es scheint, dass Ihr Thema keine Interessenten gefunden hat. Konnten Sie Ihr Problem selbst lösen?

Welchen E-Mail-Anbieter nutzen Sie?

Nein, leider erhalte ich die Bounces nicht…

Ich benutze jedoch einen SMTP-Server von cPanel.

Wie sieht es mit Ihrem ausgehenden E-Mail-Anbieter aus? Verwenden Sie Mailgun oder einen anderen Transaktions-E-Mail-Anbieter?

Nein. Derselbe SMTP, ausgehend funktioniert einwandfrei, und eingehend für Themen kommt ebenfalls perfekt an, das Problem ist, dass Bounces für das Forum nicht sichtbar sind, sodass es immer wieder versucht und ich von meinem Hosting-Anbieter beschimpft werde.

Ich schiebe das mal in #hosting.
Die übliche offizielle Antwort auf so etwas lautet leider: “E-Mail ist schwierig”. Sie werden viel bessere Ergebnisse erzielen, wenn Sie einen Transaktions-E-Mail-Anbieter nutzen.
Wenn Sie ein Budget haben, können Sie im Marketplace posten oder ich kann dieses Thema dorthin verschieben.

Danke, dass Sie sich zumindest die Zeit genommen haben, dies mit mir zu besprechen!!

1 „Gefällt mir“

Hallo DevTeVe,

Ich habe den betreffenden Code überprüft und glaube, Sie haben Recht – ich denke, der smtp_should_reject-Code lehnt möglicherweise Bounces und Antworten fälschlicherweise ab.

Ich eskaliere dies intern.

In der Zwischenzeit, wenn Sie den discourse-smtp-fast-rejection-Richtlinienfilter deaktivieren, wird dann die E-Mail-Zustellung ermöglicht?

2 „Gefällt mir“

Wow! Danke für die Eskalation! Ich war schon ein wenig hoffnungslos hahaha! Ich werde versuchen, discourse-smtp-fast-rejection zu deaktivieren (obwohl ich nicht sicher bin, wie das geht, aber ich werde suchen und berichten)

1 „Gefällt mir“

Wenn Sie diese Zeile aus der Postfix-Konfigurationsdatei des Mail-Receivers entfernen können:

smtpd_recipient_restrictions = check_policy_service unix:private/policy

Sollte dies funktionieren – ich habe es nicht getestet, aber ich denke, es wird funktionieren:

postconf -e "smtpd_recipient_restrictions ="
1 „Gefällt mir“

Erfolg!

Ich erstelle meine mail-receiver.yaml wie folgt (in der Zwischenzeit oder für immer? @supermathie)

# Dies ist die Vorlage für den eingehenden E-Mail-Empfänger-Container
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild mail-receiver
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND EXTREM EMPFINDLICH GEGEN FEHLER BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren.

base_image: discourse/mail-receiver:release
update_pups: false

expose:
  - "25:25"   # SMTP

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8

  ## Wohin E-Mails an Ihr Forum gesendet werden sollen. Im Allgemeinen ist es völlig in Ordnung,
  ## dieselbe Domain wie das Forum selbst hier zu verwenden.
  MAIL_DOMAIN: community.example.com
# kommentieren Sie diese (und das Volumen unten!) aus, um TLS zu unterstützen
  POSTCONF_smtpd_tls_key_file:  /letsencrypt/community.example.com/community.example.com.key
  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/community.example.com/community.example.com.crt
  POSTCONF_smtpd_tls_security_level: may
  POSTCONF_myhostname: community.example.com
  POSTCONF_mynetworks: "127.0.0.0/8 [::1]/128 [fe80::]/64 172.17.0.0/16"
  POSTCONF_smtpd_recipient_restrictions: ""
  ## Die Basis-URL für diese Discourse-Instanz.
  ## Dies wird sein, was auch immer Ihre Discourse-Site-URL ist. Zum Beispiel,
  ## https://discourse.example.com. Wenn Sie eine Unterordner-Einrichtung ausführen,
  ## stellen Sie sicher, dass Sie dies berücksichtigen (d. h. https://example.com/forum).
  DISCOURSE_BASE_URL: 'https://community.example.com'

  ## Der Master-API-Schlüssel Ihres Discourse-Forums. Sie können diesen von
  ## der Registerkarte "API" Ihres Admin-Panels erhalten.
  DISCOURSE_API_KEY: <YOURKEY>

  ## Der Benutzername, der für die Verarbeitung eingehender E-Mails verwendet wird. Sofern Sie
  ## den Benutzer `system` nicht umbenannt haben, sollten Sie dies so belassen.
  DISCOURSE_API_USERNAME: system

volumes:
  - volume:
      host: /var/discourse/shared/mail-receiver/postfix-spool
      guest: /var/spool/postfix
# auskommentieren, um TLS zu unterstützen
  - volume:
      host: /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/
      guest: /letsencrypt
1 „Gefällt mir“

Nehmen wir „vorerst“ und wir werden dieses Thema aktualisieren, wenn wir mehr Neuigkeiten haben.

3 „Gefällt mir“

Vielen Dank! Ich hatte wirklich nicht erwartet, dass sich das noch weiterentwickelt, aber jetzt ist es perfekt und ich erhalte alle anderen Bounces!

3 „Gefällt mir“