2019-04-06 01:08:33 +03:00
/*
2019-09-27 12:48:48 +03:00
* meli - conf module
2019-04-06 01:08:33 +03:00
*
* Copyright 2019 Manos Pitsidianakis
*
* This file is part of meli .
*
* meli is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* meli is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with meli . If not , see < http ://www.gnu.org/licenses/>.
* /
2020-02-04 15:52:12 +02:00
//! Configuration for composing email.
2019-11-17 13:27:22 +02:00
use super ::default_vals ::{ false_val , none , true_val } ;
2020-03-01 17:45:55 +02:00
use std ::collections ::HashMap ;
2019-04-06 01:08:33 +03:00
2020-06-20 23:28:50 +03:00
/// Settings for writing and sending new e-mail
#[ derive(Debug, Serialize, Deserialize, Clone) ]
2020-08-03 22:53:06 +03:00
#[ serde(deny_unknown_fields) ]
2020-06-20 23:28:50 +03:00
pub struct ComposingSettings {
/// A command to pipe new emails to
/// Required
Add smtp client support for sending mail in UI
`mailer_command` was removed, and a new setting `send_mail` was added.
Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:
[composing]
send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }
For local smtp server:
[composing]
send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
2020-07-15 14:38:43 +03:00
pub send_mail : SendMail ,
2020-06-20 23:28:50 +03:00
/// Command to launch editor. Can have arguments. Draft filename is given as the last argument. If it's missing, the environment variable $EDITOR is looked up.
2020-07-08 12:09:37 +03:00
#[ serde(
default = " none " ,
alias = " editor-command " ,
alias = " editor-cmd " ,
alias = " editor_cmd "
) ]
pub editor_command : Option < String > ,
2020-06-20 23:28:50 +03:00
/// 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 " , alias = " format-flowed " ) ]
pub format_flowed : bool ,
2020-08-18 12:07:50 +03:00
///Set User-Agent
///Default: empty
#[ serde(default = " true_val " , alias = " insert_user_agent " ) ]
pub insert_user_agent : bool ,
2020-06-20 23:28:50 +03:00
/// Set default header values for new drafts
/// Default: empty
#[ serde(default, alias = " default-header-values " ) ]
pub default_header_values : HashMap < String , String > ,
2020-11-09 22:22:11 +02:00
/// Store sent mail after successful submission. This setting is meant to be disabled for
/// non-standard behaviour in gmail, which auto-saves sent mail on its own.
/// Default: true
#[ serde(default = " true_val " ) ]
pub store_sent_mail : bool ,
2021-01-08 14:56:47 +02:00
/// The attribution line appears above the quoted reply text.
/// The format specifiers for the replied address are:
/// - `%+f` — the sender's name and email address.
/// - `%+n` — the sender's name (or email address, if no name is included).
/// - `%+a` — the sender's email address.
/// The format string is passed to strftime(3) with the replied envelope's date.
/// Default: "On %a, %0e %b %Y %H:%M, %+f wrote:%n"
#[ serde(default = " none " ) ]
pub attribution_format_string : Option < String > ,
/// Whether the strftime call for the attribution string uses the POSIX locale instead of
/// the user's active locale
/// Default: true
#[ serde(default = " true_val " ) ]
pub attribution_use_posix_locale : bool ,
2020-06-20 23:28:50 +03:00
}
2019-11-05 08:35:07 +02:00
impl Default for ComposingSettings {
fn default ( ) -> Self {
ComposingSettings {
Add smtp client support for sending mail in UI
`mailer_command` was removed, and a new setting `send_mail` was added.
Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:
[composing]
send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }
For local smtp server:
[composing]
send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
2020-07-15 14:38:43 +03:00
send_mail : SendMail ::ShellCommand ( " /bin/false " . into ( ) ) ,
2020-07-08 12:09:37 +03:00
editor_command : None ,
2019-11-05 08:35:07 +02:00
embed : false ,
2019-11-17 13:27:22 +02:00
format_flowed : true ,
2020-08-18 12:07:50 +03:00
insert_user_agent : true ,
2020-03-01 17:45:55 +02:00
default_header_values : HashMap ::default ( ) ,
2020-11-09 22:22:11 +02:00
store_sent_mail : true ,
2021-01-08 14:56:47 +02:00
attribution_format_string : None ,
attribution_use_posix_locale : true ,
2019-11-05 08:35:07 +02:00
}
}
2019-04-06 01:08:33 +03:00
}
Add smtp client support for sending mail in UI
`mailer_command` was removed, and a new setting `send_mail` was added.
Its possible values are a string, consisting of a shell command to
execute, or settings to configure an smtp server connection. The
configuration I used for testing this is:
[composing]
send_mail = { hostname = "smtp.mail.tld", port = 587, auth = { type = "auto", username = "yoshi", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/msmtp/yoshi.gpg" } }, security = { type = "STARTTLS" } }
For local smtp server:
[composing]
send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
2020-07-15 14:38:43 +03:00
#[ derive(Debug, Serialize, Deserialize, Clone) ]
#[ serde(untagged) ]
pub enum SendMail {
#[ cfg(feature = " smtp " ) ]
Smtp ( melib ::smtp ::SmtpServerConf ) ,
ShellCommand ( String ) ,
}