exmail-cli 0.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.
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: exmail-cli
3
+ Version: 0.1.0
4
+ Summary: Mail CLI scaffold targeting Exmail IMAP/SMTP workflows
5
+ Author: Mail CLI Contributors
6
+ License: MIT
7
+ Requires-Python: >=3.10
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: click>=8.1.0
10
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
11
+
12
+ # Mail CLI
13
+
14
+ Mail CLI - An open-source email command-line tool for managing emails from the terminal.
15
+
16
+ ## Documentation
17
+
18
+ - Chinese product standard doc: `docs/README.zh-CN.md`
19
+ - Chinese command reference: `docs/COMMANDS.zh-CN.md`
20
+ - Release guide (Chinese): `docs/RELEASING.zh-CN.md`
21
+ - Changelog: `CHANGELOG.md`
22
+ - Requirements issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+is%3Aopen+label%3Arequirement`
23
+ - Bug issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+label%3Abug`
24
+
25
+ ## Quick Start
26
+
27
+ ### Installation
28
+
29
+ Preferred installation method: `pip` direct install.
30
+
31
+ #### Option A: Install from PyPI (target release channel)
32
+
33
+ ```bash
34
+ pip install exmail-cli
35
+ ```
36
+
37
+ After publishing to PyPI, this is the recommended way for all users.
38
+ The installed CLI command remains `mailcli`.
39
+
40
+ Publishing strategy: merge to `main` does not publish; pushing a version tag like `v0.1.0` publishes to PyPI.
41
+
42
+ #### Option B: Install from local source (current development stage)
43
+
44
+ ```bash
45
+ cd ~/Downloads/mailcli
46
+ python3.13 -m venv .venv
47
+ source .venv/bin/activate
48
+ python -m pip install -U pip
49
+ pip install .
50
+ ```
51
+
52
+ Verify installation:
53
+
54
+ ```bash
55
+ mailcli --help
56
+ ```
57
+
58
+ ### Configuration
59
+
60
+ Copy the example configuration to your home directory:
61
+
62
+ ```bash
63
+ mkdir -p ~/.config/mailcli
64
+ cp config/config.example.toml ~/.config/mailcli/config.toml
65
+ ```
66
+
67
+ Edit the configuration file with your email account details:
68
+
69
+ ```toml
70
+ default_account = "exmail-main"
71
+
72
+ [accounts.exmail-main]
73
+ email = "your.name@example.com"
74
+ use_ssl = true
75
+
76
+ [accounts.exmail-main.imap]
77
+ host = "imap.exmail.qq.com"
78
+ port = 993
79
+
80
+ [accounts.exmail-main.smtp]
81
+ host = "smtp.exmail.qq.com"
82
+ port = 465
83
+
84
+ [accounts.exmail-main.auth]
85
+ raw = "your_app_password_or_token"
86
+
87
+ [quirks]
88
+ provider = "exmail"
89
+ ```
90
+
91
+ ## Usage
92
+
93
+ Detailed command guide (Chinese):
94
+
95
+ - `docs/COMMANDS.zh-CN.md`
96
+
97
+ ## Architecture
98
+
99
+ - `docs/plan/`: execution plans and milestones
100
+ - `docs/architecture/`: architecture and directory conventions
101
+ - `src/mailcli/core/`: business logic
102
+ - `src/mailcli/providers/`: provider-specific quirks (e.g., Exmail)
103
+ - `src/mailcli/infra/`: infrastructure (IMAP/SMTP, config, output)
104
+ - `tests/`: unit and integration tests
105
+
106
+ ## Development
107
+
108
+ Run tests:
109
+ ```bash
110
+ source .venv/bin/activate
111
+ python -m pytest tests/ -v
112
+
113
+ # Or use the test script
114
+ ./test.sh
115
+ ```
116
+
117
+ See [TESTING.md](docs/TESTING.md) for detailed test coverage.
118
+
119
+ ## Current Status (v0.1)
120
+
121
+ ### Completed (M1-M3)
122
+ - **M1: CLI + Config + Diagnostics**
123
+ - CLI framework with command groups
124
+ - Configuration loading (TOML)
125
+ - Error handling and output formatting (plain/json)
126
+ - IMAP/SMTP connection adapters
127
+ - Account management (list, default, diagnose)
128
+
129
+ - **M2: IMAP Operations**
130
+ - Envelope list and search
131
+ - Message read
132
+ - Attachment list and download
133
+
134
+ - **M3: SMTP Operations**
135
+ - Message send
136
+
137
+ ### Summary
138
+ - 13 Python source files (~1200 lines)
139
+ - 3 test files with 14 tests
140
+ - Full support for Exmail IMAP/SMTP workflows
141
+ - All core commands support `--output json`
142
+
143
+ ### Next Steps
144
+ - Additional provider support (Gmail, M365)
145
+ - Folder management
146
+ - Flag operations
147
+ - Message operations (write, reply, forward)
148
+ - HTML email support
149
+ - Multiple attachments
@@ -0,0 +1,138 @@
1
+ # Mail CLI
2
+
3
+ Mail CLI - An open-source email command-line tool for managing emails from the terminal.
4
+
5
+ ## Documentation
6
+
7
+ - Chinese product standard doc: `docs/README.zh-CN.md`
8
+ - Chinese command reference: `docs/COMMANDS.zh-CN.md`
9
+ - Release guide (Chinese): `docs/RELEASING.zh-CN.md`
10
+ - Changelog: `CHANGELOG.md`
11
+ - Requirements issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+is%3Aopen+label%3Arequirement`
12
+ - Bug issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+label%3Abug`
13
+
14
+ ## Quick Start
15
+
16
+ ### Installation
17
+
18
+ Preferred installation method: `pip` direct install.
19
+
20
+ #### Option A: Install from PyPI (target release channel)
21
+
22
+ ```bash
23
+ pip install exmail-cli
24
+ ```
25
+
26
+ After publishing to PyPI, this is the recommended way for all users.
27
+ The installed CLI command remains `mailcli`.
28
+
29
+ Publishing strategy: merge to `main` does not publish; pushing a version tag like `v0.1.0` publishes to PyPI.
30
+
31
+ #### Option B: Install from local source (current development stage)
32
+
33
+ ```bash
34
+ cd ~/Downloads/mailcli
35
+ python3.13 -m venv .venv
36
+ source .venv/bin/activate
37
+ python -m pip install -U pip
38
+ pip install .
39
+ ```
40
+
41
+ Verify installation:
42
+
43
+ ```bash
44
+ mailcli --help
45
+ ```
46
+
47
+ ### Configuration
48
+
49
+ Copy the example configuration to your home directory:
50
+
51
+ ```bash
52
+ mkdir -p ~/.config/mailcli
53
+ cp config/config.example.toml ~/.config/mailcli/config.toml
54
+ ```
55
+
56
+ Edit the configuration file with your email account details:
57
+
58
+ ```toml
59
+ default_account = "exmail-main"
60
+
61
+ [accounts.exmail-main]
62
+ email = "your.name@example.com"
63
+ use_ssl = true
64
+
65
+ [accounts.exmail-main.imap]
66
+ host = "imap.exmail.qq.com"
67
+ port = 993
68
+
69
+ [accounts.exmail-main.smtp]
70
+ host = "smtp.exmail.qq.com"
71
+ port = 465
72
+
73
+ [accounts.exmail-main.auth]
74
+ raw = "your_app_password_or_token"
75
+
76
+ [quirks]
77
+ provider = "exmail"
78
+ ```
79
+
80
+ ## Usage
81
+
82
+ Detailed command guide (Chinese):
83
+
84
+ - `docs/COMMANDS.zh-CN.md`
85
+
86
+ ## Architecture
87
+
88
+ - `docs/plan/`: execution plans and milestones
89
+ - `docs/architecture/`: architecture and directory conventions
90
+ - `src/mailcli/core/`: business logic
91
+ - `src/mailcli/providers/`: provider-specific quirks (e.g., Exmail)
92
+ - `src/mailcli/infra/`: infrastructure (IMAP/SMTP, config, output)
93
+ - `tests/`: unit and integration tests
94
+
95
+ ## Development
96
+
97
+ Run tests:
98
+ ```bash
99
+ source .venv/bin/activate
100
+ python -m pytest tests/ -v
101
+
102
+ # Or use the test script
103
+ ./test.sh
104
+ ```
105
+
106
+ See [TESTING.md](docs/TESTING.md) for detailed test coverage.
107
+
108
+ ## Current Status (v0.1)
109
+
110
+ ### Completed (M1-M3)
111
+ - **M1: CLI + Config + Diagnostics**
112
+ - CLI framework with command groups
113
+ - Configuration loading (TOML)
114
+ - Error handling and output formatting (plain/json)
115
+ - IMAP/SMTP connection adapters
116
+ - Account management (list, default, diagnose)
117
+
118
+ - **M2: IMAP Operations**
119
+ - Envelope list and search
120
+ - Message read
121
+ - Attachment list and download
122
+
123
+ - **M3: SMTP Operations**
124
+ - Message send
125
+
126
+ ### Summary
127
+ - 13 Python source files (~1200 lines)
128
+ - 3 test files with 14 tests
129
+ - Full support for Exmail IMAP/SMTP workflows
130
+ - All core commands support `--output json`
131
+
132
+ ### Next Steps
133
+ - Additional provider support (Gmail, M365)
134
+ - Folder management
135
+ - Flag operations
136
+ - Message operations (write, reply, forward)
137
+ - HTML email support
138
+ - Multiple attachments
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "exmail-cli"
7
+ version = "0.1.0"
8
+ description = "Mail CLI scaffold targeting Exmail IMAP/SMTP workflows"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ authors = [
13
+ { name = "Mail CLI Contributors" }
14
+ ]
15
+ dependencies = [
16
+ "click>=8.1.0",
17
+ "tomli>=2.0.0; python_version<'3.11'",
18
+ ]
19
+
20
+ [project.scripts]
21
+ mailcli = "mailcli.cli:main"
22
+
23
+ [tool.setuptools]
24
+ package-dir = {"" = "src"}
25
+
26
+ [tool.setuptools.packages.find]
27
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: exmail-cli
3
+ Version: 0.1.0
4
+ Summary: Mail CLI scaffold targeting Exmail IMAP/SMTP workflows
5
+ Author: Mail CLI Contributors
6
+ License: MIT
7
+ Requires-Python: >=3.10
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: click>=8.1.0
10
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
11
+
12
+ # Mail CLI
13
+
14
+ Mail CLI - An open-source email command-line tool for managing emails from the terminal.
15
+
16
+ ## Documentation
17
+
18
+ - Chinese product standard doc: `docs/README.zh-CN.md`
19
+ - Chinese command reference: `docs/COMMANDS.zh-CN.md`
20
+ - Release guide (Chinese): `docs/RELEASING.zh-CN.md`
21
+ - Changelog: `CHANGELOG.md`
22
+ - Requirements issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+is%3Aopen+label%3Arequirement`
23
+ - Bug issues: `https://github.com/andyWang1688/mailcli/issues?q=is%3Aissue+label%3Abug`
24
+
25
+ ## Quick Start
26
+
27
+ ### Installation
28
+
29
+ Preferred installation method: `pip` direct install.
30
+
31
+ #### Option A: Install from PyPI (target release channel)
32
+
33
+ ```bash
34
+ pip install exmail-cli
35
+ ```
36
+
37
+ After publishing to PyPI, this is the recommended way for all users.
38
+ The installed CLI command remains `mailcli`.
39
+
40
+ Publishing strategy: merge to `main` does not publish; pushing a version tag like `v0.1.0` publishes to PyPI.
41
+
42
+ #### Option B: Install from local source (current development stage)
43
+
44
+ ```bash
45
+ cd ~/Downloads/mailcli
46
+ python3.13 -m venv .venv
47
+ source .venv/bin/activate
48
+ python -m pip install -U pip
49
+ pip install .
50
+ ```
51
+
52
+ Verify installation:
53
+
54
+ ```bash
55
+ mailcli --help
56
+ ```
57
+
58
+ ### Configuration
59
+
60
+ Copy the example configuration to your home directory:
61
+
62
+ ```bash
63
+ mkdir -p ~/.config/mailcli
64
+ cp config/config.example.toml ~/.config/mailcli/config.toml
65
+ ```
66
+
67
+ Edit the configuration file with your email account details:
68
+
69
+ ```toml
70
+ default_account = "exmail-main"
71
+
72
+ [accounts.exmail-main]
73
+ email = "your.name@example.com"
74
+ use_ssl = true
75
+
76
+ [accounts.exmail-main.imap]
77
+ host = "imap.exmail.qq.com"
78
+ port = 993
79
+
80
+ [accounts.exmail-main.smtp]
81
+ host = "smtp.exmail.qq.com"
82
+ port = 465
83
+
84
+ [accounts.exmail-main.auth]
85
+ raw = "your_app_password_or_token"
86
+
87
+ [quirks]
88
+ provider = "exmail"
89
+ ```
90
+
91
+ ## Usage
92
+
93
+ Detailed command guide (Chinese):
94
+
95
+ - `docs/COMMANDS.zh-CN.md`
96
+
97
+ ## Architecture
98
+
99
+ - `docs/plan/`: execution plans and milestones
100
+ - `docs/architecture/`: architecture and directory conventions
101
+ - `src/mailcli/core/`: business logic
102
+ - `src/mailcli/providers/`: provider-specific quirks (e.g., Exmail)
103
+ - `src/mailcli/infra/`: infrastructure (IMAP/SMTP, config, output)
104
+ - `tests/`: unit and integration tests
105
+
106
+ ## Development
107
+
108
+ Run tests:
109
+ ```bash
110
+ source .venv/bin/activate
111
+ python -m pytest tests/ -v
112
+
113
+ # Or use the test script
114
+ ./test.sh
115
+ ```
116
+
117
+ See [TESTING.md](docs/TESTING.md) for detailed test coverage.
118
+
119
+ ## Current Status (v0.1)
120
+
121
+ ### Completed (M1-M3)
122
+ - **M1: CLI + Config + Diagnostics**
123
+ - CLI framework with command groups
124
+ - Configuration loading (TOML)
125
+ - Error handling and output formatting (plain/json)
126
+ - IMAP/SMTP connection adapters
127
+ - Account management (list, default, diagnose)
128
+
129
+ - **M2: IMAP Operations**
130
+ - Envelope list and search
131
+ - Message read
132
+ - Attachment list and download
133
+
134
+ - **M3: SMTP Operations**
135
+ - Message send
136
+
137
+ ### Summary
138
+ - 13 Python source files (~1200 lines)
139
+ - 3 test files with 14 tests
140
+ - Full support for Exmail IMAP/SMTP workflows
141
+ - All core commands support `--output json`
142
+
143
+ ### Next Steps
144
+ - Additional provider support (Gmail, M365)
145
+ - Folder management
146
+ - Flag operations
147
+ - Message operations (write, reply, forward)
148
+ - HTML email support
149
+ - Multiple attachments
@@ -0,0 +1,26 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/exmail_cli.egg-info/PKG-INFO
4
+ src/exmail_cli.egg-info/SOURCES.txt
5
+ src/exmail_cli.egg-info/dependency_links.txt
6
+ src/exmail_cli.egg-info/entry_points.txt
7
+ src/exmail_cli.egg-info/requires.txt
8
+ src/exmail_cli.egg-info/top_level.txt
9
+ src/mailcli/__init__.py
10
+ src/mailcli/__main__.py
11
+ src/mailcli/cli.py
12
+ src/mailcli/core/__init__.py
13
+ src/mailcli/core/account.py
14
+ src/mailcli/core/attachment.py
15
+ src/mailcli/core/envelope.py
16
+ src/mailcli/core/folder.py
17
+ src/mailcli/core/message.py
18
+ src/mailcli/infra/__init__.py
19
+ src/mailcli/infra/config.py
20
+ src/mailcli/infra/connections.py
21
+ src/mailcli/infra/error_formatter.py
22
+ src/mailcli/infra/errors.py
23
+ src/mailcli/infra/output.py
24
+ tests/test_config.py
25
+ tests/test_core.py
26
+ tests/test_imap.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mailcli = mailcli.cli:main
@@ -0,0 +1,4 @@
1
+ click>=8.1.0
2
+
3
+ [:python_version < "3.11"]
4
+ tomli>=2.0.0
@@ -0,0 +1 @@
1
+ mailcli
@@ -0,0 +1 @@
1
+ """Mail CLI package scaffold."""
@@ -0,0 +1,5 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ main()