Exceptions
- exception anymail.exceptions.AnymailUnsupportedFeature
If the email tries to use features that aren’t supported by the ESP, the send call will raise an
AnymailUnsupportedFeature
error, and the message won’t be sent. See Unsupported features.You can disable this exception (ignoring the unsupported features and sending the message anyway, without them) by setting
ANYMAIL_IGNORE_UNSUPPORTED_FEATURES
toTrue
.
- exception anymail.exceptions.AnymailRecipientsRefused
Raised when all recipients (to, cc, bcc) of a message are invalid or rejected by your ESP at send time. See Refused recipients.
You can disable this exception by setting
ANYMAIL_IGNORE_RECIPIENT_STATUS
toTrue
in your settings.py, which will cause Anymail to treat any non-AnymailAPIError
response from your ESP as a successful send.
- exception anymail.exceptions.AnymailAPIError
If the ESP’s API fails or returns an error response, the send call will raise an
AnymailAPIError
.The exception’s
status_code
andresponse
attributes may help explain what went wrong. (Tip: you may also be able to check the API log in your ESP’s dashboard. See Troubleshooting.)In production, it’s not unusual for sends to occasionally fail due to transient connectivity problems, ESP maintenance, or other operational issues. Typically these failures have a 5xx
status_code
. See Handling transient errors for suggestions on retrying these failed sends.
- exception anymail.exceptions.AnymailInvalidAddress
The send call will raise a
AnymailInvalidAddress
error if you attempt to send a message with invalidly-formatted email addresses in thefrom_email
or recipient lists.One source of this error can be using a display-name (“real name”) containing commas or parentheses. Per RFC 5322, you should use double quotes around the display-name portion of an email address:
# won't work: send_mail(from_email='Widgets, Inc. <[email protected]>', ...) # must use double quotes around display-name containing comma: send_mail(from_email='"Widgets, Inc." <[email protected]>', ...)
- exception anymail.exceptions.AnymailSerializationError
The send call will raise a
AnymailSerializationError
if there are message attributes Anymail doesn’t know how to represent to your ESP.The most common cause of this error is including values other than strings and numbers in your
merge_data
ormetadata
. (E.g., you need to formatDecimal
anddate
data to strings before setting them intomerge_data
.)See Formatting merge data for more information.