Пример #1
0
    def add_message_from_email(self, email, mail_string):
        message = FoiMessage(request=self)
        message.subject = email['subject']
        message.is_response = True
        message.sender_name = email['from'][0]
        message.sender_email = email['from'][1]
        message.sender_public_body = self.public_body
        message.timestamp = convert_to_local(*email['date'])
        message.recipient = self.secret_address
        # strip timezone, in case database can't handle it
        message.timestamp = message.timestamp.replace(tzinfo=None)
        message.plaintext = email['body']
        message.html = html2markdown(email['html'])
        message.original = mail_string
        message.save()
        self.last_message = message.timestamp
        self.save()

        for attachment in email['attachments']:
            att = FoiAttachment(belongs_to=message,
                    name=attachment.name,
                    size=attachment.size,
                    filetype=attachment.content_type)
            attachment._committed = False
            att.file = File(attachment)
            att.save()
        self.message_received.send(sender=self, message=message)
Пример #2
0
 def add_message_from_email(self, email, mail_string):
     message = FoiMessage(request=self)
     message.subject = email['subject']
     message.is_response = True
     message.sender_name = email['from'][0]
     message.sender_email = email['from'][1]
     message.sender_public_body = self.public_body
     message.timestamp = convert_to_local(*email['date'])
     message.recipient_email = self.secret_address
     message.recipient = self.user.get_profile().display_name()
     # strip timezone, in case database can't handle it
     message.timestamp = message.timestamp.replace(tzinfo=None)
     message.plaintext = email['body']
     message.html = html2markdown(email['html'])
     message.original = mail_string
     message.save()
     self.status = 'awaiting_classification'
     self.last_message = message.timestamp
     self.save()
     has_pdf = False
     for attachment in email['attachments']:
         att = FoiAttachment(belongs_to=message,
                 name=attachment.name,
                 size=attachment.size,
                 filetype=attachment.content_type)
         if att.name is None:
             att.name = _("attached_file")
         if att.name.endswith('pdf') or 'pdf' in att.filetype:
             has_pdf = True
         attachment._committed = False
         att.file = File(attachment)
         att.save()
     if (has_pdf and
             settings.FROIDE_CONFIG.get("mail_managers_on_pdf_attachment",
                 False)):
         mail_managers(_('Message contains PDF'),
                 self.get_absolute_domain_url())
     self.message_received.send(sender=self, message=message)