Konfigurieren Sie eingehende Direktversand-E-Mails für selbstgehostete Websites mit Mail-Receiver

Discourse is all about enabling civilized discussion. While plenty of people like a web interface, e-mail is still the “hub” of many people’s online lives. That’s why sending e-mail is so important, and when you’re sending e-mail, you really want to be able to receive it, too. There are several reasons why:

  • If e-mails “bounce” (they can’t be delivered for some reason), you need to know about that. Repeatedly sending e-mails that bounce will get your e-mails flagged as spam. Receiving e-mail bounces allows you to disable sending to non-existent addresses.
  • Allowing people to reply to posts via e-mail can significantly improve engagement, as people can reply straight away from their mail client, even if they’re not able to visit the forum at that moment.
  • Letting people post new topics, or send PMs, via e-mail has similar benefits to engagement. In addition, you can use Discourse to handle e-mail for a group, such as an e-mail-based support channel (which is how Discourse’ own e-mail support is handled).

Delivering e-mail directly into your Discourse forum, rather than setting up POP3 polling, has a number of benefits:

  • No need to deal with gmail or another provider’s foibles;
  • You have more control over the e-mail addresses that people use to send posts; and
  • There are no delays in delivery – no more waiting for the next polling run to see new posts appear!

This howto is all about getting that hawtness into your forum.

Overview

This procedure creates a new container on your Discourse server, alongside the typical app container, which receives e-mail and forwards it into Discourse for processing. It supports all e-mail processes: handling bounces, replies, and new topic creation. Any self-hosted Discourse forum using our supported installation process can make use of this procedure to get easy, smooth-flowing incoming e-mail.

Container Setup

We’re going to get the mail-receiver container up and running on the server that’s already running your Discourse instance. There’s no need for a separate droplet just to handle mail – the whole container only takes about 5MB of memory!

So, start off by logging into your Discourse server, and becoming root via sudo:

ssh ubuntu@192.0.2.42
sudo -i

Now, go to your /var/discourse directory and create a new mail-receiver.yml container definition from the sample conveniently provided:

cd /var/discourse
git pull
cp samples/mail-receiver.yml containers/

Since every site is unique, open containers/mail-receiver.yml in your preferred text editor and change the MAIL_DOMAIN, DISCOURSE_MAIL_ENDPOINT, and DISCOURSE_API_KEY variables to suit your site. (If you are an advanced user and know that you are using nginx outside your container, see below for additional configuration for external nginx.)

:bulb: If you use the default mail endpoint (/admin/email/handle_mail), we suggest using the receive_email API key scope to provide an extra layer of security.

If you’re not sure what your favourite text editor is, try nano:

nano containers/mail-receiver.yml

Use Ctrl-X to exit (say “Yes” to “Do you want to save changes?”, or all your work will be for nothing).

Now, do an initial build of the container, and fire it up!

./launcher bootstrap mail-receiver
./launcher start mail-receiver

To check everything’s OK, take a peek in the logs:

./launcher logs mail-receiver

The last line printed should look rather a lot like this:

<22>Aug 31 04:14:31 postfix/master[1]: daemon started -- version 3.1.1, configuration /etc/postfix

If so, all is well, and you can go on to then next step.

DNS Setup

In order for everyone else on the Internet to know where to deliver mail, you must create an MX record for your forum. The exact details of how to do this vary by DNS provider, but in general, the procedure should be very similar to how you setup the DNS records for your forum in the first place, except that instead of creating an A (or “Address”) record, you’re creating an MX (or “Mail eXchange”) record. If your forum is at forum.example.com, and you set MAIL_DOMAIN to forum.example.com in the mail-receiver.yml, then the DNS record should look like this:

  • DNS Name: forum.example.com (this is the MAIL_DOMAIN)
  • Type: MX
  • Priority: 10
  • Value: forum.example.com (this is the domain of your forum)

To make sure the DNS is setup correctly, use a testing site such as http://mxtoolbox.com/ to look up the MAIL_DOMAIN you configured, and make sure it’s pointing to where you expect.

Note: outbound email providers like mailgun may ask you to add MX records pointing to their servers. You want to remove these so the MX records for your forum only point to your forum’s domain name. SPF and DKIM records must still point to your outbound email provider servers so you can send email.

Discourse Configuration

