Send branded HTML emails and harden SMTP2GO webhooks.
Fix campaign stuck on sending under async queue, and stop UUID ValidationError when SMTP2GO tests send "Headers Unavailable".
This commit is contained in:
1 parent
617bda3e8b
commit
d830f07757
16 files changed
+558
-63
No files matched your search
@@ -3,11 +3,12 @@ from django.utils import timezone
|
||||
|
||||
from messaging.channels import dispatch_message
|
||||
from messaging.models import Message
|
||||
from messaging.services import contact_may_receive
|
||||
from messaging.services import contact_may_receive, refresh_campaign_status
|
||||
|
||||
|
||||
@task
|
||||
def send_campaign_message(message_id: str) -> None:
|
||||
campaign = None
|
||||
try:
|
||||
message = Message.objects.select_related("contact", "campaign").get(
|
||||
pk=message_id
|
||||
@@ -15,10 +16,13 @@ def send_campaign_message(message_id: str) -> None:
|
||||
except Message.DoesNotExist:
|
||||
return
|
||||
|
||||
campaign = message.campaign
|
||||
|
||||
if not contact_may_receive(message.contact, message.channel):
|
||||
message.status = Message.Status.SUPPRESSED
|
||||
message.error = "Contact opted out or suppressed"
|
||||
message.save(update_fields=["status", "error", "updated_at"])
|
||||
refresh_campaign_status(campaign)
|
||||
return
|
||||
|
||||
try:
|
||||
@@ -42,4 +46,7 @@ def send_campaign_message(message_id: str) -> None:
|
||||
message.status = Message.Status.FAILED
|
||||
message.error = str(exc)[:2000]
|
||||
message.save(update_fields=["status", "error", "updated_at"])
|
||||
refresh_campaign_status(campaign)
|
||||
raise
|
||||
|
||||
refresh_campaign_status(campaign)
|
||||
Reference in new issue
Block a user