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 ,
/// Set default header values for new drafts
/// Default: empty
#[ serde(default, alias = " default-header-values " ) ]
pub default_header_values : HashMap < String , String > ,
}
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-03-01 17:45:55 +02:00
default_header_values : HashMap ::default ( ) ,
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 ) ,
}