Esempio n. 1
0
    def do_read(self, arg):
        '''Read mail by uid.'''
        try:
            args = docopt.docopt(u'\n'.join([
                u'Usage: read [options] <mail_uid> [<save_directory>]',
                u'',
                u'Options:',
                u'    -b, --browser     Open mail in browser',
            ]), arg)
        except SystemExit:
            return

        fetched_mail = fetch.read(self.imap_account, args['<mail_uid>'],
                                  save_directory=args['<save_directory>'])
        if fetched_mail is None:
            log.error("Mail was not fetched, an error occured")

        if args['--browser'] is True:
            temp_file = tempfile.NamedTemporaryFile(delete=False)
            temp_file.write(fetch.display(fetched_mail,
                                          browser=True).encode('utf-8'))

            webbrowser.open_new_tab(temp_file.name)

            temp_file.close()
        else:
            sys.stdout.write(fetch.display(fetched_mail))
Esempio n. 2
0
    def do_read(self, arg):
        '''Read mail by uid.'''
        try:
            args = docopt.docopt(
                u'\n'.join([
                    u'Usage: read [options] <mail_uid> [<save_directory>]',
                    u'',
                    u'Options:',
                    u'    -b, --browser     Open mail in browser',
                ]), arg)
        except SystemExit:
            return

        fetched_mail = fetch.read(self.imap_account,
                                  args['<mail_uid>'],
                                  save_directory=args['<save_directory>'])
        if fetched_mail is None:
            log.error("Mail was not fetched, an error occured")

        if args['--browser'] is True:
            temp_file = tempfile.NamedTemporaryFile(delete=False)
            temp_file.write(
                fetch.display(fetched_mail, browser=True).encode('utf-8'))

            webbrowser.open_new_tab(temp_file.name)

            temp_file.close()
        else:
            sys.stdout.write(fetch.display(fetched_mail))
Esempio n. 3
0
    def test_display_attachment(self):
        multipart_mail = copy.deepcopy(self.reference_mail)
        multipart_mail['parts'].append({
            u'content_type': u'img/png',
            u'data': u'xxxxxx',
            u'filename': 'IMGTEST',
        })

        assert isinstance(fetch.display(multipart_mail), six.string_types)
Esempio n. 4
0
    def test_display_attachment(self):
        multipart_mail = copy.deepcopy(self.reference_mail)
        multipart_mail['parts'].append({
            u'content_type': u'img/png',
            u'data': u'xxxxxx',
            u'filename': 'IMGTEST',
        })

        assert isinstance(fetch.display(multipart_mail), six.string_types)
Esempio n. 5
0
def read(uid):
    '''Read mail by uid.'''
    ensure_connection()
    if isinstance(uid, six.string_types):
        uid = int(uid)
    fetched_mails = list(fetch.read(imap_account, uid))
    if fetched_mails is None:
        print "VIMAP: Mail was not fetched, an error occured"
        list_dir()

    global current_mail
    reset_buffer('vimap-read')
    b = vim.current.buffer
    b[:] = None
    for fetched_mail in fetched_mails:
        current_mail = fetched_mail
        for line in fetch.display(current_mail).split('\n'):
            b.append(line.replace('\r', ''))

    vim.command("set ft=mail")
    for key, action in read_mappings:
        vim.command("nnoremap <silent> <buffer> {} {}".format(key, action))
    vim.command("normal dd")
Esempio n. 6
0
 def test_display_in_browser(self):
     assert isinstance(fetch.display(self.reference_mail, browser=True),
                       six.string_types)
Esempio n. 7
0
 def test_display(self):
     assert isinstance(fetch.display(self.reference_mail), six.string_types)
Esempio n. 8
0
 def test_display_in_browser(self):
     assert isinstance(fetch.display(self.reference_mail, browser=True),
                       six.string_types)
Esempio n. 9
0
 def test_display(self):
     assert isinstance(fetch.display(self.reference_mail), six.string_types)