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)
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
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)
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)
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
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)
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
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()
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()))
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()))
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)
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)