IMAPClient 1.1.0__tar.gz → 3.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- imapclient-3.1.0/AUTHORS.rst +49 -0
- imapclient-3.1.0/IMAPClient.egg-info/PKG-INFO +56 -0
- imapclient-3.1.0/IMAPClient.egg-info/SOURCES.txt +89 -0
- imapclient-3.1.0/IMAPClient.egg-info/requires.txt +3 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/MANIFEST.in +1 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/NEWS.rst +2 -2
- imapclient-3.1.0/PKG-INFO +56 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/README.rst +66 -75
- imapclient-3.1.0/doc/html/_modules/imapclient/exceptions.html +116 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/_modules/imapclient/imapclient.html +966 -474
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/_modules/imapclient/response_types.html +63 -65
- imapclient-3.1.0/doc/html/_modules/imapclient/testable_imapclient.html +123 -0
- imapclient-3.1.0/doc/html/_modules/imapclient/tls.html +139 -0
- imapclient-3.1.0/doc/html/_modules/index.html +77 -0
- IMAPClient-1.1.0/doc/html/_sources/advanced.txt → imapclient-3.1.0/doc/html/_sources/advanced.rst.txt +43 -6
- imapclient-3.1.0/doc/html/_sources/api.rst.txt +68 -0
- IMAPClient-1.1.0/doc/html/_sources/concepts.txt → imapclient-3.1.0/doc/html/_sources/concepts.rst.txt +54 -54
- imapclient-3.1.0/doc/html/_sources/contributing.rst.txt +97 -0
- imapclient-3.1.0/doc/html/_sources/index.rst.txt +129 -0
- imapclient-3.1.0/doc/html/_sources/installation.rst.txt +30 -0
- IMAPClient-1.1.0/doc/html/_sources/releases.txt → imapclient-3.1.0/doc/html/_sources/releases.rst.txt +187 -33
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/_static/basic.css +401 -70
- imapclient-3.1.0/doc/html/_static/contents.png +0 -0
- imapclient-3.1.0/doc/html/_static/file.png +0 -0
- imapclient-3.1.0/doc/html/_static/minus.png +0 -0
- imapclient-3.1.0/doc/html/_static/navigation.png +0 -0
- imapclient-3.1.0/doc/html/_static/plus.png +0 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/_static/pygments.css +10 -1
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/_static/sphinxdoc.css +11 -6
- imapclient-3.1.0/doc/html/advanced.html +331 -0
- imapclient-3.1.0/doc/html/api.html +1196 -0
- imapclient-3.1.0/doc/html/concepts.html +318 -0
- imapclient-3.1.0/doc/html/contributing.html +210 -0
- imapclient-3.1.0/doc/html/index.html +340 -0
- imapclient-3.1.0/doc/html/installation.html +144 -0
- imapclient-3.1.0/doc/html/py-modindex.html +112 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/html/releases.html +717 -546
- imapclient-3.1.0/doc/html/search.html +96 -0
- imapclient-3.1.0/doc/src/advanced.rst +148 -0
- imapclient-3.1.0/doc/src/api.rst +68 -0
- imapclient-3.1.0/doc/src/concepts.rst +152 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/src/conf.py +52 -62
- imapclient-3.1.0/doc/src/contributing.rst +97 -0
- imapclient-3.1.0/doc/src/index.rst +130 -0
- imapclient-3.1.0/doc/src/installation.rst +30 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/doc/src/releases.rst +192 -34
- imapclient-3.1.0/imapclient/__init__.py +13 -0
- imapclient-3.1.0/imapclient/config.py +219 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/datetime_util.py +12 -15
- imapclient-3.1.0/imapclient/exceptions.py +43 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/fixed_offset.py +14 -15
- imapclient-3.1.0/imapclient/imap4.py +27 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/imap_utf7.py +32 -30
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/imapclient.py +900 -390
- imapclient-3.1.0/imapclient/interact.py +155 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/response_lexer.py +38 -36
- imapclient-3.1.0/imapclient/response_parser.py +287 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/imapclient/response_types.py +44 -22
- imapclient-3.1.0/imapclient/testable_imapclient.py +41 -0
- imapclient-3.1.0/imapclient/tls.py +45 -0
- imapclient-3.1.0/imapclient/typing_imapclient.py +4 -0
- imapclient-3.1.0/imapclient/util.py +50 -0
- imapclient-3.1.0/imapclient/version.py +24 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/interact.py +1 -2
- {IMAPClient-1.1.0/imapclient → imapclient-3.1.0}/livetest.py +470 -300
- imapclient-3.1.0/pyproject.toml +89 -0
- imapclient-3.1.0/setup.cfg +7 -0
- imapclient-3.1.0/setup.py +67 -0
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/imapclient_test.py +3 -3
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/test_auth.py +7 -9
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/test_datetime_util.py +25 -33
- imapclient-3.1.0/tests/test_enable.py +69 -0
- imapclient-3.1.0/tests/test_fixed_offset.py +70 -0
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/test_folder_status.py +24 -25
- imapclient-3.1.0/tests/test_imap_utf7.py +50 -0
- imapclient-3.1.0/tests/test_imapclient.py +1114 -0
- imapclient-3.1.0/tests/test_init.py +105 -0
- imapclient-3.1.0/tests/test_response_lexer.py +96 -0
- imapclient-3.1.0/tests/test_response_parser.py +716 -0
- imapclient-3.1.0/tests/test_search.py +164 -0
- imapclient-3.1.0/tests/test_sort.py +42 -0
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/test_starttls.py +11 -9
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/test_store.py +57 -51
- imapclient-3.1.0/tests/test_thread.py +43 -0
- imapclient-3.1.0/tests/test_util_functions.py +177 -0
- imapclient-3.1.0/tests/test_version.py +24 -0
- IMAPClient-1.1.0/AUTHORS +0 -2
- IMAPClient-1.1.0/HACKING.rst +0 -88
- IMAPClient-1.1.0/IMAPClient.egg-info/PKG-INFO +0 -38
- IMAPClient-1.1.0/IMAPClient.egg-info/SOURCES.txt +0 -95
- IMAPClient-1.1.0/IMAPClient.egg-info/requires.txt +0 -3
- IMAPClient-1.1.0/PKG-INFO +0 -38
- IMAPClient-1.1.0/THANKS +0 -96
- IMAPClient-1.1.0/doc/html/_modules/imapclient/tls.html +0 -291
- IMAPClient-1.1.0/doc/html/_modules/index.html +0 -80
- IMAPClient-1.1.0/doc/html/_sources/api.txt +0 -47
- IMAPClient-1.1.0/doc/html/_sources/contributing.txt +0 -87
- IMAPClient-1.1.0/doc/html/_sources/index.txt +0 -371
- IMAPClient-1.1.0/doc/html/_sources/quickstart.txt +0 -29
- IMAPClient-1.1.0/doc/html/_static/comment-bright.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/comment-close.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/comment.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/contents.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/down-pressed.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/down.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/file.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/minus.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/navigation.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/plus.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/up-pressed.png +0 -0
- IMAPClient-1.1.0/doc/html/_static/up.png +0 -0
- IMAPClient-1.1.0/doc/html/advanced.html +0 -269
- IMAPClient-1.1.0/doc/html/api.html +0 -899
- IMAPClient-1.1.0/doc/html/concepts.html +0 -293
- IMAPClient-1.1.0/doc/html/contributing.html +0 -195
- IMAPClient-1.1.0/doc/html/index.html +0 -1393
- IMAPClient-1.1.0/doc/html/quickstart.html +0 -136
- IMAPClient-1.1.0/doc/html/search.html +0 -93
- IMAPClient-1.1.0/doc/src/index.rst +0 -371
- IMAPClient-1.1.0/ez_setup.py +0 -391
- IMAPClient-1.1.0/imapclient/__init__.py +0 -16
- IMAPClient-1.1.0/imapclient/config.py +0 -225
- IMAPClient-1.1.0/imapclient/examples/example.py +0 -29
- IMAPClient-1.1.0/imapclient/examples/idle_example.py +0 -29
- IMAPClient-1.1.0/imapclient/examples/tls_cacert.py +0 -16
- IMAPClient-1.1.0/imapclient/examples/tls_no_checks.py +0 -23
- IMAPClient-1.1.0/imapclient/imap4.py +0 -16
- IMAPClient-1.1.0/imapclient/imaplib_ssl_fix.py +0 -54
- IMAPClient-1.1.0/imapclient/interact.py +0 -96
- IMAPClient-1.1.0/imapclient/response_parser.py +0 -239
- IMAPClient-1.1.0/imapclient/test/test_enable.py +0 -70
- IMAPClient-1.1.0/imapclient/test/test_fixed_offset.py +0 -67
- IMAPClient-1.1.0/imapclient/test/test_imap_utf7.py +0 -51
- IMAPClient-1.1.0/imapclient/test/test_imapclient.py +0 -601
- IMAPClient-1.1.0/imapclient/test/test_init.py +0 -77
- IMAPClient-1.1.0/imapclient/test/test_response_lexer.py +0 -118
- IMAPClient-1.1.0/imapclient/test/test_response_parser.py +0 -503
- IMAPClient-1.1.0/imapclient/test/test_search.py +0 -118
- IMAPClient-1.1.0/imapclient/test/test_sort.py +0 -42
- IMAPClient-1.1.0/imapclient/test/test_thread.py +0 -43
- IMAPClient-1.1.0/imapclient/test/test_util_functions.py +0 -167
- IMAPClient-1.1.0/imapclient/test/test_version.py +0 -26
- IMAPClient-1.1.0/imapclient/test/testable_imapclient.py +0 -34
- IMAPClient-1.1.0/imapclient/test/util.py +0 -32
- IMAPClient-1.1.0/imapclient/tls.py +0 -211
- IMAPClient-1.1.0/imapclient/util.py +0 -19
- IMAPClient-1.1.0/imapclient/version.py +0 -25
- IMAPClient-1.1.0/livetest.py +0 -10
- IMAPClient-1.1.0/setup.cfg +0 -16
- IMAPClient-1.1.0/setup.py +0 -116
- {IMAPClient-1.1.0 → imapclient-3.1.0}/COPYING +0 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/IMAPClient.egg-info/dependency_links.txt +0 -0
- {IMAPClient-1.1.0 → imapclient-3.1.0}/IMAPClient.egg-info/top_level.txt +0 -0
- {IMAPClient-1.1.0/imapclient/test → imapclient-3.1.0/tests}/__init__.py +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
IMAPClient was created by Menno Finlay-Smits <inbox@menno.io>. The
|
|
2
|
+
project is now maintained by Nicolas Le Manchet and Menno
|
|
3
|
+
Finlay-Smits.
|
|
4
|
+
|
|
5
|
+
Many thanks go to the following people for their help with this
|
|
6
|
+
project:
|
|
7
|
+
|
|
8
|
+
- Maxime Lorant
|
|
9
|
+
- Mathieu Agopian
|
|
10
|
+
- Chris Arndt
|
|
11
|
+
- Jp Calderone
|
|
12
|
+
- John Louis del Rosario
|
|
13
|
+
- Dave Eckhardt
|
|
14
|
+
- Eben Freeman
|
|
15
|
+
- Helder Guerreiro
|
|
16
|
+
- Mark Hammond
|
|
17
|
+
- Johannes Heckel
|
|
18
|
+
- Thomas Jost
|
|
19
|
+
- Lukasz Mierzwa
|
|
20
|
+
- Naveen Nathan
|
|
21
|
+
- Brian Neal
|
|
22
|
+
- Phil Peterson
|
|
23
|
+
- Aviv Salem
|
|
24
|
+
- Andrew Scheller
|
|
25
|
+
- Thomas Steinacher
|
|
26
|
+
- Zac Witte
|
|
27
|
+
- Hans-Peter Jansen
|
|
28
|
+
- Carson Ip
|
|
29
|
+
- Jonny Hatch
|
|
30
|
+
- Jasper Spaans
|
|
31
|
+
- Fabio Manganiello
|
|
32
|
+
- Samir M
|
|
33
|
+
- Devin Bayer
|
|
34
|
+
- Mantas Mikulėnas
|
|
35
|
+
- @zrose584
|
|
36
|
+
- Michał Górny
|
|
37
|
+
- François Deppierraz
|
|
38
|
+
- Jasper Spaans
|
|
39
|
+
- Boni Lindsley
|
|
40
|
+
- Tobias Kölling
|
|
41
|
+
- @pinoatrome
|
|
42
|
+
- Shoaib Ahmed
|
|
43
|
+
- John Villalovos
|
|
44
|
+
- Claude Paroz
|
|
45
|
+
- Stefan Wójcik
|
|
46
|
+
- Andrzej Bartosiński
|
|
47
|
+
- @axoroll7
|
|
48
|
+
- Sean Whalen
|
|
49
|
+
- Peter Wienemann
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: IMAPClient
|
|
3
|
+
Version: 3.1.0
|
|
4
|
+
Summary: Easy-to-use, Pythonic and complete IMAP client library
|
|
5
|
+
Home-page: https://github.com/mjs/imapclient/
|
|
6
|
+
Author: Menno Finlay-Smits
|
|
7
|
+
Author-email: hello@menno.io
|
|
8
|
+
Maintainer: IMAPClient Maintainers
|
|
9
|
+
Maintainer-email: imapclient@groups.io
|
|
10
|
+
License: 3-Clause BSD License
|
|
11
|
+
Keywords: imap client email mail
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Natural Language :: English
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Topic :: Communications :: Email :: Post-Office :: IMAP
|
|
20
|
+
Classifier: Topic :: Internet
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: System :: Networking
|
|
23
|
+
Requires-Python: >=3.8.0
|
|
24
|
+
License-File: COPYING
|
|
25
|
+
License-File: AUTHORS.rst
|
|
26
|
+
Provides-Extra: doc
|
|
27
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
28
|
+
Dynamic: author
|
|
29
|
+
Dynamic: author-email
|
|
30
|
+
Dynamic: classifier
|
|
31
|
+
Dynamic: description
|
|
32
|
+
Dynamic: home-page
|
|
33
|
+
Dynamic: keywords
|
|
34
|
+
Dynamic: license
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
Dynamic: maintainer
|
|
37
|
+
Dynamic: maintainer-email
|
|
38
|
+
Dynamic: provides-extra
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
Dynamic: summary
|
|
41
|
+
|
|
42
|
+
IMAPClient is an easy-to-use, Pythonic and complete IMAP client library.
|
|
43
|
+
|
|
44
|
+
Features:
|
|
45
|
+
* Arguments and return values are natural Python types.
|
|
46
|
+
* IMAP server responses are fully parsed and readily usable.
|
|
47
|
+
* IMAP unique message IDs (UIDs) are handled transparently.
|
|
48
|
+
* Internationalised mailbox names are transparently handled.
|
|
49
|
+
* Time zones are correctly handled.
|
|
50
|
+
* Convenience methods are provided for commonly used functionality.
|
|
51
|
+
* Exceptions are raised when errors occur.
|
|
52
|
+
|
|
53
|
+
Python versions 3.8 through 3.13 are officially supported.
|
|
54
|
+
|
|
55
|
+
IMAPClient includes comprehensive units tests and automated
|
|
56
|
+
functional tests that can be run against a live IMAP server.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
AUTHORS.rst
|
|
2
|
+
COPYING
|
|
3
|
+
MANIFEST.in
|
|
4
|
+
NEWS.rst
|
|
5
|
+
README.rst
|
|
6
|
+
interact.py
|
|
7
|
+
livetest.py
|
|
8
|
+
pyproject.toml
|
|
9
|
+
setup.cfg
|
|
10
|
+
setup.py
|
|
11
|
+
IMAPClient.egg-info/PKG-INFO
|
|
12
|
+
IMAPClient.egg-info/SOURCES.txt
|
|
13
|
+
IMAPClient.egg-info/dependency_links.txt
|
|
14
|
+
IMAPClient.egg-info/requires.txt
|
|
15
|
+
IMAPClient.egg-info/top_level.txt
|
|
16
|
+
doc/html/advanced.html
|
|
17
|
+
doc/html/api.html
|
|
18
|
+
doc/html/concepts.html
|
|
19
|
+
doc/html/contributing.html
|
|
20
|
+
doc/html/index.html
|
|
21
|
+
doc/html/installation.html
|
|
22
|
+
doc/html/py-modindex.html
|
|
23
|
+
doc/html/releases.html
|
|
24
|
+
doc/html/search.html
|
|
25
|
+
doc/html/_modules/index.html
|
|
26
|
+
doc/html/_modules/imapclient/exceptions.html
|
|
27
|
+
doc/html/_modules/imapclient/imapclient.html
|
|
28
|
+
doc/html/_modules/imapclient/response_types.html
|
|
29
|
+
doc/html/_modules/imapclient/testable_imapclient.html
|
|
30
|
+
doc/html/_modules/imapclient/tls.html
|
|
31
|
+
doc/html/_sources/advanced.rst.txt
|
|
32
|
+
doc/html/_sources/api.rst.txt
|
|
33
|
+
doc/html/_sources/concepts.rst.txt
|
|
34
|
+
doc/html/_sources/contributing.rst.txt
|
|
35
|
+
doc/html/_sources/index.rst.txt
|
|
36
|
+
doc/html/_sources/installation.rst.txt
|
|
37
|
+
doc/html/_sources/releases.rst.txt
|
|
38
|
+
doc/html/_static/basic.css
|
|
39
|
+
doc/html/_static/contents.png
|
|
40
|
+
doc/html/_static/file.png
|
|
41
|
+
doc/html/_static/minus.png
|
|
42
|
+
doc/html/_static/navigation.png
|
|
43
|
+
doc/html/_static/plus.png
|
|
44
|
+
doc/html/_static/pygments.css
|
|
45
|
+
doc/html/_static/sphinxdoc.css
|
|
46
|
+
doc/src/advanced.rst
|
|
47
|
+
doc/src/api.rst
|
|
48
|
+
doc/src/concepts.rst
|
|
49
|
+
doc/src/conf.py
|
|
50
|
+
doc/src/contributing.rst
|
|
51
|
+
doc/src/index.rst
|
|
52
|
+
doc/src/installation.rst
|
|
53
|
+
doc/src/releases.rst
|
|
54
|
+
imapclient/__init__.py
|
|
55
|
+
imapclient/config.py
|
|
56
|
+
imapclient/datetime_util.py
|
|
57
|
+
imapclient/exceptions.py
|
|
58
|
+
imapclient/fixed_offset.py
|
|
59
|
+
imapclient/imap4.py
|
|
60
|
+
imapclient/imap_utf7.py
|
|
61
|
+
imapclient/imapclient.py
|
|
62
|
+
imapclient/interact.py
|
|
63
|
+
imapclient/response_lexer.py
|
|
64
|
+
imapclient/response_parser.py
|
|
65
|
+
imapclient/response_types.py
|
|
66
|
+
imapclient/testable_imapclient.py
|
|
67
|
+
imapclient/tls.py
|
|
68
|
+
imapclient/typing_imapclient.py
|
|
69
|
+
imapclient/util.py
|
|
70
|
+
imapclient/version.py
|
|
71
|
+
tests/__init__.py
|
|
72
|
+
tests/imapclient_test.py
|
|
73
|
+
tests/test_auth.py
|
|
74
|
+
tests/test_datetime_util.py
|
|
75
|
+
tests/test_enable.py
|
|
76
|
+
tests/test_fixed_offset.py
|
|
77
|
+
tests/test_folder_status.py
|
|
78
|
+
tests/test_imap_utf7.py
|
|
79
|
+
tests/test_imapclient.py
|
|
80
|
+
tests/test_init.py
|
|
81
|
+
tests/test_response_lexer.py
|
|
82
|
+
tests/test_response_parser.py
|
|
83
|
+
tests/test_search.py
|
|
84
|
+
tests/test_sort.py
|
|
85
|
+
tests/test_starttls.py
|
|
86
|
+
tests/test_store.py
|
|
87
|
+
tests/test_thread.py
|
|
88
|
+
tests/test_util_functions.py
|
|
89
|
+
tests/test_version.py
|
|
@@ -2,6 +2,6 @@ IMAPClient's release history is now part of the main
|
|
|
2
2
|
documentation_. See the `release documentation`_ on `Read the Docs`_ for
|
|
3
3
|
the most up-to-date details of IMAPClient's releases.
|
|
4
4
|
|
|
5
|
-
.. _documentation:
|
|
6
|
-
.. _release documentation:
|
|
5
|
+
.. _documentation: https://imapclient.readthedocs.io/en/master/
|
|
6
|
+
.. _release documentation: https://imapclient.readthedocs.io/en/master/#release-history
|
|
7
7
|
.. _Read the Docs: http://readthedocs.org
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: IMAPClient
|
|
3
|
+
Version: 3.1.0
|
|
4
|
+
Summary: Easy-to-use, Pythonic and complete IMAP client library
|
|
5
|
+
Home-page: https://github.com/mjs/imapclient/
|
|
6
|
+
Author: Menno Finlay-Smits
|
|
7
|
+
Author-email: hello@menno.io
|
|
8
|
+
Maintainer: IMAPClient Maintainers
|
|
9
|
+
Maintainer-email: imapclient@groups.io
|
|
10
|
+
License: 3-Clause BSD License
|
|
11
|
+
Keywords: imap client email mail
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Natural Language :: English
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Topic :: Communications :: Email :: Post-Office :: IMAP
|
|
20
|
+
Classifier: Topic :: Internet
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: System :: Networking
|
|
23
|
+
Requires-Python: >=3.8.0
|
|
24
|
+
License-File: COPYING
|
|
25
|
+
License-File: AUTHORS.rst
|
|
26
|
+
Provides-Extra: doc
|
|
27
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
28
|
+
Dynamic: author
|
|
29
|
+
Dynamic: author-email
|
|
30
|
+
Dynamic: classifier
|
|
31
|
+
Dynamic: description
|
|
32
|
+
Dynamic: home-page
|
|
33
|
+
Dynamic: keywords
|
|
34
|
+
Dynamic: license
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
Dynamic: maintainer
|
|
37
|
+
Dynamic: maintainer-email
|
|
38
|
+
Dynamic: provides-extra
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
Dynamic: summary
|
|
41
|
+
|
|
42
|
+
IMAPClient is an easy-to-use, Pythonic and complete IMAP client library.
|
|
43
|
+
|
|
44
|
+
Features:
|
|
45
|
+
* Arguments and return values are natural Python types.
|
|
46
|
+
* IMAP server responses are fully parsed and readily usable.
|
|
47
|
+
* IMAP unique message IDs (UIDs) are handled transparently.
|
|
48
|
+
* Internationalised mailbox names are transparently handled.
|
|
49
|
+
* Time zones are correctly handled.
|
|
50
|
+
* Convenience methods are provided for commonly used functionality.
|
|
51
|
+
* Exceptions are raised when errors occur.
|
|
52
|
+
|
|
53
|
+
Python versions 3.8 through 3.13 are officially supported.
|
|
54
|
+
|
|
55
|
+
IMAPClient includes comprehensive units tests and automated
|
|
56
|
+
functional tests that can be run against a live IMAP server.
|
|
@@ -4,15 +4,20 @@ IMAPClient is an easy-to-use, Pythonic and complete IMAP client
|
|
|
4
4
|
library.
|
|
5
5
|
|
|
6
6
|
========================= ========================================
|
|
7
|
-
Current version
|
|
8
|
-
Supported Python versions
|
|
7
|
+
Current version 3.0.1
|
|
8
|
+
Supported Python versions 3.8 - 3.14
|
|
9
9
|
License New BSD
|
|
10
|
-
Project home
|
|
10
|
+
Project home https://github.com/mjs/imapclient/
|
|
11
11
|
PyPI https://pypi.python.org/pypi/IMAPClient
|
|
12
|
-
Documentation
|
|
13
|
-
|
|
12
|
+
Documentation https://imapclient.readthedocs.io/
|
|
13
|
+
Discussions https://github.com/mjs/imapclient/discussions
|
|
14
|
+
Test Status |build master|
|
|
14
15
|
========================= ========================================
|
|
15
16
|
|
|
17
|
+
.. |build master| image:: https://github.com/mjs/imapclient/actions/workflows/main.yml/badge.svg
|
|
18
|
+
:target: https://github.com/mjs/imapclient/actions
|
|
19
|
+
:alt: master branch
|
|
20
|
+
|
|
16
21
|
Features
|
|
17
22
|
--------
|
|
18
23
|
- Arguments and return values are natural Python types.
|
|
@@ -27,6 +32,33 @@ Features
|
|
|
27
32
|
- Convenience methods are provided for commonly used functionality.
|
|
28
33
|
- Exceptions are raised when errors occur.
|
|
29
34
|
|
|
35
|
+
Example
|
|
36
|
+
-------
|
|
37
|
+
|
|
38
|
+
.. code-block:: python
|
|
39
|
+
|
|
40
|
+
from imapclient import IMAPClient
|
|
41
|
+
|
|
42
|
+
# context manager ensures the session is cleaned up
|
|
43
|
+
with IMAPClient(host="imap.host.org") as client:
|
|
44
|
+
client.login('someone', 'secret')
|
|
45
|
+
client.select_folder('INBOX')
|
|
46
|
+
|
|
47
|
+
# search criteria are passed in a straightforward way
|
|
48
|
+
# (nesting is supported)
|
|
49
|
+
messages = client.search(['NOT', 'DELETED'])
|
|
50
|
+
|
|
51
|
+
# fetch selectors are passed as a simple list of strings.
|
|
52
|
+
response = client.fetch(messages, ['FLAGS', 'RFC822.SIZE'])
|
|
53
|
+
|
|
54
|
+
# `response` is keyed by message id and contains parsed,
|
|
55
|
+
# converted response items.
|
|
56
|
+
for message_id, data in response.items():
|
|
57
|
+
print('{id}: {size} bytes, flags={flags}'.format(
|
|
58
|
+
id=message_id,
|
|
59
|
+
size=data[b'RFC822.SIZE'],
|
|
60
|
+
flags=data[b'FLAGS']))
|
|
61
|
+
|
|
30
62
|
Why IMAPClient?
|
|
31
63
|
---------------
|
|
32
64
|
You may ask: "why create another IMAP client library for Python?
|
|
@@ -36,7 +68,7 @@ The problem with imaplib is that it's very low-level. It expects
|
|
|
36
68
|
string values where lists or tuples would be more appropriate and
|
|
37
69
|
returns server responses almost unparsed. As IMAP server responses can
|
|
38
70
|
be quite complex this means everyone using imaplib ends up writing
|
|
39
|
-
their own
|
|
71
|
+
their own fragile parsing routines.
|
|
40
72
|
|
|
41
73
|
Also, imaplib doesn't make good use of exceptions. This means you need
|
|
42
74
|
to check the return value of each call to imaplib to see if what you
|
|
@@ -47,87 +79,48 @@ point in the future.
|
|
|
47
79
|
|
|
48
80
|
Installing IMAPClient
|
|
49
81
|
---------------------
|
|
50
|
-
IMAPClient is listed on
|
|
51
|
-
via PyPI use the pip or easy_install tools::
|
|
82
|
+
IMAPClient is listed on PyPI and can be installed with pip::
|
|
52
83
|
|
|
53
84
|
pip install imapclient
|
|
54
85
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
The source distributions of all IMAPClient versions are available at
|
|
58
|
-
http://freshfoo.com/projects/IMAPClient/. Alternatively you can also
|
|
59
|
-
use the PyPI page at https://pypi.python.org/pypi/IMAPClient/.
|
|
60
|
-
|
|
61
|
-
To install from source run::
|
|
62
|
-
|
|
63
|
-
python setup.py install
|
|
64
|
-
|
|
65
|
-
The project is packaged using Distribute (mostly compatible with
|
|
66
|
-
setuptools) and all the usual setup.py installation options are
|
|
67
|
-
available. See http://packages.python.org/distribute/ for more info.
|
|
86
|
+
More installation methods are described in the documentation.
|
|
68
87
|
|
|
69
88
|
Documentation
|
|
70
89
|
-------------
|
|
71
|
-
IMAPClient's manual is available at http://imapclient.readthedocs.io/.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Sphinx is installed, the documentation can be rebuilt using::
|
|
90
|
+
IMAPClient's manual is available at http://imapclient.readthedocs.io/.
|
|
91
|
+
Release notes can be found at
|
|
92
|
+
http://imapclient.readthedocs.io/#release-history.
|
|
75
93
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
See the imapclient/examples directory for examples of how to use
|
|
79
|
-
IMAPClient. If the IMAPClient was installed from PyPI, the examples
|
|
80
|
-
subdirectory can be found under the imapclient package in the
|
|
81
|
-
installation directory.
|
|
94
|
+
See the `examples` directory in the root of project source for
|
|
95
|
+
examples of how to use IMAPClient.
|
|
82
96
|
|
|
83
97
|
Current Status
|
|
84
98
|
--------------
|
|
85
|
-
|
|
86
|
-
the existing API will change in backwards-incompatible ways. Changes
|
|
87
|
-
planned for the near future will only add extra functionality to the
|
|
88
|
-
API.
|
|
89
|
-
|
|
90
|
-
You should feel confident using IMAPClient for production
|
|
91
|
-
purposes. Any problems found will be fixed quickly once reported.
|
|
99
|
+
You should feel confident using IMAPClient for production purposes.
|
|
92
100
|
|
|
93
|
-
The project's home page is http://imapclient.freshfoo.com/ (this
|
|
94
|
-
currently redirects to the IMAPClient Github site). Details about
|
|
95
|
-
upcoming versions and planned features/fixes can be found in the issue
|
|
96
|
-
tracker on Github. The maintainer also blogs about IMAPClient
|
|
97
|
-
news. Those articles can be found `here
|
|
98
|
-
<http://freshfoo.com/tags/imapclient>`_.
|
|
99
|
-
|
|
100
|
-
Versions
|
|
101
|
-
--------
|
|
102
101
|
In order to clearly communicate version compatibility, IMAPClient
|
|
103
102
|
will strictly adhere to the `Semantic Versioning <http://semver.org>`_
|
|
104
103
|
scheme from version 1.0 onwards.
|
|
105
104
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
The mailing list is hosted at `Groups.io
|
|
113
|
-
<http://groups.io>`_. Interaction via both email and the web is
|
|
114
|
-
supported. To join the list, see the list archives or just find out
|
|
115
|
-
more, visit https://groups.io/g/imapclient. The key details of the
|
|
116
|
-
list are:
|
|
105
|
+
The project's home page is https://github.com/mjs/imapclient/ (this
|
|
106
|
+
currently redirects to the IMAPClient Github site). Details about
|
|
107
|
+
upcoming versions and planned features/fixes can be found in the issue
|
|
108
|
+
tracker on Github. The maintainers also blog about IMAPClient
|
|
109
|
+
news. Those articles can be found `here
|
|
110
|
+
<http://menno.io/tags/imapclient>`_.
|
|
117
111
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* Web archives: https://groups.io/g/imapclient/messages
|
|
112
|
+
Discussions
|
|
113
|
+
-----------
|
|
114
|
+
`Github Discussions`_ can be used to ask questions, propose changes or praise
|
|
115
|
+
the project maintainers :)
|
|
123
116
|
|
|
124
|
-
|
|
125
|
-
menno@freshfoo.com.
|
|
117
|
+
.. _`Github Discussions`: https://github.com/mjs/imapclient/discussions
|
|
126
118
|
|
|
127
119
|
Working on IMAPClient
|
|
128
120
|
---------------------
|
|
129
|
-
The
|
|
130
|
-
|
|
121
|
+
The `contributing documentation
|
|
122
|
+
<http://imapclient.rtfd.io/en/master/contributing.html>`_ contains
|
|
123
|
+
information for those interested in improving IMAPClient.
|
|
131
124
|
|
|
132
125
|
IMAP Servers
|
|
133
126
|
------------
|
|
@@ -154,16 +147,14 @@ interact module like this::
|
|
|
154
147
|
|
|
155
148
|
"Live" Tests
|
|
156
149
|
------------
|
|
157
|
-
IMAPClient includes a series of functional tests which exercise
|
|
158
|
-
it against a live IMAP account.
|
|
150
|
+
IMAPClient includes a series of live, functional tests which exercise
|
|
151
|
+
it against a live IMAP account. These are useful for ensuring
|
|
159
152
|
compatibility with a given IMAP server implementation.
|
|
160
153
|
|
|
161
|
-
The livetest functionality
|
|
162
|
-
|
|
163
|
-
python -m imapclient.livetest <livetest.ini> [ optional unittest arguments ]
|
|
154
|
+
The livetest functionality are run from the root of the project source
|
|
155
|
+
like this::
|
|
164
156
|
|
|
165
|
-
|
|
166
|
-
source distribution. Use ``livetest.py --help`` to see usage.
|
|
157
|
+
python livetest.py <livetest.ini> [ optional unittest arguments ]
|
|
167
158
|
|
|
168
159
|
The configuration file format is
|
|
169
160
|
`described in the main documentation <http://imapclient.rtfd.io/#configuration-file-format>`_.
|
|
@@ -174,7 +165,7 @@ limits its activity to a folder it creates and subfolders of that
|
|
|
174
165
|
folder. It *should* be safe to use with any IMAP account but please
|
|
175
166
|
don't run livetest against a truly important IMAP account.
|
|
176
167
|
|
|
177
|
-
Please
|
|
168
|
+
Please include the output of livetest.py with an issue if it fails
|
|
178
169
|
to run successfully against a particular IMAP server. Reports of
|
|
179
170
|
successful runs are also welcome. Please include the type and version
|
|
180
171
|
of the IMAP server, if known.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
|
|
4
|
+
<html lang="en">
|
|
5
|
+
<head>
|
|
6
|
+
<meta charset="utf-8" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>imapclient.exceptions — IMAPClient 2.3.1 documentation</title>
|
|
9
|
+
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="../../_static/sphinxdoc.css" />
|
|
11
|
+
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
|
12
|
+
<script src="../../_static/jquery.js"></script>
|
|
13
|
+
<script src="../../_static/underscore.js"></script>
|
|
14
|
+
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
|
15
|
+
<script src="../../_static/doctools.js"></script>
|
|
16
|
+
<link rel="search" title="Search" href="../../search.html" />
|
|
17
|
+
</head><body>
|
|
18
|
+
<div class="related" role="navigation" aria-label="related navigation">
|
|
19
|
+
<h3>Navigation</h3>
|
|
20
|
+
<ul>
|
|
21
|
+
<li class="right" style="margin-right: 10px">
|
|
22
|
+
<a href="../../py-modindex.html" title="Python Module Index"
|
|
23
|
+
>modules</a></li>
|
|
24
|
+
<li class="nav-item nav-item-0"><a href="../../index.html">IMAPClient 2.3.1 documentation</a> »</li>
|
|
25
|
+
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
|
26
|
+
<li class="nav-item nav-item-this"><a href="">imapclient.exceptions</a></li>
|
|
27
|
+
</ul>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="document">
|
|
31
|
+
<div class="documentwrapper">
|
|
32
|
+
<div class="bodywrapper">
|
|
33
|
+
<div class="body" role="main">
|
|
34
|
+
|
|
35
|
+
<h1>Source code for imapclient.exceptions</h1><div class="highlight"><pre>
|
|
36
|
+
<span></span><span class="kn">import</span> <span class="nn">imaplib</span>
|
|
37
|
+
|
|
38
|
+
<span class="c1"># Base class allowing to catch any IMAPClient related exceptions</span>
|
|
39
|
+
<span class="c1"># To ensure backward compatibility, we "rename" the imaplib general</span>
|
|
40
|
+
<span class="c1"># exception class, so we can catch its exceptions without having to</span>
|
|
41
|
+
<span class="c1"># deal with it in IMAPClient codebase</span>
|
|
42
|
+
<span class="n">IMAPClientError</span> <span class="o">=</span> <span class="n">imaplib</span><span class="o">.</span><span class="n">IMAP4</span><span class="o">.</span><span class="n">error</span>
|
|
43
|
+
<span class="n">IMAPClientAbortError</span> <span class="o">=</span> <span class="n">imaplib</span><span class="o">.</span><span class="n">IMAP4</span><span class="o">.</span><span class="n">abort</span>
|
|
44
|
+
<span class="n">IMAPClientReadOnlyError</span> <span class="o">=</span> <span class="n">imaplib</span><span class="o">.</span><span class="n">IMAP4</span><span class="o">.</span><span class="n">readonly</span>
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
<div class="viewcode-block" id="CapabilityError"><a class="viewcode-back" href="../../api.html#imapclient.exceptions.CapabilityError">[docs]</a><span class="k">class</span> <span class="nc">CapabilityError</span><span class="p">(</span><span class="n">IMAPClientError</span><span class="p">):</span>
|
|
48
|
+
<span class="sd">"""</span>
|
|
49
|
+
<span class="sd"> The command tried by the user needs a capability not installed</span>
|
|
50
|
+
<span class="sd"> on the IMAP server</span>
|
|
51
|
+
<span class="sd"> """</span></div>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
<div class="viewcode-block" id="LoginError"><a class="viewcode-back" href="../../api.html#imapclient.exceptions.LoginError">[docs]</a><span class="k">class</span> <span class="nc">LoginError</span><span class="p">(</span><span class="n">IMAPClientError</span><span class="p">):</span>
|
|
55
|
+
<span class="sd">"""</span>
|
|
56
|
+
<span class="sd"> A connection has been established with the server but an error</span>
|
|
57
|
+
<span class="sd"> occurred during the authentication.</span>
|
|
58
|
+
<span class="sd"> """</span></div>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<div class="viewcode-block" id="IllegalStateError"><a class="viewcode-back" href="../../api.html#imapclient.exceptions.IllegalStateError">[docs]</a><span class="k">class</span> <span class="nc">IllegalStateError</span><span class="p">(</span><span class="n">IMAPClientError</span><span class="p">):</span>
|
|
62
|
+
<span class="sd">"""</span>
|
|
63
|
+
<span class="sd"> The command tried needs a different state to be executed. This</span>
|
|
64
|
+
<span class="sd"> means the user is not logged in or the command needs a folder to</span>
|
|
65
|
+
<span class="sd"> be selected.</span>
|
|
66
|
+
<span class="sd"> """</span></div>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<div class="viewcode-block" id="InvalidCriteriaError"><a class="viewcode-back" href="../../api.html#imapclient.exceptions.InvalidCriteriaError">[docs]</a><span class="k">class</span> <span class="nc">InvalidCriteriaError</span><span class="p">(</span><span class="n">IMAPClientError</span><span class="p">):</span>
|
|
70
|
+
<span class="sd">"""</span>
|
|
71
|
+
<span class="sd"> A command using a search criteria failed, probably due to a syntax</span>
|
|
72
|
+
<span class="sd"> error in the criteria string.</span>
|
|
73
|
+
<span class="sd"> """</span></div>
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
<div class="viewcode-block" id="ProtocolError"><a class="viewcode-back" href="../../api.html#imapclient.exceptions.ProtocolError">[docs]</a><span class="k">class</span> <span class="nc">ProtocolError</span><span class="p">(</span><span class="n">IMAPClientError</span><span class="p">):</span>
|
|
77
|
+
<span class="sd">"""The server replied with a response that violates the IMAP protocol."""</span></div>
|
|
78
|
+
</pre></div>
|
|
79
|
+
|
|
80
|
+
<div class="clearer"></div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
85
|
+
<div class="sphinxsidebarwrapper">
|
|
86
|
+
<div id="searchbox" style="display: none" role="search">
|
|
87
|
+
<h3 id="searchlabel">Quick search</h3>
|
|
88
|
+
<div class="searchformwrapper">
|
|
89
|
+
<form class="search" action="../../search.html" method="get">
|
|
90
|
+
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
|
91
|
+
<input type="submit" value="Go" />
|
|
92
|
+
</form>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
<script>document.getElementById('searchbox').style.display = "block"</script>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
<div class="clearer"></div>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="related" role="navigation" aria-label="related navigation">
|
|
101
|
+
<h3>Navigation</h3>
|
|
102
|
+
<ul>
|
|
103
|
+
<li class="right" style="margin-right: 10px">
|
|
104
|
+
<a href="../../py-modindex.html" title="Python Module Index"
|
|
105
|
+
>modules</a></li>
|
|
106
|
+
<li class="nav-item nav-item-0"><a href="../../index.html">IMAPClient 2.3.1 documentation</a> »</li>
|
|
107
|
+
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
|
108
|
+
<li class="nav-item nav-item-this"><a href="">imapclient.exceptions</a></li>
|
|
109
|
+
</ul>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="footer" role="contentinfo">
|
|
112
|
+
© Copyright 2014, Menno Smits.
|
|
113
|
+
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.0.2.
|
|
114
|
+
</div>
|
|
115
|
+
</body>
|
|
116
|
+
</html>
|