Browse Source

Add format_flowed option for composing e-mail

When format_flowed=true, generated text/plain attachments include the
format=flowed MIME parameter.

format_flowed is set to true by default.
tags/pre-alpha-0.4.0
Manos Pitsidianakis 3 months ago
parent
commit
094ce7ee69
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS. GPG Key ID: 73627C2F690DF710
3 changed files with 22 additions and 2 deletions
  1. +4
    -0
      meli.conf.5
  2. +12
    -1
      ui/src/components/mail/compose.rs
  3. +6
    -1
      ui/src/conf/composing.rs

+ 4
- 0
meli.conf.5 View File

@@ -227,6 +227,10 @@ command to launch editor. Can have arguments. Draft filename is given as the las
(optional) embed editor within meli
.\" default value
.Pq Em false
.It Cm format_flowed Ar boolean
(optional) set format=flowed [RFC367] in text/plain attachments.
.\" default value
.Pq Em true
.El
.Sh SHORTCUTS
Shortcuts can take the following values:


+ 12
- 1
ui/src/components/mail/compose.rs View File

@@ -1202,6 +1202,7 @@ pub fn send_draft(
use std::process::{Command, Stdio};
let mut failure = true;
let settings = &context.settings;
let format_flowed = settings.composing.format_flowed;
let parts = split_command!(settings.composing.mailer_cmd);
let (cmd, args) = (parts[0], &parts[1..]);
let mut msmtp = Command::new(cmd)
@@ -1213,8 +1214,18 @@ pub fn send_draft(
{
let stdin = msmtp.stdin.as_mut().expect("failed to open stdin");
if sign_mail.is_true() {
let mut content_type = ContentType::default();
if format_flowed {
if let ContentType::Text {
ref mut parameters, ..
} = content_type
{
parameters.push((b"format".to_vec(), b"flowed".to_vec()));
}
}

let mut body: AttachmentBuilder = Attachment::new(
Default::default(),
content_type,
Default::default(),
std::mem::replace(&mut draft.body, String::new()).into_bytes(),
)


+ 6
- 1
ui/src/conf/composing.rs View File

@@ -18,7 +18,7 @@
* You should have received a copy of the GNU General Public License
* along with meli. If not, see <http://www.gnu.org/licenses/>.
*/
use super::default_vals::{false_val, none};
use super::default_vals::{false_val, none, true_val};

/// Settings for writing and sending new e-mail
#[derive(Debug, Serialize, Deserialize, Clone)]
@@ -32,6 +32,10 @@ pub struct ComposingSettings {
/// Embed editor (for terminal interfaces) instead of forking and waiting.
#[serde(default = "false_val")]
pub embed: bool,
/// Set "format=flowed" in plain text attachments.
/// Default: true
#[serde(default = "true_val")]
pub format_flowed: bool,
}

impl Default for ComposingSettings {
@@ -40,6 +44,7 @@ impl Default for ComposingSettings {
mailer_cmd: String::new(),
editor_cmd: None,
embed: false,
format_flowed: true,
}
}
}

Loading…
Cancel
Save