Now e-mail is being fed into Discourse, it’s time to explain to Discourse what to do with the e-mail it receives.

  • Log into your Discourse forum as Admin and navigate to the Admin panel’s Site Settings, then click the Email tab. (forum.example.com/admin/site_settings/category/email)
  • Change the following settings:
    • Enable the reply by email setting
    • In the reply_by_email_address field, enter replies+%{reply_key}@forum.example.com
    • Enable the manual polling setting

You can automatically, without any further setup, use any address @forum.example.com as an address for category or group e-mails.

Troubleshooting

Nothing ever goes according to plan. Here’s how to figure out what went wrong.

  1. OCI runtime create failed error running ./launcher start mail-receiver? Your hostname might be too long. Rename it using these instructions and choose a shorter name, then rebuild.
  2. Did the e-mail even make it to mail-receiver? Run ./launcher logs mail-receiver, and look for log entries that mentions the address that the e-mail was sent from and to. If there’s none of those, then the message never even made it, and the problem is upstream. Check MX records, sending mail server logs, and firewall permissions (SMTP port 25).
  3. Is the message stuck in the queue? Run ./launcher enter mail-receiver, then run mailq. It should report, “Mail queue is empty”. If there’s any messages in there, you’ll get the to/from addresses listed. Messages only sit around in the queue if there’s a problem delivering to Discourse itself, so exit out of the container and then check…
  4. Did mail-receiver error out somehow? Run ./launcher logs mail-receiver | grep receive-mail and look for anything that looks like a stack trace, or basically anything other than “Recipient: <something>@forum.example.com”. Those error messages, whilst not necessarily self-explanatory, should go an awfully long way to explaining what went wrong. Look for typos in your yml file. In particular, check that DISCOURSE_MAIL_ENDPOINT URL matches your site URL, usually starting with https://.

Integrating with External nginx

If you are an advanced user and have configured external nginx such as for Add an offline page to display when Discourse is rebuilding or starting up you will find that the combination of mail-receiver and HTTPS being handled in external nginx requires slightly different handling to enable SSL for email over TLS. Here are example containers/mail-receiver.yml snippets that work with the recommended configuration for external nginx with letsencrypt certificates:

  POSTCONF_smtpd_tls_key_file:  /letsencrypt/live/=DOMAIN=/privkey.pem
  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/live/=DOMAIN=/fullchain.pem

volumes:
  - volume:
      host: /var/discourse/shared/mail-receiver/postfix-spool
      guest: /var/spool/postfix
# uncomment to support TLS
  - volume:
      host: /etc/letsencrypt/
      guest: /letsencrypt

Note that you can’t export as a volume only /etc/letsencrypt/live because the actual files are symlinks into ../../archive/... and those won’t resolve if you are more specific in the volume specification.

Prevent outgoing host email from interfering (Postfix)

If you have (or want) automated messages from your host server (via Postfix), the mail-receiver will conflict because it needs port 25 to operate. One solution is to disable the host Postfix from listening on port 25:

nano /etc/postfix/master.cf

and comment out the line that looks like this:

smtp inet n - y - - smtpd

Then service postfix reload. You may also need to restart the mail-receiver container.

With both the host Postfix and the mail-receiver running, do netstat -tulpn | grep :25 to confirm that docker-proxy is using port 25.

Block unwanted domains from sending to you

To stop email from unwanted domains from even reaching your Discourse, your mail-receiver.yml should look something like this:

  DISCOURSE_API_USERNAME: system

  POSTCONF_smtpd_sender_restrictions: 'texthash:/etc/postfix/shared/sender_access'

volumes:
  - volume:
      host: /var/discourse/shared/mail-receiver/postfix-spool
      guest: /var/spool/postfix
  - volume:
      host: /var/discourse/shared/mail-receiver/etc
      guest: /etc/postfix/shared
# uncomment to support TLS
#  - volume:
#      host: /var/discourse/shared/standalone/letsencrypt
#      guest: /letsencrypt

Then create /var/discourse/shared/mail-receiver/etc path, and within it create a sender_access file containing the domains to reject, like this:

qq.com REJECT
163.com REJECT

Rebuild and you’re golden!

DMARC support

DMARC support has been enabled by default in the discourse/mail-receiver:release image to more strongly validate incoming email. This is enabled since the timestamped image discourse/mail-receiver:20240720054629.

This functionality can be toggled via the INCLUDE_DMARC docker environment variable. If a more permissive incoming mail server configuration is preferred, set that environment variable to false and rebuild the image.

The last version without DMARC support is discourse/mail-receiver:20211208001915.

Further Reading

