diff --git a/src/job.rs b/src/job.rs index c00059d29..defe54b89 100644 --- a/src/job.rs +++ b/src/job.rs @@ -255,9 +255,14 @@ impl Job { #[allow(non_snake_case)] fn SendMdn(&mut self, context: &Context) -> Status { + if !context.get_config_bool(Config::MdnsEnabled) { + // User has disabled MDNs after job scheduling but before + // execution. + return Status::Finished(Err(format_err!("MDNs are disabled"))); + } + let msg_id = MsgId::new(self.foreign_id); let msg = job_try!(Message::load_from_db(context, msg_id)); - let mimefactory = job_try!(MimeFactory::from_mdn(context, &msg)); let rendered_msg = job_try!(mimefactory.render()); let body = rendered_msg.message; diff --git a/src/mimefactory.rs b/src/mimefactory.rs index 90c11638c..e4bf96d4f 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -159,13 +159,6 @@ impl<'a, 'b> MimeFactory<'a, 'b> { } pub fn from_mdn(context: &'a Context, msg: &'b Message) -> Result { - // MDNs not enabled - check this is late, in the job. the - // user may have changed its choice while offline ... - ensure!( - context.get_config_bool(Config::MdnsEnabled), - "MDNs meanwhile disabled" - ); - let contact = Contact::load_from_db(context, msg.from_id)?; // Do not send MDNs trash etc.; chats.blocked is already checked by the caller