There is a difference in the behavior of send_mail and send_mass_mail function. send_mail passes connection as a parameter to the EmailMessage constructor and send_mass_mail does not.
44 def send_mail(subject, message, from_email, recipient_list,
45 fail_silently=False, auth_user=None, auth_password=None,
57 connection = connection or get_connection(username=auth_user,
60 return EmailMessage(subject, message, from_email, recipient_list,
64 def send_mass_mail(datatuple, fail_silently=False, auth_user=None,
65 auth_password=None, connection=None):
78 connection = connection or get_connection(username=auth_user,
81 messages = [EmailMessage(subject, message, sender, recipient)
82 for subject, message, sender, recipient in datatuple]
83 return connection.send_messages(messages)
This causes troubles if email backend stores something inside the self object for the later use and expects that messages would have reference to it.