diff --git a/src/scheduler.rs b/src/scheduler.rs index 54be6f7bc..b8bfd7b75 100644 --- a/src/scheduler.rs +++ b/src/scheduler.rs @@ -325,6 +325,8 @@ impl Drop for IoPausedGuard { #[derive(Debug)] struct SchedBox { + /// Hostname of used chatmail/email relay + host: String, meaning: FolderMeaning, conn_state: ImapConnectionState, @@ -881,7 +883,14 @@ impl Scheduler { let ctx = ctx.clone(); task::spawn(inbox_loop(ctx, inbox_start_send, inbox_handlers)) }; + let host = configured_login_param + .addr + .split("@") + .last() + .context("address has no host")? + .to_owned(); let inbox = SchedBox { + host: host.clone(), meaning: FolderMeaning::Inbox, conn_state, handle, @@ -897,6 +906,7 @@ impl Scheduler { let meaning = FolderMeaning::Mvbox; let handle = task::spawn(simple_imap_loop(ctx, start_send, handlers, meaning)); oboxes.push(SchedBox { + host, meaning, conn_state, handle, diff --git a/src/scheduler/connectivity.rs b/src/scheduler/connectivity.rs index 169c2a44d..36b364107 100644 --- a/src/scheduler/connectivity.rs +++ b/src/scheduler/connectivity.rs @@ -373,7 +373,13 @@ impl Context { InnerSchedulerState::Started(ref sched) => ( sched .boxes() - .map(|b| (b.meaning, b.conn_state.state.connectivity.clone())) + .map(|b| { + ( + b.host.clone(), + b.meaning, + b.conn_state.state.connectivity.clone(), + ) + }) .collect::>(), sched.smtp.state.connectivity.clone(), ), @@ -396,7 +402,7 @@ impl Context { let watched_folders = get_watched_folder_configs(self).await?; let incoming_messages = stock_str::incoming_messages(self).await; ret += &format!("

{incoming_messages}