Alexander Krotov
a2845f44ab
Turn ChatId-related functions into methods
2020-01-25 22:11:13 +00:00
Alexander Krotov
a3f2088046
Fix the message printed on job success
...
"Cannot be retried" does not make it clear if the job succeeded or failed.
2020-01-20 10:47:32 +01:00
Floris Bruynooghe
186f5553b8
Introduce a ChatId newtype
...
This doesn't try and change the way ChatId is used. It still allows
creating them with 0 and lets some function use a ChatId(0) as error
return.
2020-01-19 23:42:08 +01:00
Alexander Krotov
d8454d9da5
Deduplicate SendMdn and SendMsgToSmtp code
2020-01-20 00:35:11 +03:00
Alexander Krotov
318194a216
Rename Param::MessageId into Param::MsgId
...
MsgId refers to database ID, same as crate::message::MsgId newtype.
2020-01-20 00:35:11 +03:00
Alexander Krotov
763587ffb4
Load only one job at a time
...
As a result of job, other jobs can be added or deleted. To avoid
processing deleted jobs and to process other jobs in the correct order,
we should reload them after performing each job.
However, we don't use "LIMIT 1" in SQL queries, because we want to be
able to skip over invalid jobs, and checking if job is invalid can only
be done in Rust.
2020-01-20 00:35:11 +03:00
Alexander Krotov
11afdb51f3
Log it when MDNs are combined
2020-01-20 00:35:11 +03:00
Alexander Krotov
e4353f4650
Aggregate SendMdn jobs
2020-01-20 00:35:11 +03:00
Alexander Krotov
9d4437a7f5
Make it possible to add X-Additional-Message-IDs to MDNs
2020-01-20 00:35:11 +03:00
Alexander Krotov
93800fd834
Construct list of recipients in SendMdn
...
There is always one recipient for MDNs, so it is easier to only handle
this case.
2020-01-20 00:35:11 +03:00
Alexander Krotov
79bc34ed76
Move check for blocked contact from mimefactory to SendMdn job
2020-01-20 00:35:11 +03:00
Alexander Krotov
b40ad7e87e
Store contact ID in SendMdn job foreign_id
...
This change makes it possible to find all pending MDNs for the contact
with an SQL query.
2020-01-20 00:35:11 +03:00
Alexander Krotov
1ab3fba212
Move check for enabled MDNs from message rendering to MDN job
2020-01-20 00:35:11 +03:00
Alexander Krotov
3cd0bbc0f4
Move foreign_id handling out of mimefactory
2020-01-20 00:35:11 +03:00
Alexander Krotov
a806728e43
Make a new job type for MDN sending
...
Now MDN is generated on every try instead of being stored in a blob.
2020-01-20 00:35:11 +03:00
Alexander Krotov
683037ca69
Remove no-op jobs SendMdnOld and SendMsgToSmtpOld
2020-01-20 00:35:11 +03:00
Alexander Krotov
bd70765b7d
Join recipients_names and recipients_addr into one vector
...
This change ensures on the type level that number of names and addresses
is the same.
2020-01-10 06:42:36 +00:00
Alexander Krotov
25842894d2
Rename job::Try into job::Status
2019-12-28 14:35:14 +00:00
Alexander Krotov
83c98c2d55
Replace unstable try_trait with a job_try! macro
2019-12-28 14:35:14 +00:00
Alexander Krotov
fe2011742d
Job error handling refactoring
2019-12-28 14:35:14 +00:00
B. Petersen
f73ba895af
remove some meanwhile unneeded allow-statements
2019-12-26 16:26:06 +00:00
Alexander Krotov
e203901224
Better logging message for job deletion
...
The logging message printed for successful job completion said that the
job "cannot be retried" even when it does not need to be retried.
2019-12-24 10:47:29 +00:00
Alexander Krotov
76d03f7fd2
Log SMTP connection failure errors
2019-12-23 07:14:11 +01:00
Alexander Krotov
47be879445
fix(job): log all job events in job_perform()
2019-12-21 15:24:30 +00:00
Alexander Krotov
860f8a7906
refactor(job): refer to std:: only once
...
This change unifies how we refer to std::time::Duration across the module.
2019-12-21 15:24:30 +00:00
Alexander Krotov
5d9baa053a
refactor(job): implement Display for Job
2019-12-21 15:24:30 +00:00
Alexander Krotov
da174eae71
refactor(job): use Display to print Thread in job_perform()
2019-12-21 15:24:30 +00:00
Alexander Krotov
300fff40e3
refactor(smtp): remove unused SendTimeout Error variant
...
It was used when timeout was set on the whole smtp.send() operation.
Now only the operations inside smtp.send() can timeout, and such timeout
errors result in SendError, so SendTimeout is unused.
2019-12-21 08:57:29 +01:00
holger krekel
000479d55e
never block on interrupt_inbox_idle
2019-12-19 12:06:01 +01:00
holger krekel
61b47aa0de
try doing an smtp-send timeout
2019-12-16 18:02:50 +01:00
Alexander Krotov
697cc0a79b
Make needs_encryption a bool
2019-12-15 19:55:49 +01:00
Alexander Krotov
789fc0a7e0
Resultify set_gossiped_timestamp
2019-12-13 12:51:44 +01:00
B. Petersen
7f723ef2bf
attach selfavatar
2019-12-13 01:17:48 +01:00
holger krekel
93e8cca02f
remove redundant state from smtp
2019-12-08 23:04:08 +01:00
Alexander Krotov
a8e9a1fbe5
Make Smtp.send async
2019-12-08 21:00:03 +01:00
Alexander Krotov
54eb30f3db
Switch from lettre to async-smtp
2019-12-08 21:00:03 +01:00
Alexander Krotov
7fa94c33bf
cargo fmt
2019-12-06 10:35:02 +01:00
Alexander Krotov
30dd20dc7b
Make Imap.fetch() async
2019-12-06 10:35:02 +01:00
holger krekel
ec81d29580
fix multi-line subject encoding and introduce MIME debugging env var
2019-12-05 19:29:12 +01:00
Alexander Krotov
d950a58613
Improve documentation
2019-12-04 10:15:40 +01:00
Alexander Krotov
ad87b7c4a5
Fix clippy warnings
2019-12-03 20:20:52 +03:00
dignifiedquire
affdf7241f
fixup: remove double mimefactory
2019-12-03 12:26:27 +01:00
dignifiedquire
db88212a64
refactor: unsafe, CStr and libc moved out
2019-12-03 12:25:22 +01:00
dignifiedquire
5079e15401
restructure mimefactory
2019-12-03 12:25:22 +01:00
dignifiedquire
dbd6303829
remove mmime
2019-12-03 12:22:55 +01:00
B. Petersen
8923c9e5af
calculate image-size in device-messages
...
eg. android relies on that and fallsback to wrong aspect ratios otherwise.
also, this makes job.rs a little more readable
as some things are moved to message.rs :)
2019-12-03 00:58:04 +01:00
Alexander Krotov
7223a36a71
SMTP error refactoring
2019-12-01 18:24:26 +01:00
holger krekel
d14c6ea202
refine uid_next handling and rename and resultify configure_folder to ensure_configurer_folders
2019-11-30 23:53:35 +01:00
Alexander Krotov
14287b12ae
Resultify Smtp::send
2019-11-30 01:37:56 +01:00
Alexander Krotov
7e66af05ff
Calculate job backoff relative to the current time
...
Otherwise it is possible that desired_timestamp is in the past.
2019-11-29 00:26:25 +01:00