Did you test sending this through a queue or at least calling it locally with delay()? Objects need to be pickeable to be passed through the broker to celery workers, and I want to be sure the send_email method will work as intended.