Last edited by @kelv 2024-07-22T03:53:51Z

Check documentPerform check on document:
95 „Gefällt mir“

7 Beiträge wurden zu einem neuen Thema aufgeteilt: Funktioniert der Mail-Empfänger mit ARM?

Dieser Container scheint die E-Mail in einem Parameter namens email zu kodieren:

Dies scheint veraltet zu sein, gemäß /logs:

Deprecation notice: warning: the email parameter is deprecated. all POST requests to this route should be sent with a base64 strict encoded email_encoded parameter instead. email has been received and is queued for processing (removal in Discourse 3.3.0)

Könnten Sie dies aktualisieren, bevor der veraltete Parameter entfernt wird? :innocent:

6 „Gefällt mir“

Ein paar Hinweise zur Einrichtung:

  • Stellen Sie sicher, dass Sie die neue Container-Konfigurationsdatei mit folgendem Befehl sichern: chmod o-rwx containers/mail-receiver.yml. Wenn Sie dies nicht tun, werden Sie beim Bootstrapping des Containers dazu aufgefordert.
  • Bei der Erstellung des API-Schlüssels habe ich “Alle Benutzer” und den Geltungsbereich “Global” ausgewählt. Ich weiß nicht, ob ein eingeschränkterer Schlüssel funktionieren würde.
  • Die Beispiel-Datei mail-receiver.yml hat ganz andere TLS-Einstellungen, daher sollten Sie die Anweisungen hier verwenden, anstatt zu versuchen, das Beispiel zu bearbeiten.
  • Sie enthält auch eine Einstellung smtpd_tls_security_level, die ich auskommentiert habe. Ich habe keine Nachforschungen angestellt, um herauszufinden, ob sie benötigt wird oder ob ich mit einer anderen Einstellung als “may” besser dran wäre.
  • Wenn Sie eine E-Mail für eine bestimmte Kategorie einrichten möchten, können Sie dies unter /c/{category-name}/edit/settings tun. (Dies ist nützlich, wenn Sie eine Art Mailinglisten-Kategorie erstellen möchten.) Für eine Gruppe können Sie eine E-Mail-Adresse unter /g/{group-name}/manage/interaction einrichten.

Ich weiß nicht, ob das jemandem helfen wird, aber es hätte mir geholfen. :wink:

4 „Gefällt mir“

Sie sollten wirklich einen API-Schlüssel mit dem Prinzip der geringsten Rechte verwenden. Diese Einstellungen funktionieren definitiv:

Benutzerebene: Alle Benutzer
Geltungsbereich: Granular
E-Mail—E-Mails empfangen

4 „Gefällt mir“

Soweit ich das beurteilen kann, ist meine Einrichtung richtig, aber es gibt keine Aufzeichnungen über E-Mails in Discourse.

Die E-Mails erscheinen im Log wie folgt:

Mar 18 17:20:41 [myserver]-mail-receiver postfix/smtpd[122]: NOQUEUE: reject: RCPT from [XXX].google.com[XXX.XX.XXX.XXX]: 554 5.7.1 <test004@www.[mysite].com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again?; from=<[sender]@gmail.com> to=<test004@www.[mysite].com> proto=ESMTP helo=<[XXX].google.com>
Mar 18 17:20:42 [myserver]-mail-receiver postfix/smtpd[122]: disconnect from [XXX].google.com[XXX.XX.XXX.XXX] ehlo=2 starttls=1 mail=1 rcpt=0/1 bdat=0/1 quit=1 commands=5/7

Und ich erhalte auch eine Ablehnungsbenachrichtigung an die sendende Adresse. Nichts bleibt in der Warteschlange und es gibt keine Spurenanzeigen in den Protokollen. Ich habe dreimal überprüft, ob die URLs übereinstimmen, und die API-Einstellungen zeigen, dass der Schlüssel verwendet wird. Aber die Liste der abgelehnten E-Mails im Admin-Panel bleibt leer.

Irgendwelche Vorschläge?

Der Fehler deutet darauf hin, dass MAIL_DOMAIN nicht auf www.[mysite].com gesetzt ist, oder es gibt keine Kategorie oder Gruppe, die so konfiguriert ist, dass sie E-Mails empfängt, die an test004@www.[mysite].com gesendet werden.

1 „Gefällt mir“

