Files
django-anymail/anymail/urls.py
Mike Edmunds c8a5e13c89 Brevo: add inbound support
(Also adds "responses" to test requirements,
for mocking fetches of Brevo inbound
attachments.)

Closes #322
2023-07-27 18:26:57 -07:00

132 lines
4.0 KiB
Python

from django.urls import path, re_path
from .webhooks.amazon_ses import (
AmazonSESInboundWebhookView,
AmazonSESTrackingWebhookView,
)
from .webhooks.mailersend import (
MailerSendInboundWebhookView,
MailerSendTrackingWebhookView,
)
from .webhooks.mailgun import MailgunInboundWebhookView, MailgunTrackingWebhookView
from .webhooks.mailjet import MailjetInboundWebhookView, MailjetTrackingWebhookView
from .webhooks.mandrill import MandrillCombinedWebhookView
from .webhooks.postal import PostalInboundWebhookView, PostalTrackingWebhookView
from .webhooks.postmark import PostmarkInboundWebhookView, PostmarkTrackingWebhookView
from .webhooks.sendgrid import SendGridInboundWebhookView, SendGridTrackingWebhookView
from .webhooks.sendinblue import (
SendinBlueInboundWebhookView,
SendinBlueTrackingWebhookView,
)
from .webhooks.sparkpost import (
SparkPostInboundWebhookView,
SparkPostTrackingWebhookView,
)
app_name = "anymail"
urlpatterns = [
path(
"amazon_ses/inbound/",
AmazonSESInboundWebhookView.as_view(),
name="amazon_ses_inbound_webhook",
),
path(
"mailersend/inbound/",
MailerSendInboundWebhookView.as_view(),
name="mailersend_inbound_webhook",
),
re_path(
# Mailgun delivers inbound messages differently based on whether
# the webhook url contains "mime" (anywhere). You can use either
# ".../mailgun/inbound/" or ".../mailgun/inbound_mime/" depending
# on the behavior you want.
r"^mailgun/inbound(_mime)?/$",
MailgunInboundWebhookView.as_view(),
name="mailgun_inbound_webhook",
),
path(
"mailjet/inbound/",
MailjetInboundWebhookView.as_view(),
name="mailjet_inbound_webhook",
),
path(
"postal/inbound/",
PostalInboundWebhookView.as_view(),
name="postal_inbound_webhook",
),
path(
"postmark/inbound/",
PostmarkInboundWebhookView.as_view(),
name="postmark_inbound_webhook",
),
path(
"sendgrid/inbound/",
SendGridInboundWebhookView.as_view(),
name="sendgrid_inbound_webhook",
),
path(
"sendinblue/inbound/",
SendinBlueInboundWebhookView.as_view(),
name="sendinblue_inbound_webhook",
),
path(
"sparkpost/inbound/",
SparkPostInboundWebhookView.as_view(),
name="sparkpost_inbound_webhook",
),
path(
"amazon_ses/tracking/",
AmazonSESTrackingWebhookView.as_view(),
name="amazon_ses_tracking_webhook",
),
path(
"mailersend/tracking/",
MailerSendTrackingWebhookView.as_view(),
name="mailersend_tracking_webhook",
),
path(
"mailgun/tracking/",
MailgunTrackingWebhookView.as_view(),
name="mailgun_tracking_webhook",
),
path(
"mailjet/tracking/",
MailjetTrackingWebhookView.as_view(),
name="mailjet_tracking_webhook",
),
path(
"postal/tracking/",
PostalTrackingWebhookView.as_view(),
name="postal_tracking_webhook",
),
path(
"postmark/tracking/",
PostmarkTrackingWebhookView.as_view(),
name="postmark_tracking_webhook",
),
path(
"sendgrid/tracking/",
SendGridTrackingWebhookView.as_view(),
name="sendgrid_tracking_webhook",
),
path(
"sendinblue/tracking/",
SendinBlueTrackingWebhookView.as_view(),
name="sendinblue_tracking_webhook",
),
path(
"sparkpost/tracking/",
SparkPostTrackingWebhookView.as_view(),
name="sparkpost_tracking_webhook",
),
# Anymail uses a combined Mandrill webhook endpoint,
# to simplify Mandrill's key-validation scheme:
path("mandrill/", MandrillCombinedWebhookView.as_view(), name="mandrill_webhook"),
# This url is maintained for backwards compatibility with earlier Anymail releases:
path(
"mandrill/tracking/",
MandrillCombinedWebhookView.as_view(),
name="mandrill_tracking_webhook",
),
]