Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 1.22 KB

performance.rst

File metadata and controls

24 lines (19 loc) · 1.22 KB

Batch send performance

If you are sending batches of hundreds of emails at a time, you can improve performance slightly by reusing a single HTTP connection to your ESP's API, rather than creating (and tearing down) a new connection for each message.

Most Anymail EmailBackends automatically reuse their HTTP connections when used with Django's batch-sending functions ~django.core.mail.send_mass_mail or connection.send_messages. See django:topics-sending-multiple-emails in the Django docs for more info and an example.

(The exception is when Anymail wraps an ESP's official Python package, and that package doesn't support connection reuse. Django's batch-sending functions will still work, but will incur the overhead of creating a separate connection for each message sent. Currently, only SparkPost has this limitation.)

If you need even more performance, you may want to consider your ESP's batch-sending features. When supported by your ESP, Anymail can send multiple messages with a single API call. See batch-send for details, and be sure to check the ESP-specific info <supported-esps> because batch sending capabilities vary significantly between ESPs.