Django's built-in send_mass_mail is nice, but it's lacking two features which would make it even nicer (especially for folks who manage newsletters or other types of mailing lists):
- It can't handle multipart messages, which rules out sending HTML and plain-text versions of the same message.
- It doesn't do anything to hide the email addresses of the recipients, which is a no-no for newsletters.
So here's a proposal:
- Have send_mass_mail look at the message part of each datatuple; if the message is a list or tuple, send multipart with the first element being the plain-text and the second being the HTML.
- Add a new optional keyword argument -- suppress_recipients -- which defaults to False (for backwards compatibility) but, if True, uses only the 'first' address in recipient_list in the To: field (so the first supplied address can be a mailing-list address or other screen) and the rest will go into the Bcc: field.