Vielen Dank für Ihre Antwort. Ich habe MAIL_DOMAIN auf jede erdenkliche Weise überprüft, ich habe jede Kombination aus MAIL_DOMAIN-Wert und Ziel-E-Mail-Adresse ausprobiert. Mit welchem Wert in der Discourse-Einrichtung wird er verglichen, z. B. DISCOURSE_HOSTNAME, DISCOURSE_SMTP_DOMAIN, etwas anderes?

Ich bin etwas verwirrt von Ihrem zweiten Vorschlag angesichts dieser Zeile in der OP:

Sollten Ablehnungen nicht angezeigt werden, noch bevor Discourse eingerichtet ist, um etwas damit zu tun? Bounces werden auch nicht angezeigt, ich habe es mit der hier empfohlenen Methode getestet: VERP zur Behandlung von Bounce-E-Mails konfigurieren. Keine Spur von etwas in admin/email.

Gibt es ein Protokoll in einem der Container, das mehr Informationen über die Interaktion zwischen mail-receiver und app anzeigt (oder konfiguriert werden könnte, um sie anzuzeigen)?

1 „Gefällt mir“

Es gibt zwei Hauptarten von Ablehnungen: solche, die frühzeitig auftreten und entscheiden, ob die E-Mail an den Discourse EmailReceiver weitergeleitet werden soll oder nicht, und solche während der E-Mail-Verarbeitung von Discourse.

Meiner Erfahrung nach erscheinen erstere nicht in den Discourse-Protokollen, was bedeutet, dass die meisten (alle?) E-Mail-bezogenen Ablehnungen (fehlgeschlagene DMARC, falsche Adresse usw.) dort nicht erscheinen. Diejenigen, die erscheinen, sind Dinge wie E-Mail zu kurz, Benutzer darf nicht posten usw.

Ich bin mir nicht sicher, ob sich seit dem Schreiben dieses Absatzes etwas geändert hat, aber das oben Genannte ist meine Erfahrung seit etwa 2,5 Jahren, seit ich es eingerichtet habe.

Wenn ich eine E-Mail an test-reject@[my-instance] sende, erhalte ich eine generische Absage von meinem E-Mail-Anbieter (nicht von mail-receiver / Discourse), die mir mitteilt, dass die Empfängeradresse abgelehnt wurde. Dies liegt daran, dass mail-receiver sie während der SMTP-Interaktion ablehnt.

Bounces und VERP beziehen sich auf E-Mails, die Ihre Discourse-Instanz sendet, anstatt empfängt, z. B. um das Senden von Benachrichtigungs-E-Mails an eine Adresse, die ständig zurückkommt, automatisch zu stoppen. Sie beziehen sich nicht auf mail-receiver.


Ich vermute, dass Ihr Zitat aus dem Leitfaden Sie in die Irre geführt hat und tatsächlich wahrscheinlich alles richtig funktioniert. Das Senden an some-random-address@MAIL_DOMAIN wird nicht akzeptiert und nicht in den Ablehnungen angezeigt, daher ist dies allein kein sehr nützlicher Test (abgesehen davon, dass sichergestellt wird, dass mail-receiver E-Mails empfängt, was Sie gesehen haben).

Navigieren Sie zu einer vorhandenen Kategorie oder erstellen Sie eine neue, öffnen Sie deren Konfiguration und gehen Sie zur Registerkarte Einstellungen. Ganz unten finden Sie custom incoming email address. Setzen Sie diese auf something@MAIL_DOMAIN, z. B. die von Ihnen zuvor versuchte test004-Adresse, speichern Sie und versuchen Sie dann, an diese Adresse zu senden.

Das sollte mail-receiver passieren, sodass Sie entweder einen neuen Beitrag in der Kategorie sehen oder eine Ablehnung in Discourse.

1 „Gefällt mir“

Vielen Dank, das ist eine sehr hilfreiche Klärung. Ich werde es einrichten und testen, um zu sehen.

Bei Bounces war ich wieder vom OP verwirrt, da Bounces der erste Punkt in der Liste der Gründe sind, warum Sie diesem Leitfaden folgen möchten.

Selbst mit dieser Einrichtung und selbst wenn ich meine Mailgun MX-Einträge entfernt habe, muss ich VERP auf dieser Seite noch konfigurieren, um Bounces usw. abzufangen? Nun, Mist, ich dachte, Direct-Delivery wäre eine Lösung für meine Probleme mit Mailgun Webhooks, es sieht so aus, als müsste ich damit wieder mit der Fehlersuche beginnen.

2 „Gefällt mir“

