def save(self): new_message = Message() new_message.subject = self.subject new_message.hash_value = self.hash_value new_message.uid = self.uid new_message.sender = self.get_sender(self.sender) store_email = EmailMultiAlternatives(new_message.subject, self.body_plain, self.sender[1], [r[1] for r in self.recipients]) if self.body_html: store_email.attach_alternative(self.body_html, "text/html") new_message.email = store_email new_message.save() new_message.recipients = self.get_recipients(self.recipients) new_message.created = self.received new_message.sent = True new_message.save() get_or_create_contact(self.sender).emails_sent.add(new_message) for rec in self.recipients: get_or_create_contact(rec).emails_received.add(new_message)