我正在尝试测试我的 Anymail(使用 Mailgun)webhook 的设置。当前使用https://ngrok.com/将 HTTPS 地址重定向到本地地址以正确处理 localhost:80 地址。
Mailgun 允许向 webhook 发送测试请求,该 webhook 指向 ngrok 提供的临时地址,例如:
https://random:random@somthing.ngrok.io/webhooks/anymail/mailgun/tracking/
在anymail-webhook之后,应用程序当前能够实际接收 webhook 调用,如日志中所示:
web | "POST /webhooks/anymail/mailgun/tracking/ HTTP/1.1" 200 0
响应码 200 表示后端正确接收到 webhook 并发送了确认。
网址在这里设置:
path('webhooks/anymail/', include('anymail.urls')),
信号接收器很简单:
from anymail.signals import tracking
from django.dispatch import receiver
@receiver(tracking)
def handle_signal(sender, event, esp_name, **kwargs):
print('[ --- ] {}'.format(event))
我希望每次 POST 都能在我的外壳中看到一些东西,/webhooks/anymail/mailgun/tracking/
但显然接收器从未接收到信号,因此不打印任何东西。
我经历了几次,我不知道我错过了什么。