我正在尝试针对Anymail(使用Mailgun)webhooks进行设置。当前使用https://ngrok.com/将HTTPS地址重定向到本地地址,以正确处理localhost:80地址。
Mailgun允许将测试请求发送到Webhook,该Webhook指向提供的临时ngrok地址,例如:
https://random:random@somthing.ngrok.io/webhooks/anymail/mailgun/tracking/
在anymail-webhooks之后,该应用当前可以实际接收到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))
我希望每次/webhooks/anymail/mailgun/tracking/
的POST都会在我的外壳中看到一些东西,但是显然接收者从未收到信号,因此什么也没打印。
我经历了几次,我不知道自己在想什么。