Oh, Entschuldigung, Sie haben Recht, dass es heißt, Sie können mail-receiver für Bounces verwenden. Ich bin nicht sehr vertraut damit, wie das funktioniert.

Mein Mail-Receiver empfängt keine Bounces, aber ich verwende Mailgun Webhooks. Vielleicht ändert Mailgun den Envelope Sender, sodass es die Bounces empfängt, wenn Webhooks aktiviert sind. (D. h. wenn Webhooks deaktiviert wären, würde mein Mail-Receiver stattdessen die Bounces empfangen.)

1 „Gefällt mir“

Ja, ich bin ziemlich sicher, dass das jetzt nicht mehr korrekt ist, da Fast-Rejection implementiert wurde in… (prüft git log) Mai 2017.

Ohne deine tatsächliche Konfiguration zu sehen, einschließlich der Discourse-Gruppen-/Kategoriekonfiguration, ist es wirklich schwer zu sagen, was schief läuft. Zumindest 80 % der Zeit ist es jedoch ein Tippfehler irgendwo; bitte einen Kollegen (muss keine technisch versierte Person sein), es sich anzusehen, und er wird wahrscheinlich in etwa fünf Sekunden erkennen, wo du ein l anstelle eines i gesetzt hast. Meine Frau macht das regelmäßig für mich.

Das ist es. Bei Direct Delivery muss dein ausgehender Mail-Provider überhaupt nicht für eingehende E-Mails involviert sein. Alles, sei es ein neues Thema, eine Antwort oder ein Bounce, sollte alles direkt an mail-receiver (und von dort an Discourse zur Verarbeitung) gehen.

3 „Gefällt mir“

Ich bin ziemlich sicher, dass mir das letzte Woche bei genau diesem Problem passiert ist. Ich habe schließlich eine andere YML-Datei von woanders kopiert und es hat funktioniert.

Es kam mir jedoch seltsam vor, Matt. Ich habe in den Postfix-Dateien nachgesehen und auch diese sahen richtig aus, aber es wurde gesagt, dass der Hostname nicht übereinstimmt. Ich schwöre, ich habe ihn kopiert und eingefügt, aber vielleicht habe ich den Fehler gemacht zu glauben, dass ich tippen kann.

1 „Gefällt mir“

Es ist gut, dass die KI-Spracherkennung das alles für uns jeden Tag beheben wird. :troll:

3 „Gefällt mir“

[quote=“Simon Manning, post:476, topic:49487, username:Simon_Manning”]
Ich vermute, dass Ihr Zitat aus dem Leitfaden Sie in die Irre geführt hat und dass eigentlich alles korrekt funktioniert.
[/quote]Sie hatten Recht, die Einrichtung einer E-Mail für eine Kategorie und das Senden von E-Mails dorthin funktionierte wie erwartet, sodass ich mir nur den Kopf zerbrach, weil die Ablehnungen stillschweigend erfolgten.

Ich bin froh, dass ich es jetzt weiß, und hoffe, dass der Leitfaden aktualisiert wird, obwohl ich persönlich es bevorzugen würde, wenn er so funktionieren würde, wie der Leitfaden es beschreibt. Wenn Benutzer beispielsweise versuchen, E-Mails an eine Adresse zu senden, und diese fehlschlägt, könnte mir das helfen, sie entweder zu informieren oder zu erkennen, dass eine Nachfrage besteht, per E-Mail mit einer Kategorie oder Gruppe zu kommunizieren. Es scheint, dass es ohne diese keine einfache Möglichkeit gibt, diese E-Mails zu sehen.

[quote=“Matt Palmer, post:479, topic:49487, username:mpalmer”]
Das ist der Fall. Bei direkter Zustellung muss Ihr ausgehender Mailprovider überhaupt nicht für eingehende E-Mails involviert werden. Alles, sei es ein neues Thema, eine Antwort oder ein Bounce, sollte direkt an mail-receiver (und von dort an Discourse zur Verarbeitung) gehen.
[/quote]Das funktioniert immer noch nicht wie erwartet. Ich habe die Webhooks zum Laufen gebracht, sodass ich mehrere Bounces sehen kann, aber ich weiß, dass sie von Mailgun Webhooks stammen, da sie das hier beschriebene Problem haben: “Discourse::NotFound” Fehler beim Klicken auf das Feld “E-Mail-Typ” unter admin/email/bounced

