Ich habe festgestellt, dass sich eine Reihe von Websites darüber beschweren, dass kein Mailgun API-Schlüssel definiert ist, aber (zumindest die meisten) dieser Websites erhalten Antworten über den Mail-Empfänger-Container, und dieser behandelt diese Bounces, sodass der API-Schlüssel (und der entsprechende Webhook bei Mailgun) nicht erforderlich sind. Es scheint, dass die Logik in den Specs (und damit im Code) umgekehrt ist:
Der missing_mailgun_api_key_spec
zeigt dies:
context "when using Mailgun without an API key" do
let(:replies_enabled) { true }
let(:mailgun_address) { "smtp.mailgun.org" }
let(:api_key) { nil }
it do
expect(check).to have_a_problem.with_priority("low").with_message(
"The server is configured to send emails via Mailgun but you haven't provided an API key used to verify the webhook messages.",
)
end
beschwert sich, wenn wir Antworten aktiviert haben, aber in diesem Fall benötigen wir den Webhook nicht, und
context "when replies are disabled" do
let(:replies_enabled) { false }
let(:mailgun_address) { anything }
let(:api_key) { anything }
it { expect(check).to be_chill_about_it }
end
Hier verarbeiten wir keine Bounces mit dem Mail-Empfänger und sind entspannt damit.
Bin ich verwirrt oder ist das umgekehrt?
Nun, vielleicht bin ich verwirrt. Es scheint, dass der Mail-Empfänger Discourse nicht über Bounces informiert. Eine viel besuchte Website hat keine kürzlichen Bounced-Nachrichten.
Aber:
Und:
Diese Dokumentation legt nahe, dass, wenn Sie einen funktionierenden Mail-Empfänger haben, dieser dies handhaben sollte. Und Code, den ich einst in einigen meiner internen Tools geschrieben habe, die diese Webhooks eingerichtet haben, besagt: „# keine Webhooks erforderlich, wenn wir einen Mail-Empfänger haben“.