vdq.handlers
Overview
Email and SMS send handlers and Twilio webhook processing for the VDQ.
Classes
handle_bounce
Anymail tracking signal receiver. Processes ESP delivery events (delivered, bounced, rejected, failed, delayed) and transitions the matching QueueItem accordingly. Logs a warning for unknown message_id values and an error for unhandled exceptions.
Signature
handle_bounce(sender, event, esp_name, kwargs)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sender | yes | ||
| event | yes | ||
| esp_name | yes | ||
| kwargs | yes |
Source
server/vueda/vdq/handlers.py:270
send_email
Send the email for a QueueItem. Validates sender and receiver email addresses, attaches inline images and regular attachments, then sends via Anymail. Transitions the queue item to await on success, or error on permanent failure. Transient ESP errors (5xx, 408, 423, 429) raise AnymailTransientError for retry.
Signature
send_email(qi)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| qi | yes |
Source
server/vueda/vdq/handlers.py:60
timeout_queue_item
Mark a QueueItem as timed out and transition it to the timeout state.
Signature
timeout_queue_item(queue_item, timeout_hours)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| queue_item | yes | ||
| timeout_hours | yes |
Source
server/vueda/vdq/handlers.py:261
validate_email_role
Raise ValueError if role has no email address.
Signature
validate_email_role(role)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| role | yes |
Source
server/vueda/vdq/handlers.py:45
validate_sms_role
Raise ValueError if role has no cell phone number.
Signature
validate_sms_role(role)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| role | yes |
Source
server/vueda/vdq/handlers.py:50
Source
server/vueda/vdq/handlers.py