diff --git a/meli.conf.5 b/meli.conf.5 index 8ab0c554..cc2f2eaf 100644 --- a/meli.conf.5 +++ b/meli.conf.5 @@ -384,6 +384,11 @@ Editor must be xterm compliant. Set format=flowed [RFC3676] in text/plain attachments. .\" default value .Pq Em true +.It Ic insert_user_agent Ar boolean +.Pq Em optional +Add meli User-Agent header in new drafts +.\" default value +.Pq Em true .It Ic default_header_values Ar hash table String[String] Default header values used when creating a new draft. .El diff --git a/melib/src/email/compose.rs b/melib/src/email/compose.rs index c156cf35..edfe5394 100644 --- a/melib/src/email/compose.rs +++ b/melib/src/email/compose.rs @@ -60,10 +60,6 @@ impl Default for Draft { crate::datetime::timestamp_to_string(crate::datetime::now(), None), ); headers.insert("Subject".into(), "".into()); - headers.insert( - "User-Agent".into(), - format!("meli {}", option_env!("CARGO_PKG_VERSION").unwrap_or("0.0")), - ); header_order.push("Date".into()); header_order.push("From".into()); header_order.push("To".into()); diff --git a/src/components/mail/compose.rs b/src/components/mail/compose.rs index 2ab9b909..a341887c 100644 --- a/src/components/mail/compose.rs +++ b/src/components/mail/compose.rs @@ -171,6 +171,12 @@ impl Composer { ret.draft.set_header(h, v.into()); } } + if *mailbox_acc_settings!(context[account_hash].composing.insert_user_agent) { + ret.draft.set_header( + "User-Agent".into(), + format!("meli {}", option_env!("CARGO_PKG_VERSION").unwrap_or("0.0")), + ); + } ret.pager .set_colors(crate::conf::value(context, "theme_default")); ret diff --git a/src/conf/composing.rs b/src/conf/composing.rs index ea1f5728..a7600fa5 100644 --- a/src/conf/composing.rs +++ b/src/conf/composing.rs @@ -45,6 +45,10 @@ pub struct ComposingSettings { /// Default: true #[serde(default = "true_val", alias = "format-flowed")] pub format_flowed: bool, + ///Set User-Agent + ///Default: empty + #[serde(default = "true_val", alias = "insert_user_agent")] + pub insert_user_agent: bool, /// Set default header values for new drafts /// Default: empty #[serde(default, alias = "default-header-values")] @@ -58,6 +62,7 @@ impl Default for ComposingSettings { editor_command: None, embed: false, format_flowed: true, + insert_user_agent: true, default_header_values: HashMap::default(), } } diff --git a/src/conf/overrides.rs b/src/conf/overrides.rs index a3aa588a..0a928261 100644 --- a/src/conf/overrides.rs +++ b/src/conf/overrides.rs @@ -221,6 +221,11 @@ pub struct ComposingSettingsOverride { #[serde(alias = "format-flowed")] #[serde(default)] pub format_flowed: Option, + #[doc = "Set User-Agent"] + #[doc = "Default: empty"] + #[serde(alias = "insert_user_agent")] + #[serde(default)] + pub insert_user_agent: Option, #[doc = " Set default header values for new drafts"] #[doc = " Default: empty"] #[serde(alias = "default-header-values")] @@ -234,6 +239,7 @@ impl Default for ComposingSettingsOverride { editor_command: None, embed: None, format_flowed: None, + insert_user_agent: None, default_header_values: None, } }