Example #1
0
    def process_incoming_message(self, message, mbdir, mid):
        msg = self._process_message(message)
        msg.outgoing = False
        
        #disabled
        #msg.save()
        
        # save into eml file as well
        logger.info("Saving %s.eml" % mid)
        
        emlfile = None
        try:
            emlfile = open(r'%s\%s.eml' % (mbdir, mid), 'w')
            emlfile.write(message.as_string())
            emlfile.close()
            logger.info("Email %s.eml saved." % mid)
        except:
            e = sys.exc_info()[0]
            logger.exception(e)
            if emlfile is not None:
                emlfile.close()

        # end of my code
        
        try:
            message_received.send(sender=self, message=msg)
        except:
            pass

        return msg
    def test_signal_receipt(self, process_message):
        arbitrary_body = "OK"
        ok_message = Message.objects.create(
            mailbox=self.mailbox, subject="Whatever", from_header=self.arbitrary_email, body=arbitrary_body
        )
        message_received.send(sender=self, message=ok_message)

        process_message.assert_called_with(ok_message)
Example #3
0
    def process_incoming_message(self, message):
        """Process a message incoming to this mailbox."""
        msg = self._process_message(message)
        msg.outgoing = False
        msg.save()

        message_received.send(sender=self, message=msg)

        return msg
Example #4
0
    def process_incoming_message(self, message):
        """Process a message incoming to this mailbox."""
        msg = self._process_message(message)
        msg.outgoing = False
        msg.save()

        message_received.send(sender=self, message=msg)

        return msg
Example #5
0
 def test_receive_conversation_contribution_with_tag_by_mail(self):
     # create incoming mail with tag (#302)
     self.client.post(
             reverse('create-group-conversation', args=(self.group.pk,)),
             {'subject': 'Subject', 'text': 'Text'})
     reply_to = mail.outbox[0].extra_headers['Reply-To']
     msg = Message(
             from_header=self.gestalt.user.email,
             body='Delivered-To: {}\n\nText with #tag'.format(reply_to))
     message_received.send(self, message=msg)
Example #6
0
    def test_signal_receipt(self, process_message):
        arbitrary_body = 'OK'
        ok_message = Message.objects.create(
            mailbox=self.mailbox,
            subject='Whatever',
            from_header=self.arbitrary_email,
            body=arbitrary_body,
        )
        message_received.send(sender=self, message=ok_message)

        process_message.assert_called_with(ok_message)
Example #7
0
    def process_incoming_message(self, message):
        msg = self._process_message(message)
        msg.outgoing = False
        msg.save()

        try:
            message_received.send(sender=self, message=msg)
        except:
            pass

        return msg
Example #8
0
    def process_incoming_message(self, message):
        msg = self._process_message(message)
        msg.outgoing = False
        msg.save()

        try:
            message_received.send(sender=self, message=msg)
        except:
            pass

        return msg
Example #9
0
 def test_receive_conversation_contribution_with_tag_by_mail(self):
     # create incoming mail with tag (#302)
     self.client.post(
         reverse('create-group-conversation', args=(self.group.pk, )), {
             'subject': 'Subject',
             'text': 'Text'
         })
     reply_to = mail.outbox[0].extra_headers['Reply-To']
     msg = Message(
         from_header=self.gestalt.user.email,
         body='Delivered-To: {}\n\nText with #tag'.format(reply_to))
     message_received.send(self, message=msg)
Example #10
0
 def get_new_mail(self):
     connection = self.get_connection()
     new_mail = []
     for message in connection.get_message():
         msg = Message()
         msg.mailbox = self
         msg.subject = message['subject'][0:255]
         msg.message_id = message['message-id'][0:255]
         msg.from_address = rfc822.parseaddr(message['from'])[1][0:255]
         msg.body = message.as_string()
         msg.save()
         new_mail.append(msg)
         message_received.send(sender=self, message=msg)
     return new_mail
Example #11
0
 def test_match_with_default(self):
     """
     Tests the handle_email signal receiver.
     """
     mock_email = {
         'Message-ID': 'abc',
         'Subject': 'This is a Critical Alert'
     }
     mock_message = Mock()
     mock_message.get_email_object = Mock(return_value=mock_email)
     with patch('sifter.mailsifter.mailchutes.models.MailChuteManager.process') \
             as mock_process:
         message_received.send(sender='message_received',
                               message=mock_message)
         mock_process.assert_called_once()
Example #12
0
    def test_receive_content_contribution_with_tag_by_mail(self):
        # create incoming mail with tag (#302)
        self.client.post(
                reverse('create-group-article', args=(self.group.slug,)),
                {'title': 'Test', 'text': 'Test'})
        reply_to = mail.outbox[0].extra_headers['Reply-To']
        msg = Message(
                from_header=self.gestalt.user.email,
                body='Delivered-To: {}\n\nText with #tag'.format(reply_to))
        message_received.send(self, message=msg)

        # check, that tag page contains link to article
        r = self.client.get(reverse('tag', args=('tag',)))
        self.assertContains(r, 'href="{}"'.format(
            Association.objects.get(content__title='Test').get_absolute_url()))
Example #13
0
    def test_receive_content_contribution_with_tag_by_mail(self):
        # create incoming mail with tag (#302)
        self.client.post(
            reverse('create-group-article', args=(self.group.slug, )), {
                'title': 'Test',
                'text': 'Test'
            })
        reply_to = mail.outbox[0].extra_headers['Reply-To']
        msg = Message(
            from_header=self.gestalt.user.email,
            body='Delivered-To: {}\n\nText with #tag'.format(reply_to))
        message_received.send(self, message=msg)

        # check, that tag page contains link to article
        r = self.client.get(reverse('tag', args=('tag', )))
        self.assertContains(
            r, 'href="{}"'.format(
                Association.objects.get(
                    content__title='Test').get_absolute_url()))
Example #14
0
    def get_new_mail(self, condition=None):
        """Connect to this transport and fetch new messages."""
        new_mail = []
        msg_list = []
        connection = self.get_connection()
        if not connection:
            return
        for message in connection.get_message(condition):
            msg = self.process_incoming_message(message)
            msg_list.append(message)
            if not msg is None:
                yield msg
        self.last_polling = now()
        if django.VERSION >= (1, 5):  # Django 1.5 introduces update_fields
            self.save(update_fields=['last_polling'])
        else:
            self.save()

        for msg_ in msg_list:
            if msg_ is not None:
                msg_signal = self._process_message(msg_)
                message_received.send(sender=self, message=msg_signal)
Example #15
0
def resend_message_received_signal(message_admin, request, queryset):
    for message in queryset.all():
        logger.debug('Resending \'message_received\' signal for %s' % message)
        message_received.send(sender=message_admin, message=message)
Example #16
0
def resend_message_received_signal(message_admin, request, queryset):
    for message in queryset.all():
        logger.debug('Resending \'message_received\' signal for %s' % message)
        message_received.send(sender=message_admin, message=message)