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:
@@ -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