Commit Graph

225 Commits

Author SHA1 Message Date
Hocuri
4d2c2130e8 Replace all t.ctx with t
Not sure if that's the way to go because, you know, merge conflicts, but
we could do this now.
2020-12-18 18:35:54 +01:00
Hocuri
e982549046 Next try to re-enable fetch-existing-msgs, fixing #2097 2020-12-16 13:41:14 +01:00
Hocuri
34af492afb Rename fetch_existing to fetch_existing_msgs, add comment (#2042) 2020-10-24 12:10:36 +02:00
Hocuri
6c5eaaed2c Don't peek-receipients/fetch-existing if this is a bot 2020-10-19 18:10:54 +02:00
B. Petersen
0a300da347 rename option 'Prefetch' to 'FetchExisting' and limit it to that 2020-10-16 15:28:41 +02:00
Hocuri
be88b946b6 Peek reipients, fetch existing messages
Read all of an e-mail accounts messages and extract all To/CC addresses
if the From was from our own account.
Then, fetch existing messages from the server and show them.

Also, I fixed two other things:
- just by chance my test failed because of an completely unrelated bug.
The bug: bcc_self messages were not marked as read if mvbox_move was set
to true.
- add some color to the test output (minor change)
2020-10-10 15:56:30 +03:00
B. Petersen
65f2a3b1c6 remove unused dc_empty_server() and related code
'Delete emails from server' was an experimental ad-hoc function
that was added before 'Automatically delete old messages' was introduced
to allow at least some way to cleanup.

'Delete emails from server'-UI was already removed from android/ios in june
(see https://github.com/deltachat/deltachat-android/pull/1406)
and the function never exists on desktop at all.
2020-09-07 06:38:48 +03:00
Hocuri
0fc57bdb35 Separate IMAP and SMTP configuration
Co-Authored-By: link2xt <ilabdsf@gmail.com>
Co-Authored-By: bjoern <r10s@b44t.com>
2020-08-22 21:29:39 +03:00
Alexander Krotov
0816e6d0f6 Warn if IMAP deletion is scheduled for message without UID 2020-08-22 14:46:06 +03:00
Alexander Krotov
e33f6c1c85 Schedule resync job when DeleteServerAfter option is set 2020-08-22 14:46:06 +03:00
Alexander Krotov
b4c85c534d Add a job to resync folder UIDs 2020-08-22 14:46:06 +03:00
dignifiedquire
1ae49c1fca unify events 2020-08-10 10:32:48 +02:00
bjoern
468e749651 Merge pull request #1765 from deltachat/system-mdn
Do not send read receipts for system messages
2020-07-28 17:26:43 +02:00
Alexander Krotov
dc065ccbe3 Do not send read receipts for system messages 2020-07-27 01:47:10 +03:00
bjoern
f7d6230a97 Merge pull request #1757 from deltachat/old-delete-msg-on-imap
Remove OldDeleteMsgOnImap job type
2020-07-26 23:21:55 +02:00
Alexander Krotov
dafe900d22 empty_server: use configured inbox instead of hardcoded "INBOX" 2020-07-26 23:53:56 +03:00
Alexander Krotov
a860758f8a Remove OldDeleteMsgOnImap job type 2020-07-26 19:23:47 +03:00
Alexander Krotov
b4c412ee68 Refine SMTP error handling
Permanent error 550 5.1.1 is no longer considered temporary.
Enhanced status code is checked now, so only 550 5.5.0 is an exception
for misconfigured Postfix servers.

Yandex error 554 5.7.1 was handled correctly, but only because it had
response code 554, while the comment talks about enhanced status code
5.7.1. The comments are corrected.

Failed messages are now marked as such with message::set_msg_failed.
Previously they were left in a pending state.

If info message cannot be added to the chat, the error is displayed with
error! instead of being logged with warn!.
2020-07-23 08:48:52 +03:00
Alexander Krotov
6067d40a6f cargo fmt 2020-07-16 11:55:51 +02:00
holger krekel
e07869ae95 improve debugging 2020-07-16 11:55:51 +02:00
Alexander Krotov
7bb6890f26 Send MDNs for messages deleted on the server
Now MarkseenMsgOnImap sends MDN even if it can't mark the message as
seen on the server.

To prevent multiple MDNs from being sent, MarkseenMsgOnImap is postponed
until the message is detected in a folder from which it is not going to
be moved.
2020-07-14 23:26:48 +03:00
Alexander Krotov
7d048ac419 Add autodelete timers 2020-06-29 23:04:34 +03:00
Floris Bruynooghe
9d7b756ddb Unify some testing interfaces
This tidies up our testing tools a little bit.  We had several
functions which through various changes ended up doing the same and
some more which did very similar stuff, so I merged them to have
things simpler.  Also moved towards methods on the TestContext struct
while cleaning this up anyway, seems like this structure is going to
stay around for a bit anyway.

The intersting change is in `test_utils.rs`, everything else is just
updating callers.  A few tests used example.org which I moved to
example.com to be able to re-use more configuration of the test
context.
2020-06-20 14:37:41 +02:00
Hocuri
8350729cbb Improve errors 2020-06-13 10:18:11 +02:00
dignifiedquire
944f1ec005 feat: update dependencies for new rustcrypto releases 2020-06-12 09:12:38 +02:00
dignifiedquire
4a3825c302 fix: improve imap connection establishment
- fixes blocking on start_io
- attempts to connect to the imap on all tasks when needed
2020-06-09 13:20:16 +02:00
Hocuri
05e1c00cd1 fix: update message ids correctly
Fixes #1495
2020-06-05 16:27:22 +02:00
dignifiedquire
6100a23e80 fix: avoid lock for probe_network, avoiding deadlock on startup
Closes #1532
2020-05-27 15:13:29 +02:00
dignifiedquire
0ea442ca36 feat: add chat::send_msg_sync 2020-05-23 18:56:45 +02:00
Friedel Ziegelmayer
014d2946b2 feat: use EventEmitter for events 2020-05-22 21:03:01 +02:00
dignifiedquire
82c85566dc fix securejoin cancelation 2020-05-21 15:09:32 +02:00
dignifiedquire
c89d7b5b18 fix and improve load_next job logic 2020-05-21 14:48:55 +02:00
dignifiedquire
e8e82d9760 improve error handling and fix sleeps 2020-05-21 14:35:07 +02:00
dignifiedquire
16e519430a fix(job): avoid double insertion 2020-05-20 18:38:53 +02:00
dignifiedquire
133ff4914d first pass at resolving CR 2020-05-19 17:26:22 +02:00
dignifiedquire
8a7923c974 Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-05-13 18:29:22 +02:00
Alexander Krotov
3035c8af30 Always describe the context of the displayed error 2020-05-04 16:35:42 +03:00
Alexander Krotov
46fb6a21ee job: perform no more than 20 IMAP jobs in a row
Let the thread load new messages. This may happen when user switches
the setting to delete messages on the server on and there are a lot of
messages to delete.
2020-04-25 01:43:35 +03:00
Alexander Krotov
fc03f4c87a job: generate IMAP deletion jobs dynamically
This prevents generation of a large number of jobs when IMAP deletion
setting is enabled for the first time. Writing jobs to the database
locks it for readers and may cause UI freezing, because chatlist and
messages can't be read until all jobs are written.

Note that on failure job will be written to the database, to make sure
it is postponed instead of being retried immediately.
2020-04-24 21:06:57 +03:00
Alexander Krotov
502ec2a56f job: new API for dynamic job creation
Job::new() can be used to create jobs in-memory

Job.update() is replaced with Job.save() which can create new database
entries and consumes Job to avoid the need to update job ID after saving
it to the database.
2020-04-24 21:06:57 +03:00
Alexander Krotov
66d5c3f620 job: derive PartialEq for Action
This makes it possible to compare action priorities in Rust code.
2020-04-24 21:06:57 +03:00
Hocuri
6d89638ca4 Get ChatId from Message 2020-04-13 17:43:01 +02:00
Hocuri
fdc091319b Make Clippy happy 2020-04-13 17:43:01 +02:00
Hocuri
960c8745d9 For smtp error 5.5.0, try again. For others, send info message (doesn't work) 2020-04-13 17:43:01 +02:00
Friedel Ziegelmayer
24f4cbbb27 refactor: replace failure
- failure is deprecated
- thiserror for deriving Error impl
- anyhow for highlevel error handling
2020-04-10 22:39:28 +02:00
dignifiedquire
307a3e078e Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-04-09 23:41:34 +02:00
Alexander Krotov
1934181b52 Terminate new SQL statement lines with \
This way rustfmt can change indentation. However, care should be taken
to keep a space before each \
2020-04-01 20:06:27 +03:00
Alexander Krotov
4f73812673 Prioritize message deletion over message moving
If Delta Chat goes online and gets an expired message is in the Inbox,
it should delete it instead of moving and then deleting.
2020-04-01 20:06:27 +03:00
Alexander Krotov
41f776763b Remove MarkseenMdnOnImap
MarkseenMdnOnImap stored server folder and UID which are never updated
by update_server_uid. Now hidden entries are created for MDNs, so they
should be handled as ordinary messages.
2020-04-01 20:06:27 +03:00
Alexander Krotov
65fdfac866 Remove unused dest_uid argument from Imap.mv()
It was always set to 0 because we don't know the destination UID.
2020-04-01 20:06:27 +03:00