@@ -8,28 +8,30 @@ Minimalist CLI email client, written in Rust.
8
8
9
9
* [ Motivation] ( #motivation )
10
10
* [ Installation] ( #installation )
11
+ * [ Configuration] ( #configuration )
11
12
* [ Usage] ( #usage )
12
13
* [ List mailboxes] ( #list-mailboxes )
13
- * [ List emails] ( #list-emails )
14
- * [ Search emails] ( #search-emails )
15
- * [ Download email attachments] ( #download-email-attachments )
16
- * [ Read email] ( #read-email )
17
- * [ Reply email] ( #reply-email )
18
- * [ Forward email] ( #forward-email )
14
+ * [ List messages] ( #list-messages )
15
+ * [ Search messages] ( #search-messages )
16
+ * [ Download attachments] ( #download-attachments )
17
+ * [ Read a message] ( #read-a-message )
18
+ * [ Write a new message] ( #write-a-new-message )
19
+ * [ Reply to a message] ( #reply-to-a-message )
20
+ * [ Forward a message] ( #forward-a-message )
19
21
* [ License] ( https://github.com/soywod/himalaya/blob/master/LICENSE )
20
22
* [ Changelog] ( https://github.com/soywod/himalaya/blob/master/CHANGELOG.md )
21
23
* [ Credits] ( #credits )
22
24
23
25
## Motivation
24
26
25
- Bringing emails to your terminal is a pain. The mainstream TUI, (neo)mutt,
26
- takes time to configure. The default mapping is not intuitive when coming from
27
- the Vim environment. It is even scary to use at the beginning, since you are
27
+ Bringing emails to the terminal is a pain. The mainstream TUI, (neo)mutt, takes
28
+ time to configure. The default mapping is not intuitive when coming from the
29
+ Vim environment. It is even scary to use at the beginning, since you are
28
30
dealing with sensitive data!
29
31
30
32
The aim of Himalaya is to extract the email logic into a simple CLI API that
31
- can be used either directly for the terminal or from various interfaces. It
32
- gives users more flexibility.
33
+ can be used either directly from the terminal or from interfaces. It gives
34
+ users more flexibility.
33
35
34
36
## Installation
35
37
@@ -46,40 +48,40 @@ more information.*
46
48
# ~/.config/himalaya/config.toml
47
49
48
50
name = " Your full name"
49
- downloads_dir = " /abs/path/to/downloads"
51
+ downloads-dir = " /abs/path/to/downloads"
50
52
51
53
# Himalaya supports the multi-account
52
54
# Each account should be inside a TOML section
53
55
[gmail ]
54
56
default = true
55
57
email = " my.email@gmail.com"
56
58
57
- imap_host = " imap.gmail.com"
58
- imap_port = 993
59
- imap_login = " p.durant @gmail.test .com"
60
- imap_passwd_cmd = " pass show gmail"
59
+ imap-host = " imap.gmail.com"
60
+ imap-port = 993
61
+ imap-login = " test @gmail.com"
62
+ imap-passwd_cmd = " pass show gmail"
61
63
62
- smtp_host = " smtp.gmail.com"
63
- smtp_port = 487
64
- smtp_login = " p.durant @gmail.test .com"
65
- smtp_passwd_cmd = " pass show gmail"
64
+ smtp-host = " smtp.gmail.com"
65
+ smtp-port = 487
66
+ smtp-login = " test @gmail.com"
67
+ smtp-passwd_cmd = " pass show gmail"
66
68
67
69
[posteo ]
68
70
name = " Your overriden full name"
69
- downloads_dir = " /abs/path/to/overriden/downloads"
70
- email = " my.email @posteo.net"
71
+ downloads-dir = " /abs/path/to/overriden/downloads"
72
+ email = " test @posteo.net"
71
73
72
- imap_host = " posteo.de"
73
- imap_port = 993
74
- imap_login = " my.email @posteo.net"
75
- imap_passwd_cmd = " security find-internet-password -gs posteo -w"
74
+ imap-host = " posteo.de"
75
+ imap-port = 993
76
+ imap-login = " test @posteo.net"
77
+ imap-passwd_cmd = " security find-internet-password -gs posteo -w"
76
78
77
- smtp_host = " posteo.de"
78
- smtp_port = 487
79
- smtp_login = " my.email @posteo.net"
80
- smtp_passwd_cmd = " security find-internet-password -gs posteo -w"
79
+ smtp-host = " posteo.de"
80
+ smtp-port = 487
81
+ smtp-login = " test @posteo.net"
82
+ smtp-passwd_cmd = " security find-internet-password -gs posteo -w"
81
83
82
- # [other account ]
84
+ # [other accounts]
83
85
# ...
84
86
```
85
87
@@ -101,7 +103,8 @@ FLAGS:
101
103
-V, --version Prints version information
102
104
103
105
OPTIONS:
104
- -a, --account <STRING> Name of the config file to use
106
+ -a, --account <STRING> Name of the account to use
107
+ -o, --output <STRING> Format of the output to print [default: text] [possible values: text, json]
105
108
106
109
SUBCOMMANDS:
107
110
attachments Downloads all attachments from an email
@@ -111,7 +114,10 @@ SUBCOMMANDS:
111
114
mailboxes Lists all available mailboxes
112
115
read Reads text bodies of an email
113
116
reply Answers to an email
117
+ save Saves a raw message in the given mailbox
114
118
search Lists emails matching the given IMAP query
119
+ send Sends a raw message
120
+ template Generates a message template
115
121
write Writes a new email
116
122
```
117
123
@@ -120,182 +126,80 @@ information.*
120
126
121
127
### List mailboxes
122
128
123
- ![ image] ( https://user-images.githubusercontent.com/10437171/104848169-0e432000-58e4-11eb-8410-05f0404c0d99.png )
124
-
125
- ```
126
- himalaya-mailboxes
127
- Lists all available mailboxes
129
+ Shows mailboxes in a basic table.
128
130
129
- USAGE:
130
- himalaya mailboxes
131
-
132
- FLAGS:
133
- -h, --help Prints help information
134
- -V, --version Prints version information
135
- ```
131
+ ![ image] ( https://user-images.githubusercontent.com/10437171/104848169-0e432000-58e4-11eb-8410-05f0404c0d99.png )
136
132
137
133
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:mailboxes )
138
134
for more information.*
139
135
140
- ### List emails
136
+ ### List messages
141
137
142
- ![ image ] ( https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png )
138
+ Shows messages in a basic table.
143
139
144
- ```
145
- himalaya-list
146
- Lists emails sorted by arrival date
147
-
148
- USAGE:
149
- himalaya list [OPTIONS]
150
-
151
- FLAGS:
152
- -h, --help Prints help information
153
- -V, --version Prints version information
154
-
155
- OPTIONS:
156
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
157
- -p, --page <INT> Page number [default: 0]
158
- -s, --size <INT> Page size [default: 10]
159
- ```
140
+ ![ image] ( https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png )
160
141
161
142
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:list ) for
162
143
more information.*
163
144
164
- ### Search emails
165
-
166
- ![ image] ( https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png )
167
-
168
- ```
169
- himalaya-search
170
- Lists emails matching the given IMAP query
145
+ ### Search messages
171
146
172
- USAGE:
173
- himalaya search [OPTIONS] <QUERY>.. .
147
+ Shows filtered messages in a basic table. The query should follow the
148
+ [ RFC-3501 ] ( https://tools.ietf.org/html/rfc3501#section-6.4.4 ) .
174
149
175
- FLAGS:
176
- -h, --help Prints help information
177
- -V, --version Prints version information
178
-
179
- OPTIONS:
180
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
181
- -p, --page <INT> Page number [default: 0]
182
- -s, --size <INT> Page size [default: 10]
183
-
184
- ARGS:
185
- <QUERY>... IMAP query (see https://tools.ietf.org/html/rfc3501#section-6.4.4)
186
- ```
150
+ ![ image] ( https://user-images.githubusercontent.com/10437171/110698977-9d86f880-81ee-11eb-8990-0ca89c7d4640.png )
187
151
188
152
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:search ) for
189
153
more information.*
190
154
191
- ### Download email attachments
192
-
193
- ![ image] ( https://user-images.githubusercontent.com/10437171/104848278-890c3b00-58e4-11eb-9b5c-48807c04f762.png )
194
-
195
- ```
196
- himalaya-attachments
197
- Downloads all attachments from an email
198
-
199
- USAGE:
200
- himalaya attachments [OPTIONS] <UID>
201
-
202
- FLAGS:
203
- -h, --help Prints help information
204
- -V, --version Prints version information
155
+ ### Download attachments
205
156
206
- OPTIONS:
207
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
157
+ Downloads attachments in the [ ` downloads-dir ` ] ( #configuration ) .
208
158
209
- ARGS:
210
- <UID> UID of the email
211
- ```
159
+ ![ image] ( https://user-images.githubusercontent.com/10437171/104848278-890c3b00-58e4-11eb-9b5c-48807c04f762.png )
212
160
213
161
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:attachments )
214
162
for more information.*
215
163
216
- ### Read email
164
+ ### Read a message
217
165
218
- ```
219
- himalaya-read
220
- Reads text bodies of an email
166
+ Shows the text content of a message (` text/plain ` if exists, otherwise
167
+ ` text/html ` ).
221
168
222
- USAGE:
223
- himalaya read [OPTIONS] <UID>
224
-
225
- FLAGS:
226
- -h, --help Prints help information
227
- -V, --version Prints version information
228
-
229
- OPTIONS:
230
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
231
- -t, --mime-type <STRING> MIME type to use [default: plain] [possible values: plain, html]
232
-
233
- ARGS:
234
- <UID> UID of the email
235
- ```
169
+ ![ image] ( https://user-images.githubusercontent.com/10437171/110701369-5d754500-81f1-11eb-932f-94c2ca8db068.png )
236
170
237
171
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:read ) for
238
172
more information.*
239
173
240
- ### Write email
241
-
242
- ```
243
- himalaya-write
244
- Writes a new email
174
+ ### Write a new message
245
175
246
- USAGE:
247
- himalaya write
176
+ Opens your default editor (from the ` $EDITOR ` environment variable) to compose
177
+ a new message.
248
178
249
- FLAGS:
250
- -h, --help Prints help information
251
- -V, --version Prints version information
179
+ ``` bash
180
+ himalaya write
252
181
```
253
182
254
183
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:write ) for
255
184
more information.*
256
185
257
- ### Reply email
258
-
259
- ```
260
- himalaya-reply
261
- Answers to an email
186
+ ### Reply to a message
262
187
263
- USAGE:
264
- himalaya reply [FLAGS] [OPTIONS] <UID>
188
+ Opens your default editor to reply to a message.
265
189
266
- FLAGS:
267
- -h, --help Prints help information
268
- -a, --all Includs all recipients
269
- -V, --version Prints version information
270
-
271
- OPTIONS:
272
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
273
-
274
- ARGS:
275
- <UID> UID of the email
190
+ ``` bash
191
+ himalaya reply --all 5123
276
192
```
277
193
278
194
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:reply ) for
279
195
more information.*
280
196
281
- ### Forward email
197
+ ### Forward a message
282
198
283
- ```
284
- himalaya-forward
285
- Forwards an email
286
-
287
- USAGE:
288
- himalaya forward [OPTIONS] <UID>
289
-
290
- FLAGS:
291
- -h, --help Prints help information
292
- -V, --version Prints version information
199
+ Opens your default editor to forward a message.
293
200
294
- OPTIONS:
295
- -m, --mailbox <STRING> Name of the mailbox [default: INBOX]
296
-
297
- ARGS:
298
- <UID> UID of the email
201
+ ``` bash
202
+ himalaya forward 5123
299
203
```
300
204
301
205
* See [ wiki section] ( https://github.com/soywod/himalaya/wiki/Usage:forward ) for
@@ -306,5 +210,6 @@ more information.*
306
210
- [ IMAP RFC3501] ( https://tools.ietf.org/html/rfc3501 )
307
211
- [ Iris] ( https://github.com/soywod/iris.vim ) , the himalaya predecessor
308
212
- [ Neomutt] ( https://neomutt.org/ )
213
+ - [ mutt-wizard] ( https://github.com/LukeSmithxyz/mutt-wizard )
309
214
- [ Alpine] ( http://alpine.x10host.com/alpine/alpine-info/ )
310
215
- [ rust-imap] ( https://github.com/jonhoo/rust-imap )
0 commit comments