Ich verstehe nicht wirklich, wie Mailgun die Bounces überhaupt erhält, da ich keine MX-Einträge habe, die auf deren Server zeigen. Ich gehe davon aus, dass sie einen Rückweg festlegen, wenn sie die ausgehende E-Mail senden?

Und ich sehe die Bounces in den mail-receiver-Protokollen, aber sie gelangen nicht zu app. Es sieht so aus, als ob sie stillschweigend abgelehnt werden. Hier ist eine Zeile in den Protokollen, die ich mit einem Bounce verbinden kann, der über die Webhooks empfangen wurde:

NOQUEUE: reject: RCPT from mail-[id1].outbound.protection.outlook.com[XX.XX.XX.XX]: 450 4.7.1 <bounce+[id2]-[email]=[address].com@www.[mydomain].com>: Recipient address rejected: Internal error, API request failed; from=<> to=<bounce+[id#]-[email]=[address].com@www.[mydomain].com> proto=ESMTP helo=<[id3].outbound.protection.outlook.com>

Muss ich bounce+{%something}@www.mydomain.com als Whitelist-Adresse irgendwo hinzufügen, damit sie durchkommen?

2 „Gefällt mir“

Ja, sie schreiben wahrscheinlich den Rückgabepfad (auch „Envelope From“ genannt) neu, wenn die ausgehende E-Mail ihre Server durchläuft. Es gibt wahrscheinlich irgendwo eine Einstellung, um dies zu deaktivieren, aber ich habe Mailgun nicht verwendet, daher kann ich es nicht sicher sagen (oder wo sich eine solche Einstellung befinden würde).

OK, das ist ein Fehler zwischen mail-receiver und Discourse. Es sollte bald davor eine Zeile in den Protokollen geben, die mit „Failed to GET smtp_should_reject answer“ beginnt, die Ihnen mehr darüber erzählt, was fehlgeschlagen ist und warum, und das sollte mit einer Fehlermeldung irgendeiner Art in den Discourse-Protokollen korrelieren.

2 „Gefällt mir“

Mar 21 17:02:21 discourse-smtp-fast-rejection[1149]: Failed to GET smtp_should_reject answer from https://www.mydomain.com/admin/email/smtp_should_reject.json: 400

Könnte es mit dem Null-Absender, from=<>, zusammenhängen? Ich sehe nichts davon in den Logs. Bedeutet die 400, dass smtp_should_reject.json nicht existiert?

2 „Gefällt mir“

Wenn diese HTTP-Ressource nicht existieren würde, wäre es eine 404, keine 400. Ich glaube nicht, dass ein Null-Absender ein Problem darstellen sollte, da Bounces auf diese Weise zugestellt werden. Ein falscher API-Schlüssel sollte (ich glaube) eine 403 zurückgeben, aber ich kann das aus dem Stegreif nicht mit absoluter Sicherheit sagen, daher ist das wahrscheinlich zumindest eine Überprüfung wert, nur für den Fall. Wenn die Discourse-Protokolle keine Hinweise darauf geben, warum die Anfrage fehlerhaft war, fürchte ich, dass Sie wahrscheinlich eine schmerzhafte Debugging-Sitzung vor sich haben – ich habe derzeit kein System mit aktiviertem mail-receiver, mit dem ich leicht experimentieren könnte. Es wäre ein Beratungsauftrag für mich, herauszufinden, was vor sich geht und es für Sie zu beheben, fürchte ich.

3 „Gefällt mir“

Vorerst scheint es nichts kaputt zu machen. Ich habe Bounces mit Webhooks zum Laufen gebracht und die meisten Bounces generieren keine E-Mail (ein weiteres Thema, das diese Stackoverflow-Antwort erwähnt, was dem entspricht, was ich sehe). Und die Antwort per E-Mail funktioniert ebenfalls wie erwartet. Was auch immer der Fehler ist, er ist selten und beeinträchtigt die normale Funktion nicht.

Ich werde es im Auge behalten, falls doch etwas auftritt, und berichten, wenn ich etwas herausfinde, das für andere nützlich sein könnte. Nochmals vielen Dank für Ihre Hilfe!

2 „Gefällt mir“

@JammyDodger Könnte dies in etwas umbenannt werden, das die Suche nach „Mail-Empfänger“ ermöglicht, um es zu finden? Ich konnte dieses Thema meistens nicht finden, ohne mehrere Versuche zu unternehmen, seit vor drei Jahren „straightforward“ aus dem Titel entfernt wurde.

4 „Gefällt mir“