예제 #1
0
 def handle(self, *args, **options):
     if (settings.PROD_EMAIL.lower() == "true"
             and Mailbox.objects.filter(name="default").exists()):
         mbx = Mailbox(active=True,
                       name="default",
                       uri=settings.IMAP_URI,
                       from_email=settings.EMAIL_HOST_USER)
         mbx.save()
예제 #2
0
    def test_protocol_info(self):
        mailbox = Mailbox()
        mailbox.uri = 'alpha://test.com'

        expected_protocol = 'alpha'
        actual_protocol = mailbox._protocol_info.scheme

        self.assertEqual(
            expected_protocol,
            actual_protocol,
        )
예제 #3
0
    def handle(self, *args, **kwargs):
        if connected_to_internet() is False:
            return None
        received_registries = []
        received_data = []
        email = SYNCDATA_FETCHING_EMAIL_ID.replace('@', '%40')
        metabox = Mailbox()
        metabox.name = 'Metabox'
        metabox.uri = 'imap+ssl://' + email + ':' + SYNCDATA_FETCHING_EMAIL_ID_PASSWORD + '@' + SYNCDATA_FETCHING_IMAP_SERVER_ADDRESS + '?archive=METABOX_SYNCDATA'

        try:
            metabox.get_connection()
        except IMAP4.error as error_obj:
            print "Syncdata emailid, password or imap server address improperly configured! Please check settings.py"
            print str(error_obj)
            return 'Syncdata emailid, password or imap server address improperly configured! Please check settings.py'
        except Exception as error_obj:
            print 'Some error occured while trying to establish connection with : %s for fetching syncdata', SYNCDATA_FETCHING_EMAIL_ID
            print str(error_obj)
            return str(error_obj)

        metabox.save()
        try:
            if connected_to_internet:
                syncdata_mails_list = metabox.get_new_mail()
                if syncdata_mails_list:
                    for mail in syncdata_mails_list:
                        if mail.subject.find('SYNC') != '-1':
                            serverdir = process_mails(mail)
                        #received_registries += serverdir
                        if serverdir not in received_registries:
                            received_registries.append(serverdir)
                    result = chain_and_check_registry(received_registries)
                    print result
                    if result:
                        server_sync(result)
                        print "Data Inserted. Deleting Json Files"
                        delete(result)
                else:
                    print 'No new mails received'
            metabox.delete()
        except Exception as error:
            #delete temporary mailbox from database
            metabox.delete()
            print "The following error occured while fetching syncdata mails: "
            print str(error)
            traceback.print_exc()
예제 #4
0
 def test_last_polling_field_exists(self):
     mailbox = Mailbox()
     self.assertTrue(hasattr(mailbox, 'last_polling'))