pub enum Config {
Show 90 variants
Addr,
MailServer,
MailUser,
MailPw,
MailPort,
MailSecurity,
ImapCertificateChecks,
SendServer,
SendUser,
SendPw,
SendPort,
SendSecurity,
SmtpCertificateChecks,
ServerFlags,
ProxyEnabled,
ProxyUrl,
Socks5Enabled,
Socks5Host,
Socks5Port,
Socks5User,
Socks5Password,
Displayname,
Selfstatus,
Selfavatar,
BccSelf,
E2eeEnabled,
MdnsEnabled,
SentboxWatch,
MvboxMove,
OnlyFetchMvbox,
ShowEmails,
MediaQuality,
FetchExistingMsgs,
FetchedExistingMsgs,
KeyGenType,
DeleteServerAfter,
DeleteDeviceAfter,
DeleteToTrash,
SaveMimeHeaders,
ConfiguredAddr,
ConfiguredImapServers,
ConfiguredMailServer,
ConfiguredMailPort,
ConfiguredMailSecurity,
ConfiguredMailUser,
ConfiguredMailPw,
ConfiguredImapCertificateChecks,
ConfiguredSmtpServers,
ConfiguredSendServer,
ConfiguredSendPort,
ConfiguredSendSecurity,
ConfiguredSendUser,
ConfiguredSendPw,
ConfiguredSmtpCertificateChecks,
ConfiguredServerFlags,
ConfiguredInboxFolder,
ConfiguredMvboxFolder,
ConfiguredSentboxFolder,
ConfiguredTrashFolder,
ConfiguredTimestamp,
ConfiguredProvider,
Configured,
IsChatmail,
FixIsChatmail,
IsMuted,
SecondaryAddrs,
SysVersion,
SysMsgsizeMaxRecommended,
SysConfigKeys,
Bot,
SkipStartMessages,
NotifyAboutWrongPw,
QuotaExceeding,
WebrtcInstance,
LastHousekeeping,
LastCantDecryptOutgoingMsgs,
ScanAllFoldersDebounceSecs,
DisableIdle,
DownloadLimit,
SyncMsgs,
AuthservIdCandidates,
SignUnencrypted,
DebugLogging,
LastMsgId,
GossipPeriod,
VerifiedOneOnOneChats,
KeyId,
SelfReportingId,
WebxdcIntegration,
WebxdcRealtimeEnabled,
}
Expand description
The available configuration keys.
Variants§
Addr
Email address, used in the From:
field.
MailServer
IMAP server hostname.
MailUser
IMAP server username.
MailPw
IMAP server password.
MailPort
IMAP server port.
MailSecurity
IMAP server security (e.g. TLS, STARTTLS).
ImapCertificateChecks
How to check TLS certificates.
“IMAP” in the name is for compatibility, this actually applies to both IMAP and SMTP connections.
SendServer
SMTP server hostname.
SendUser
SMTP server username.
SendPw
SMTP server password.
SendPort
SMTP server port.
SendSecurity
SMTP server security (e.g. TLS, STARTTLS).
SmtpCertificateChecks
Deprecated option for backwards compatibilty.
Certificate checks for SMTP are actually controlled by imap_certificate_checks
config.
ServerFlags
Whether to use OAuth 2.
Historically contained other bitflags, which are now deprecated. Should not be extended in the future, create new config keys instead.
ProxyEnabled
True if proxy is enabled.
Can be used to disable proxy without erasing known URLs.
ProxyUrl
Proxy URL.
Supported URLs schemes are http://
(HTTP), https://
(HTTPS),
socks5://
(SOCKS5) and ss://
(Shadowsocks).
May contain multiple URLs separated by newline, in which case the first one is used.
Socks5Enabled
True if SOCKS5 is enabled.
Can be used to disable SOCKS5 without erasing SOCKS5 configuration.
Deprecated in favor of ProxyEnabled
.
Socks5Host
SOCKS5 proxy server hostname or address.
Deprecated in favor of ProxyUrl
.
Socks5Port
SOCKS5 proxy server port.
Deprecated in favor of ProxyUrl
.
Socks5User
SOCKS5 proxy server username.
Deprecated in favor of ProxyUrl
.
Socks5Password
SOCKS5 proxy server password.
Deprecated in favor of ProxyUrl
.
Displayname
Own name to use in the From:
field when sending messages.
Selfstatus
Own status to display, sent in message footer.
Selfavatar
Own avatar filename.
BccSelf
Send BCC copy to self.
Should be enabled for multidevice setups.
E2eeEnabled
True if encryption is preferred according to Autocrypt standard.
MdnsEnabled
True if Message Delivery Notifications (read receipts) should be sent and requested.
SentboxWatch
True if “Sent” folder should be watched for changes.
MvboxMove
True if chat messages should be moved to a separate folder. Auto-sent messages like sync ones are moved there anyway.
OnlyFetchMvbox
Watch for new messages in the “Mvbox” (aka DeltaChat folder) only.
This will not entirely disable other folders, e.g. the spam folder will also still be watched for new messages.
ShowEmails
Whether to show classic emails or only chat messages.
MediaQuality
Quality of the media files to send.
FetchExistingMsgs
If set to “1”, on the first time start_io()
is called after configuring,
the newest existing messages are fetched.
Existing recipients are added to the contact database regardless of this setting.
FetchedExistingMsgs
If set to “1”, then existing messages are considered to be already fetched. This flag is reset after successful configuration.
KeyGenType
Type of the OpenPGP key to generate.
DeleteServerAfter
Timer in seconds after which the message is deleted from the server.
0 means messages are never deleted by Delta Chat.
Value 1 is treated as “delete at once”: messages are deleted immediately, without moving to DeltaChat folder.
Default is 1 for chatmail accounts before a backup export, 0 otherwise.
DeleteDeviceAfter
Timer in seconds after which the message is deleted from the device.
Equals to 0 by default, which means the message is never deleted.
DeleteToTrash
Move messages to the Trash folder instead of marking them “\Deleted”. Overrides
ProviderOptions::delete_to_trash
.
SaveMimeHeaders
Save raw MIME messages with headers in the database if true.
ConfiguredAddr
The primary email address. Also see SecondaryAddrs
.
ConfiguredImapServers
List of configured IMAP servers as a JSON array.
ConfiguredMailServer
Configured IMAP server hostname.
This is replaced by configured_imap_servers
for new configurations.
ConfiguredMailPort
Configured IMAP server port.
This is replaced by configured_imap_servers
for new configurations.
ConfiguredMailSecurity
Configured IMAP server security (e.g. TLS, STARTTLS).
This is replaced by configured_imap_servers
for new configurations.
ConfiguredMailUser
Configured IMAP server username.
This is set if user has configured username manually.
ConfiguredMailPw
Configured IMAP server password.
ConfiguredImapCertificateChecks
Configured TLS certificate checks. This option is saved on successful configuration and should not be modified manually.
This actually applies to both IMAP and SMTP connections, but has “IMAP” in the name for backwards compatibility.
ConfiguredSmtpServers
List of configured SMTP servers as a JSON array.
ConfiguredSendServer
Configured SMTP server hostname.
This is replaced by configured_smtp_servers
for new configurations.
ConfiguredSendPort
Configured SMTP server port.
This is replaced by configured_smtp_servers
for new configurations.
ConfiguredSendSecurity
Configured SMTP server security (e.g. TLS, STARTTLS).
This is replaced by configured_smtp_servers
for new configurations.
ConfiguredSendUser
Configured SMTP server username.
This is set if user has configured username manually.
ConfiguredSendPw
Configured SMTP server password.
ConfiguredSmtpCertificateChecks
Deprecated, stored for backwards compatibility.
ConfiguredImapCertificateChecks is actually used.
ConfiguredServerFlags
Whether OAuth 2 is used with configured provider.
ConfiguredInboxFolder
Configured folder for incoming messages.
ConfiguredMvboxFolder
Configured folder for chat messages.
ConfiguredSentboxFolder
Configured “Sent” folder.
ConfiguredTrashFolder
Configured “Trash” folder.
ConfiguredTimestamp
Unix timestamp of the last successful configuration.
ConfiguredProvider
ID of the configured provider from the provider database.
Configured
True if account is configured.
IsChatmail
True if account is a chatmail account.
FixIsChatmail
True if IsChatmail
mustn’t be autoconfigured. For tests.
IsMuted
True if account is muted.
SecondaryAddrs
All secondary self addresses separated by spaces
(addr1@example.org addr2@example.org addr3@example.org
)
SysVersion
Read-only core version string.
SysMsgsizeMaxRecommended
Maximal recommended attachment size in bytes.
SysConfigKeys
Space separated list of all config keys available.
Bot
True if it is a bot account.
SkipStartMessages
True when to skip initial start messages in groups.
NotifyAboutWrongPw
Whether we send a warning if the password is wrong (set to false when we send a warning because we do not want to send a second warning)
QuotaExceeding
If a warning about exceeding quota was shown recently, this is the percentage of quota at the time the warning was given. Unset, when quota falls below minimal warning threshold again.
WebrtcInstance
address to webrtc instance to use for videochats
LastHousekeeping
Timestamp of the last time housekeeping was run
LastCantDecryptOutgoingMsgs
Timestamp of the last CantDecryptOutgoingMsgs
notification.
ScanAllFoldersDebounceSecs
To how many seconds to debounce scan_all_folders. Used mainly in tests, to disable debouncing completely.
DisableIdle
Whether to avoid using IMAP IDLE even if the server supports it.
This is a developer option for testing “fake idle”.
DownloadLimit
Defines the max. size (in bytes) of messages downloaded automatically. 0 = no limit.
SyncMsgs
Enable sending and executing (applying) sync messages. Sending requires BccSelf
to be set
and Bot
unset.
AuthservIdCandidates
Space-separated list of all the authserv-ids which we believe may be the one of our email server.
See crate::authres::update_authservid_candidates
.
SignUnencrypted
Make all outgoing messages with Autocrypt header “multipart/signed”.
DebugLogging
Let the core save all events to the database. This value is used internally to remember the MsgId of the logging xdc
LastMsgId
Last message processed by the bot.
GossipPeriod
How often to gossip Autocrypt keys in chats with multiple recipients, in seconds. 2 days by default.
This is not supposed to be changed by UIs and only used for testing.
VerifiedOneOnOneChats
Feature flag for verified 1:1 chats; the UI should set it
to 1 if it supports verified 1:1 chats.
Regardless of this setting, chat.is_protected()
returns true while the key is verified,
and when the key changes, an info message is posted into the chat.
0=Nothing else happens when the key changes.
1=After the key changed, can_send()
returns false and is_protection_broken()
returns true
until chat_id.accept()
is called.
KeyId
Row ID of the key in the keypairs
table
used for signatures, encryption to self and included in Autocrypt
header.
SelfReportingId
This key is sent to the self_reporting bot so that the bot can recognize the user without storing the email address
WebxdcIntegration
MsgId of webxdc map integration.
WebxdcRealtimeEnabled
Enable webxdc realtime features.
Implementations§
source§impl Config
impl Config
sourcepub(crate) fn is_synced(&self) -> bool
pub(crate) fn is_synced(&self) -> bool
Whether the config option is synced across devices.
This must be checked on both sides so that if there are different client versions, the
synchronisation of a particular option is either done or not done in both directions.
Moreover, receivers of a config value need to check if a key can be synced because if it is
a file path, it could otherwise lead to exfiltration of files from a receiver’s
device if we assume an attacker to have control of a device in a multi-device setting or if
multiple users are sharing an account. Another example is Self::SyncMsgs
itself which
mustn’t be controlled by other devices.
sourcepub(crate) fn needs_io_restart(&self) -> bool
pub(crate) fn needs_io_restart(&self) -> bool
Whether the config option needs an IO scheduler restart to take effect.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Ord for Config
impl Ord for Config
source§impl PartialEq for Config
impl PartialEq for Config
source§impl PartialOrd for Config
impl PartialOrd for Config
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Copy for Config
impl Eq for Config
impl StructuralPartialEq for Config
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.