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.
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.
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?
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)
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