Manos Pitsidianakis
688060ceb6
conf/accounts.rs: always load Inbox
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
a049a83fe3
conf/accounts: add insert_job() method
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
99fbac3806
Remove unused variables/functions
2020-07-23 13:39:58 +03:00
Manos Pitsidianakis
0882dbbad0
melib/Collection: put all fields behind a mutex
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
fadb3634e0
melib: take MailboxHash instead of &Mailbox in fetch*()
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
9103d05617
melib: s/get/fetch in MailBackend methods
2020-07-18 12:34:13 +03:00
Manos Pitsidianakis
0d3fe288c5
sqlite3: make reindex operation async
2020-07-17 00:02:14 +03:00
Manos Pitsidianakis
5ef62a39b8
conf: Rename cache_type to search_backend
2020-07-16 23:57:00 +03:00
Manos Pitsidianakis
017a45d5cd
conf/accounts: add JobRequest::Generic
2020-07-16 22:54:50 +03:00
Manos Pitsidianakis
1f9cdb8be5
conf/accounts: update mailbox status on payload delivery
2020-07-16 18:00:53 +03:00
Manos Pitsidianakis
77dc1d74bf
Add smtp client support for sending mail in UI
...
`mailer_command` was removed, and a new setting `send_mail` was added.
Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:
[composing]
send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }
For local smtp server:
[composing]
send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
2020-07-15 15:24:01 +03:00
Manos Pitsidianakis
ddafde7b37
jobs: save handle for each Job
...
If we save the JoinHandle for each task, we can cancel it in future
commits if we have to timeout network requests.
2020-07-15 15:22:33 +03:00
Manos Pitsidianakis
9db6b07b71
Remove some needless clones and stuff (thanks to Clippy)
2020-07-13 21:36:55 +03:00
Manos Pitsidianakis
3a16dc6522
Show account online error status when offline
2020-07-08 12:10:14 +03:00
Manos Pitsidianakis
89dedbedb7
imap: launch async watch when connection comes online
...
Closes #38 Make async watch/refresh work in imap
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
b5748c247a
MailBackend: remove connect() method
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
f48343ca89
conf/accounts: add is_{async,remote} fields
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
94e0aa4fe7
MailBackend: change get() ret type to Result<_>
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
a7e177586a
Fix clippy lints
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
bbedeed3e3
More imap async fixes
2020-07-06 15:27:06 +03:00
Manos Pitsidianakis
b3876113aa
BackendOp: return future in as_bytes()
2020-07-06 15:26:39 +03:00
Manos Pitsidianakis
4721073bc3
Rename jobs1 to jobs
2020-07-06 15:26:39 +03:00
Manos Pitsidianakis
e06308fed2
MailBackend: change more methods to Futures
2020-07-06 15:26:00 +03:00
Manos Pitsidianakis
03522c0298
melib: Fixup warnings in imap_async, maildir
2020-07-06 15:25:17 +03:00
Manos Pitsidianakis
21051fa862
JobRequest: add more variants
2020-07-06 15:13:01 +03:00
Manos Pitsidianakis
ee10cdbcd5
Make get_async() return a Stream
2020-07-06 15:12:11 +03:00
Manos Pitsidianakis
a38764f490
Add somewhat-working async IMAP backend
2020-07-06 15:12:05 +03:00
Manos Pitsidianakis
4f3a98f90a
Add job executor
2020-07-06 15:07:44 +03:00
Manos Pitsidianakis
4ae7a57d45
Add save-draft command
2020-06-23 20:11:05 +03:00
Manos Pitsidianakis
bfbaf3d617
Utilize EnvelopeRemove events
...
EnvelopeRemove events were not ever used in the UI
2020-06-23 20:11:04 +03:00
Manos Pitsidianakis
efb06be09b
melib: return Result<_> from operation()
...
Envelope might have been deleted before main thread requests an
operation, which is a race condition.
2020-06-23 20:10:54 +03:00
Manos Pitsidianakis
eca1921a8a
collection: add update_flags() method
...
On NewFlags events, the threads in Collection were not being updated, so
if an envelope's seen status was toggled the thread's unseen count was
not updated, and thus not reflected in the UI even though the
envelope's new flags event was registered properly.
2020-06-23 12:27:10 +03:00
Manos Pitsidianakis
a6a30f3adb
conf/accounts.rs return Result on init()
2020-06-22 17:32:51 +03:00
Manos Pitsidianakis
1241b6073f
Clear tags before applying new ones in NewFlags
2020-06-09 15:39:01 +03:00
Manos Pitsidianakis
ca9d4fde58
Discard EnvelopeRename event if envelope is missing from Collection
2020-06-09 15:38:13 +03:00
Manos Pitsidianakis
f3d5edfe14
Add copy/move to other account operations
2020-06-08 22:11:43 +03:00
Manos Pitsidianakis
bd404e6937
Execute user shell commands with /bin/sh
...
Execute user provided command invocations $CMD such as `editor_cmd` with
`/bin/sh` as `/bin/sh -c "$CMD"
Previously, user commands were split by whitespace which must trigger
erroneous behavior if quotes are involved.
2020-05-28 21:02:49 +03:00
Manos Pitsidianakis
608ef9a946
conf: warn on invalid mailbox name conf
2020-05-19 15:00:26 +03:00
Manos Pitsidianakis
eb701695f7
Remove fnv crate
2020-05-10 21:18:56 +03:00
Manos Pitsidianakis
3ea1ce5454
errors: add source
field to MeliError
2020-05-09 14:32:30 +03:00
Manos Pitsidianakis
e9a935dbf7
melib: add search method in mail backends
2020-04-05 15:57:05 +03:00
Manos Pitsidianakis
3d7b9ff7cb
Move Query to melib
2020-04-05 15:57:05 +03:00
Manos Pitsidianakis
4c32bf450d
Add {un,}subscribe mailbox operations
...
Concerns #17
2020-03-24 21:05:06 +02:00
Manos Pitsidianakis
9ff54f236b
Add conf_override! macro
...
conf_override! wraps struct definitions and defines a secondary Override
struct that wraps each field in an Option. The macro mailbox_settings!
is used to select settings from an account & mailbox index. If a user defines an overriding setting, the macro returns the override instead of the immediately next in the hierarchy setting.
The selection is done for a specific field as follows:
if per-folder override is defined, return per-folder override
else if per-account override is defined, return per-account override
else return global setting field value.
2020-03-18 19:13:07 +02:00
Manos Pitsidianakis
a8c1016f37
Add various logic checks
2020-03-12 09:47:39 +02:00
Manos Pitsidianakis
b7175c2400
Fix compiler error in --no-default-features build
2020-03-04 22:04:57 +02:00
Manos Pitsidianakis
651dda67cf
Respect autoload mailbox setting
2020-03-02 12:06:19 +02:00
Manos Pitsidianakis
9d20fd5576
Save forked processes for reaping
2020-03-01 17:56:58 +02:00
Manos Pitsidianakis
6c76db2063
Add delete, copy actions for envelopes
2020-03-01 17:48:10 +02:00