NeoMutt  2025-12-11-58-g09398d
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
config.c File Reference

Config used by libsend. More...

#include "config.h"
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "email/lib.h"
#include "expando/lib.h"
#include "expando_msgid.h"
#include "smtp.h"
+ Include dependency graph for config.c:

Go to the source code of this file.

Functions

static int wrapheaders_validator (const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
 Validate the "wrap_headers" config variable - Implements ConfigDef::validator() -.
 
static int smtp_auth_validator (const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
 Validate the "smtp_authenticators" config variable - Implements ConfigDef::validator() -.
 
static int simple_command_validator (const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
 Validate the "sendmail" config variable - Implements ConfigDef::validator() -.
 
bool config_init_send (struct ConfigSet *cs)
 Register send config variables - Implements module_init_config_t -.
 

Variables

const struct ExpandoDefinition IndexFormatDef []
 Expando definitions.
 
static const struct ExpandoDefinition *const IndexFormatDefNoPadding = &(IndexFormatDef[3])
 IndexFormatDefNoPadding - Index format definitions, without padding or arrow.
 
const struct ExpandoDefinition NntpFormatDef []
 Expando definitions.
 
static const struct ExpandoDefinition GreetingFormatDef []
 Expando definitions.
 
static const struct ExpandoDefinition MsgIdFormatDef []
 Expando definitions.
 
static struct ConfigDef SendVars []
 Config definitions for the send library.
 

Detailed Description

Config used by libsend.

Authors
  • Yousef Akbar
  • Richard Russon
  • raf
  • Whitney Cumber
  • наб
  • Tóth János

This program 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 this program. If not, see http://www.gnu.org/licenses/.

Definition in file config.c.

Variable Documentation

◆ IndexFormatDef

const struct ExpandoDefinition IndexFormatDef[]
extern

Expando definitions.

Config:

  • $attribution_intro
  • $attribution_trailer
  • $forward_attribution_intro
  • $forward_attribution_trailer
  • $forward_format
  • $index_format
  • $message_format
  • $pager_format
Note
Longer Expandos must precede any similar, but shorter Expandos

Definition at line 320 of file mutt_config.c.

320 {
321 // clang-format off
322 { "*", "padding-soft", ED_GLOBAL, ED_GLO_PADDING_SOFT, node_padding_parse },
323 { ">", "padding-hard", ED_GLOBAL, ED_GLO_PADDING_HARD, node_padding_parse },
324 { "|", "padding-eol", ED_GLOBAL, ED_GLO_PADDING_EOL, node_padding_parse },
327 { "a", "from", ED_ENVELOPE, ED_ENV_FROM, NULL },
328 { "A", "reply-to", ED_ENVELOPE, ED_ENV_REPLY_TO, NULL },
329 { "b", "mailbox-name", ED_MAILBOX, ED_MBX_MAILBOX_NAME, NULL },
330 { "B", "list-address", ED_ENVELOPE, ED_ENV_LIST_ADDRESS, NULL },
331 { "cr", "body-characters", ED_EMAIL, ED_EMA_BODY_CHARACTERS, NULL },
332 { "c", "size", ED_EMAIL, ED_EMA_SIZE, NULL },
333 { "C", "number", ED_EMAIL, ED_EMA_NUMBER, NULL },
334 { "d", "date-format", ED_EMAIL, ED_EMA_DATE_FORMAT, NULL },
335 { "D", "date-format-local", ED_EMAIL, ED_EMA_DATE_FORMAT_LOCAL, NULL },
336 { "e", "thread-number", ED_EMAIL, ED_EMA_THREAD_NUMBER, NULL },
337 { "E", "thread-count", ED_EMAIL, ED_EMA_THREAD_COUNT, NULL },
338 { "f", "from-full", ED_ENVELOPE, ED_ENV_FROM_FULL, NULL },
339 { "Fp", "sender-plain", ED_ENVELOPE, ED_ENV_SENDER_PLAIN, NULL },
340 { "F", "sender", ED_ENVELOPE, ED_ENV_SENDER, NULL },
341 { "g", "tags", ED_EMAIL, ED_EMA_TAGS, NULL },
342 { "G", "tags-transformed", ED_EMAIL, ED_EMA_TAGS_TRANSFORMED, parse_tags_transformed },
343 { "H", "spam", ED_ENVELOPE, ED_ENV_SPAM, NULL },
344 { "i", "message-id", ED_ENVELOPE, ED_ENV_MESSAGE_ID, NULL },
345 { "I", "initials", ED_ENVELOPE, ED_ENV_INITIALS, NULL },
346 { "J", "thread-tags", ED_EMAIL, ED_EMA_THREAD_TAGS, NULL },
347 { "K", "list-empty", ED_ENVELOPE, ED_ENV_LIST_EMPTY, NULL },
348 { "l", "lines", ED_EMAIL, ED_EMA_LINES, NULL },
349 { "L", "from-list", ED_EMAIL, ED_EMA_FROM_LIST, NULL },
350 { "m", "message-count", ED_MAILBOX, ED_MBX_MESSAGE_COUNT, NULL },
351 { "M", "thread-hidden-count", ED_EMAIL, ED_EMA_THREAD_HIDDEN_COUNT, NULL },
352 { "n", "name", ED_ENVELOPE, ED_ENV_NAME, NULL },
353 { "N", "score", ED_EMAIL, ED_EMA_SCORE, NULL },
354 { "O", "save-folder", ED_EMAIL, ED_EMA_LIST_OR_SAVE_FOLDER, NULL },
355 { "P", "percentage", ED_MAILBOX, ED_MBX_PERCENTAGE, NULL },
356 { "q", "newsgroup", ED_ENVELOPE, ED_ENV_NEWSGROUP, NULL },
357 { "r", "to-all", ED_ENVELOPE, ED_ENV_TO_ALL, NULL },
358 { "R", "cc-all", ED_ENVELOPE, ED_ENV_CC_ALL, NULL },
359 { "s", "subject", ED_ENVELOPE, ED_ENV_SUBJECT, parse_subject },
360 { "S", "flag-chars", ED_EMAIL, ED_EMA_FLAG_CHARS, NULL },
361 { "t", "to", ED_ENVELOPE, ED_ENV_TO, NULL },
362 { "T", "to-chars", ED_EMAIL, ED_EMA_TO_CHARS, NULL },
363 { "u", "username", ED_ENVELOPE, ED_ENV_USERNAME, NULL },
364 { "v", "first-name", ED_ENVELOPE, ED_ENV_FIRST_NAME, NULL },
365 { "W", "organization", ED_ENVELOPE, ED_ENV_ORGANIZATION, NULL },
366 { "x", "x-comment-to", ED_ENVELOPE, ED_ENV_X_COMMENT_TO, NULL },
367 { "X", "attachment-count", ED_EMAIL, ED_EMA_ATTACHMENT_COUNT, NULL },
368 { "y", "x-label", ED_ENVELOPE, ED_ENV_X_LABEL, NULL },
369 { "Y", "thread-x-label", ED_ENVELOPE, ED_ENV_THREAD_X_LABEL, NULL },
370 { "Z", "combined-flags", ED_EMAIL, ED_EMA_COMBINED_FLAGS, NULL },
371 { "zc", "crypto-flags", ED_EMAIL, ED_EMA_CRYPTO_FLAGS, NULL },
372 { "zs", "status-flags", ED_EMAIL, ED_EMA_STATUS_FLAGS, NULL },
373 { "zt", "message-flags", ED_EMAIL, ED_EMA_MESSAGE_FLAGS, NULL },
376 { NULL, NULL, 0, -1, NULL }
377 // clang-format on
378};
@ ED_MBX_MESSAGE_COUNT
Mailbox.msg_count.
Definition mailbox.h:159
@ ED_MBX_PERCENTAGE
EmailFormatInfo.pager_progress.
Definition mailbox.h:160
@ ED_MBX_MAILBOX_NAME
Mailbox, mailbox_path()
Definition mailbox.h:158
@ ED_ENVELOPE
Envelope ED_ENV_ ExpandoDataEnvelope.
Definition domain.h:42
@ ED_EMAIL
Email ED_EMA_ ExpandoDataEmail.
Definition domain.h:41
@ ED_GLOBAL
Global ED_GLO_ ExpandoDataGlobal.
Definition domain.h:44
@ ED_MAILBOX
Mailbox ED_MBX_ ExpandoDataMailbox.
Definition domain.h:47
@ ED_EMA_DATE_STRF_LOCAL
Email.date_sent.
Definition email.h:143
@ ED_EMA_ATTACHMENT_COUNT
Email, mutt_count_body_parts()
Definition email.h:136
@ ED_EMA_DATE_FORMAT_LOCAL
Email.date_sent.
Definition email.h:141
@ ED_EMA_TAGS_TRANSFORMED
Email.tags, driver_tags_get_transformed()
Definition email.h:156
@ ED_EMA_THREAD_HIDDEN_COUNT
Email.collapsed, Email.num_hidden, ...
Definition email.h:158
@ ED_EMA_DATE_FORMAT
Email.date_sent.
Definition email.h:140
@ ED_EMA_THREAD_TAGS
Email.tags.
Definition email.h:160
@ ED_EMA_TAGS
Email.tags.
Definition email.h:155
@ ED_EMA_SIZE
Body.length.
Definition email.h:152
@ ED_EMA_FLAG_CHARS
Email.deleted, Email.attach_del, ...
Definition email.h:144
@ ED_EMA_THREAD_NUMBER
Email, mutt_messages_in_thread()
Definition email.h:159
@ ED_EMA_TO_CHARS
Email, User_is_recipient()
Definition email.h:161
@ ED_EMA_BODY_CHARACTERS
Body.length.
Definition email.h:137
@ ED_EMA_COMBINED_FLAGS
Email.read, Email.old, thread_is_new(), ...
Definition email.h:138
@ ED_EMA_THREAD_COUNT
Email, mutt_messages_in_thread()
Definition email.h:157
@ ED_EMA_STATUS_FLAGS
Email.deleted, Email.attach_del, ...
Definition email.h:153
@ ED_EMA_NUMBER
Email.msgno.
Definition email.h:150
@ ED_EMA_DATE_STRF
Email.date_sent, Email.zhours, Email.zminutes, Email.zoccident.
Definition email.h:142
@ ED_EMA_FROM_LIST
Envelope.to, Envelope.cc.
Definition email.h:145
@ ED_EMA_SCORE
Email.score.
Definition email.h:151
@ ED_EMA_CRYPTO_FLAGS
Email.security, SecurityFlags.
Definition email.h:139
@ ED_EMA_STRF_RECV_LOCAL
Email.received.
Definition email.h:154
@ ED_EMA_LIST_OR_SAVE_FOLDER
Envelope.to, Envelope.cc, check_for_mailing_list()
Definition email.h:148
@ ED_EMA_INDEX_HOOK
Mailbox, Email, mutt_idxfmt_hook()
Definition email.h:146
@ ED_EMA_LINES
Email.lines.
Definition email.h:147
@ ED_EMA_MESSAGE_FLAGS
Email.tagged, Email.flagged.
Definition email.h:149
@ ED_ENV_SUBJECT
Envelope.subject, Envelope.disp_subj.
Definition envelope.h:116
@ ED_ENV_NEWSGROUP
Envelope.newsgroups.
Definition envelope.h:109
@ ED_ENV_INITIALS
Envelope.from (first)
Definition envelope.h:104
@ ED_ENV_FROM_FULL
Envelope.from (all)
Definition envelope.h:103
@ ED_ENV_X_COMMENT_TO
Envelope.x_comment_to.
Definition envelope.h:123
@ ED_ENV_FROM
Envelope.from (first)
Definition envelope.h:102
@ ED_ENV_LIST_ADDRESS
Envelope.to, Envelope.cc.
Definition envelope.h:105
@ ED_ENV_SPAM
Envelope.spam.
Definition envelope.h:115
@ ED_ENV_SENDER
Envelope, make_from()
Definition envelope.h:113
@ ED_ENV_TO_ALL
Envelope.to (all)
Definition envelope.h:120
@ ED_ENV_X_LABEL
Envelope.x_label.
Definition envelope.h:124
@ ED_ENV_NAME
Envelope.from (first)
Definition envelope.h:108
@ ED_ENV_CC_ALL
Envelope.cc.
Definition envelope.h:100
@ ED_ENV_ORGANIZATION
Envelope.organization.
Definition envelope.h:110
@ ED_ENV_REPLY_TO
Envelope.reply_to.
Definition envelope.h:112
@ ED_ENV_LIST_EMPTY
Envelope.to, Envelope.cc.
Definition envelope.h:106
@ ED_ENV_THREAD_X_LABEL
Envelope.x_label.
Definition envelope.h:118
@ ED_ENV_MESSAGE_ID
Envelope.message_id.
Definition envelope.h:107
@ ED_ENV_SENDER_PLAIN
Envelope, make_from()
Definition envelope.h:114
@ ED_ENV_USERNAME
Envelope.from.
Definition envelope.h:121
@ ED_ENV_TO
Envelope.to, Envelope.cc (first)
Definition envelope.h:119
@ ED_ENV_FIRST_NAME
Envelope.from, Envelope.to, Envelope.cc.
Definition envelope.h:101
struct ExpandoNode * node_padding_parse(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Padding Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_hook(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse an index-hook - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_subject(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Subject Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date_recv_local(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date_local(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_tags_transformed(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Tags-Transformed Expando - Implements ExpandoDefinition::parse() -.
@ ED_GLO_PADDING_EOL
Padding to end-of-line.
Definition uid.h:38
@ ED_GLO_PADDING_HARD
Hard Padding.
Definition uid.h:39
@ ED_GLO_PADDING_SOFT
Soft Padding.
Definition uid.h:40

◆ IndexFormatDefNoPadding

const struct ExpandoDefinition* const IndexFormatDefNoPadding = &(IndexFormatDef[3])
static

IndexFormatDefNoPadding - Index format definitions, without padding or arrow.

Definition at line 51 of file config.c.

◆ NntpFormatDef

const struct ExpandoDefinition NntpFormatDef[]
extern

Expando definitions.

Config:

  • $inews_command
  • $newsrc

Definition at line 44 of file config.c.

44 {
45 // clang-format off
46 { "a", "account", ED_NNTP, ED_NTP_ACCOUNT, NULL },
47 { "p", "port", ED_NNTP, ED_NTP_PORT, NULL },
48 { "P", "port-if", ED_NNTP, ED_NTP_PORT_IF, NULL },
49 { "s", "server", ED_NNTP, ED_NTP_SERVER, NULL },
50 { "S", "schema", ED_NNTP, ED_NTP_SCHEMA, NULL },
51 { "u", "username", ED_NNTP, ED_NTP_USERNAME, NULL },
52 { NULL, NULL, 0, -1, NULL }
53 // clang-format on
54};
@ ED_NTP_SCHEMA
ConnAccount.account.
Definition connaccount.h:85
@ ED_NTP_USERNAME
ConnAccount.user.
Definition connaccount.h:87
@ ED_NTP_PORT_IF
ConnAccount.port.
Definition connaccount.h:84
@ ED_NTP_SERVER
ConnAccount.account.
Definition connaccount.h:86
@ ED_NTP_ACCOUNT
ConnAccount.account.
Definition connaccount.h:82
@ ED_NTP_PORT
ConnAccount.port.
Definition connaccount.h:83
@ ED_NNTP
Nntp ED_NTP_ ExpandoDataNntp.
Definition domain.h:50

◆ GreetingFormatDef

const struct ExpandoDefinition GreetingFormatDef[]
static
Initial value:
= {
{ "n", "real-name", ED_ENVELOPE, ED_ENV_REAL_NAME, NULL },
{ "u", "user-name", ED_ENVELOPE, ED_ENV_USER_NAME, NULL },
{ "v", "first-name", ED_ENVELOPE, ED_ENV_FIRST_NAME, NULL },
{ NULL, NULL, 0, -1, NULL }
}
@ ED_ENV_REAL_NAME
Envelope.to (first)
Definition envelope.h:111
@ ED_ENV_USER_NAME
Envelope.to (first)
Definition envelope.h:122

Expando definitions.

Config:

  • $greeting

Definition at line 124 of file config.c.

124 {
125 // clang-format off
126 { "n", "real-name", ED_ENVELOPE, ED_ENV_REAL_NAME, NULL },
127 { "u", "user-name", ED_ENVELOPE, ED_ENV_USER_NAME, NULL },
128 { "v", "first-name", ED_ENVELOPE, ED_ENV_FIRST_NAME, NULL },
129 { NULL, NULL, 0, -1, NULL }
130 // clang-format on
131};

◆ MsgIdFormatDef

const struct ExpandoDefinition MsgIdFormatDef[]
static
Initial value:
= {
{ "c", "counter", ED_MSG_ID, ED_MSG_COUNTER, NULL },
{ "d", "day", ED_MSG_ID, ED_MSG_DAY, NULL },
{ "f", "hostname", ED_MSG_ID, ED_MSG_HOSTNAME, NULL },
{ "H", "hour", ED_MSG_ID, ED_MSG_HOUR, NULL },
{ "M", "minute", ED_MSG_ID, ED_MSG_MINUTE, NULL },
{ "m", "month", ED_MSG_ID, ED_MSG_MONTH, NULL },
{ "p", "pid", ED_MSG_ID, ED_MSG_PID, NULL },
{ "r", "random_3", ED_MSG_ID, ED_MSG_RANDOM_3, NULL },
{ "S", "second", ED_MSG_ID, ED_MSG_SECOND, NULL },
{ "x", "random_1", ED_MSG_ID, ED_MSG_RANDOM_1, NULL },
{ "Y", "year", ED_MSG_ID, ED_MSG_YEAR, NULL },
{ "z", "random_12", ED_MSG_ID, ED_MSG_RANDOM_12, NULL },
{ NULL, NULL, 0, -1, NULL }
}
@ ED_MSG_ID
Message Id ED_MSG_ ExpandoDataMsgId.
Definition domain.h:49
@ ED_MSG_COUNTER
Step counter looping from 'A' to 'Z'.
@ ED_MSG_SECOND
Current year using 4 digits (GMT)
@ ED_MSG_YEAR
4 byte timestamp + 8 bytes of pseudo-random data encoded in Base64
@ ED_MSG_HOUR
Current hour using a 24-hour clock (GMT)
@ ED_MSG_PID
PID of the running mutt process.
@ ED_MSG_RANDOM_1
3 bytes of pseudo-random data encoded in Base64
@ ED_MSG_MINUTE
Current month number (GMT)
@ ED_MSG_RANDOM_3
Current second of the minute (GMT)
@ ED_MSG_DAY
Current day of the month (GMT)
@ ED_MSG_HOSTNAME
$hostname
@ ED_MSG_MONTH
Current minute of the hour (GMT)
@ ED_MSG_RANDOM_12
1 byte of pseudo-random data hex encoded (example: '1b')

Expando definitions.

Config:

  • $message_id_format

Definition at line 139 of file config.c.

139 {
140 // clang-format off
141 { "c", "counter", ED_MSG_ID, ED_MSG_COUNTER, NULL },
142 { "d", "day", ED_MSG_ID, ED_MSG_DAY, NULL },
143 { "f", "hostname", ED_MSG_ID, ED_MSG_HOSTNAME, NULL },
144 { "H", "hour", ED_MSG_ID, ED_MSG_HOUR, NULL },
145 { "M", "minute", ED_MSG_ID, ED_MSG_MINUTE, NULL },
146 { "m", "month", ED_MSG_ID, ED_MSG_MONTH, NULL },
147 { "p", "pid", ED_MSG_ID, ED_MSG_PID, NULL },
148 { "r", "random_3", ED_MSG_ID, ED_MSG_RANDOM_3, NULL },
149 { "S", "second", ED_MSG_ID, ED_MSG_SECOND, NULL },
150 { "x", "random_1", ED_MSG_ID, ED_MSG_RANDOM_1, NULL },
151 { "Y", "year", ED_MSG_ID, ED_MSG_YEAR, NULL },
152 { "z", "random_12", ED_MSG_ID, ED_MSG_RANDOM_12, NULL },
153 { NULL, NULL, 0, -1, NULL }
154 // clang-format on
155};

◆ SendVars

struct ConfigDef SendVars[]
static

Config definitions for the send library.

Definition at line 160 of file config.c.

160 {
161 // clang-format off
162 { "abort_noattach", DT_QUAD, MUTT_NO, 0, NULL,
163 "Abort sending the email if attachments are missing"
164 },
165 { "abort_noattach_regex", DT_REGEX, IP "\\<(attach|attached|attachments?)\\>", 0, NULL,
166 "Regex to match text indicating attachments are expected"
167 },
168 { "abort_nosubject", DT_QUAD, MUTT_ASKYES, 0, NULL,
169 "Abort creating the email if subject is missing"
170 },
171 { "abort_unmodified", DT_QUAD, MUTT_YES, 0, NULL,
172 "Abort the sending if the message hasn't been edited"
173 },
174 { "allow_8bit", DT_BOOL, true, 0, NULL,
175 "Allow 8-bit messages, don't use quoted-printable or base64"
176 },
177 { "ask_bcc", DT_BOOL, false, 0, NULL,
178 "Ask the user for the blind-carbon-copy recipients"
179 },
180 { "ask_cc", DT_BOOL, false, 0, NULL,
181 "Ask the user for the carbon-copy recipients"
182 },
183 { "ask_followup_to", DT_BOOL, false, 0, NULL,
184 "(nntp) Ask the user for follow-up groups before editing"
185 },
186 { "ask_x_comment_to", DT_BOOL, false, 0, NULL,
187 "(nntp) Ask the user for the 'X-Comment-To' field before editing"
188 },
190 "When attaching files, use one of these character sets"
191 },
192 // L10N: $attribution_intro default format
193 { "attribution_intro", DT_EXPANDO|D_L10N_STRING, IP N_("On %d, %n wrote:"), IP IndexFormatDefNoPadding, NULL,
194 "Message to start a reply, 'On DATE, PERSON wrote:'"
195 },
196 { "attribution_locale", DT_STRING, 0, 0, NULL,
197 "Locale for dates in the attribution message"
198 },
199 { "attribution_trailer", DT_EXPANDO, 0, IP IndexFormatDefNoPadding, NULL,
200 "Suffix message to add after reply text"
201 },
202 { "bounce_delivered", DT_BOOL, true, 0, NULL,
203 "Add 'Delivered-To' to bounced messages"
204 },
205 { "confirm_empty_to", DT_BOOL, false, 0, NULL,
206 "Ask for a confirmation before sending an email with an empty To recipients list"
207 },
208 { "content_type", DT_STRING, IP "text/plain", 0, NULL,
209 "Default 'Content-Type' for newly composed messages"
210 },
211 { "crypt_auto_encrypt", DT_BOOL, false, 0, NULL,
212 "Automatically PGP encrypt all outgoing mail"
213 },
214 { "crypt_auto_pgp", DT_BOOL, true, 0, NULL,
215 "Allow automatic PGP functions"
216 },
217 { "crypt_auto_sign", DT_BOOL, false, 0, NULL,
218 "Automatically PGP sign all outgoing mail"
219 },
220 { "crypt_auto_smime", DT_BOOL, true, 0, NULL,
221 "Allow automatic SMIME functions"
222 },
223 { "crypt_reply_encrypt", DT_BOOL, true, 0, NULL,
224 "Encrypt replies to encrypted messages"
225 },
226 { "crypt_reply_sign", DT_BOOL, false, 0, NULL,
227 "Sign replies to signed messages"
228 },
229 { "crypt_reply_sign_encrypted", DT_BOOL, false, 0, NULL,
230 "Sign replies to encrypted messages"
231 },
232 { "dsn_notify", DT_STRING, 0, 0, NULL,
233 "Request notification for message delivery or delay"
234 },
235 { "dsn_return", DT_STRING, 0, 0, NULL,
236 "What to send as a notification of message delivery or delay"
237 },
238 { "empty_subject", DT_STRING, IP "Re: your mail", 0, NULL,
239 "Subject to use when replying to an email with none"
240 },
241 { "encode_from", DT_BOOL, false, 0, NULL,
242 "Encode 'From ' as 'quote-printable' at the beginning of lines"
243 },
244 { "fast_reply", DT_BOOL, false, 0, NULL,
245 "Don't prompt for the recipients and subject when replying/forwarding"
246 },
247 { "fcc_attach", DT_QUAD, MUTT_YES, 0, NULL,
248 "Save sent message with all their attachments"
249 },
250 { "fcc_before_send", DT_BOOL, false, 0, NULL,
251 "Save FCCs before sending the message"
252 },
253 { "fcc_clear", DT_BOOL, false, 0, NULL,
254 "Save sent messages unencrypted and unsigned"
255 },
256 { "followup_to", DT_BOOL, true, 0, NULL,
257 "Add the 'Mail-Followup-To' header is generated when sending mail"
258 },
259 { "forward_attachments", DT_QUAD, MUTT_ASKYES, 0, NULL,
260 "Forward attachments when forwarding a message"
261 },
262 // L10N: $forward_attribution_intro default format
263 { "forward_attribution_intro", DT_EXPANDO|D_L10N_STRING, IP N_("----- Forwarded message from %f -----"), IP IndexFormatDefNoPadding, NULL,
264 "Prefix message for forwarded messages"
265 },
266 // L10N: $forward_attribution_trailer default format
267 { "forward_attribution_trailer", DT_EXPANDO|D_L10N_STRING, IP N_("----- End forwarded message -----"), IP IndexFormatDefNoPadding, NULL,
268 "Suffix message for forwarded messages"
269 },
270 { "forward_decrypt", DT_BOOL, true, 0, NULL,
271 "Decrypt the message when forwarding it"
272 },
273 { "forward_edit", DT_QUAD, MUTT_YES, 0, NULL,
274 "Automatically start the editor when forwarding a message"
275 },
276 { "forward_format", DT_EXPANDO|D_NOT_EMPTY, IP "[%a: %s]", IP IndexFormatDefNoPadding, NULL,
277 "printf-like format string to control the subject when forwarding a message"
278 },
279 { "forward_references", DT_BOOL, false, 0, NULL,
280 "Set the 'In-Reply-To' and 'References' headers when forwarding a message"
281 },
282 { "greeting", DT_EXPANDO, 0, IP &GreetingFormatDef, NULL,
283 "Greeting string added to the top of all messages"
284 },
285 { "hdrs", DT_BOOL, true, 0, NULL,
286 "Add custom headers to outgoing mail"
287 },
288 { "hidden_host", DT_BOOL, false, 0, NULL,
289 "Don't use the hostname, just the domain, when generating the message id"
290 },
291 { "honor_followup_to", DT_QUAD, MUTT_YES, 0, NULL,
292 "Honour the 'Mail-Followup-To' header when group replying"
293 },
294 { "ignore_list_reply_to", DT_BOOL, false, 0, NULL,
295 "Ignore the 'Reply-To' header when using `<reply>` on a mailing list"
296 },
297 { "include", DT_QUAD, MUTT_ASKYES, 0, NULL,
298 "Include a copy of the email that's being replied to"
299 },
300 { "inews_command", DT_EXPANDO|D_STRING_COMMAND, 0, IP &NntpFormatDef, NULL,
301 "(nntp) External command to post news articles"
302 },
303 { "me_too", DT_BOOL, false, 0, NULL,
304 "Remove the user's address from the list of recipients"
305 },
306 { "message_id_format", DT_EXPANDO, IP "<%z@%f>", IP &MsgIdFormatDef, NULL,
307 "Custom format for the Message-Id"
308 },
309 { "mime_forward_decode", DT_BOOL, false, 0, NULL,
310 "Decode the forwarded message before attaching it"
311 },
312 { "mime_type_query_command", DT_STRING|D_STRING_COMMAND, 0, 0, NULL,
313 "External command to determine the MIME type of an attachment"
314 },
315 { "mime_type_query_first", DT_BOOL, false, 0, NULL,
316 "Run the `$mime_type_query_command` before the mime.types lookup"
317 },
318 { "nm_record", DT_BOOL, false, 0, NULL,
319 "(notmuch) If the 'record' mailbox (sent mail) should be indexed"
320 },
321 { "pgp_reply_inline", DT_BOOL, false, 0, NULL,
322 "Reply using old-style inline PGP messages (not recommended)"
323 },
324 { "postpone_encrypt", DT_BOOL, false, 0, NULL,
325 "Self-encrypt postponed messages"
326 },
327 { "postpone_encrypt_as", DT_STRING, 0, 0, NULL,
328 "Fallback encryption key for postponed messages"
329 },
330 { "recall", DT_QUAD, MUTT_ASKYES, 0, NULL,
331 "Recall postponed mesaages when asked to compose a message"
332 },
333 { "reply_self", DT_BOOL, false, 0, NULL,
334 "Really reply to yourself, when replying to your own email"
335 },
336 { "reply_to", DT_QUAD, MUTT_ASKYES, 0, NULL,
337 "Address to use as a 'Reply-To' header"
338 },
339 { "reply_with_xorig", DT_BOOL, false, 0, NULL,
340 "Create 'From' header from 'X-Original-To' header"
341 },
342 { "resume_draft_files", DT_BOOL, false, 0, NULL,
343 "Process draft files like postponed messages"
344 },
345 { "reverse_name", DT_BOOL, false, 0, NULL,
346 "Set the 'From' from the address the email was sent to"
347 },
348 { "reverse_real_name", DT_BOOL, true, 0, NULL,
349 "Set the 'From' from the full 'To' address the email was sent to"
350 },
351 { "sendmail", DT_STRING|D_STRING_COMMAND, IP SENDMAIL " -oem -oi", 0, simple_command_validator,
352 "External command to send email"
353 },
354 { "sendmail_wait", DT_NUMBER, 0, 0, NULL,
355 "Time to wait for sendmail to finish"
356 },
357 { "sig_dashes", DT_BOOL, true, 0, NULL,
358 "Insert '-- ' before the signature"
359 },
360 { "sig_on_top", DT_BOOL, false, 0, NULL,
361 "Insert the signature before the quoted text"
362 },
363 { "signature", DT_PATH|D_PATH_FILE, IP "~/.signature", 0, NULL,
364 "File containing a signature to append to all mail"
365 },
366 { "smtp_authenticators", DT_SLIST|D_SLIST_SEP_COLON, 0, 0, smtp_auth_validator,
367 "(smtp) List of allowed authentication methods (colon-separated)"
368 },
369 { "smtp_oauth_refresh_command", DT_STRING|D_STRING_COMMAND|D_SENSITIVE, 0, 0, NULL,
370 "(smtp) External command to generate OAUTH refresh token"
371 },
372 { "smtp_pass", DT_STRING|D_SENSITIVE, 0, 0, NULL,
373 "(smtp) Password for the SMTP server"
374 },
375 { "smtp_url", DT_STRING|D_SENSITIVE, 0, 0, NULL,
376 "(smtp) Url of the SMTP server"
377 },
378 { "smtp_user", DT_STRING|D_SENSITIVE, 0, 0, NULL,
379 "(smtp) Username for the SMTP server"
380 },
381 { "use_8bit_mime", DT_BOOL, false, 0, NULL,
382 "Use 8-bit messages and ESMTP to send messages"
383 },
384 { "use_envelope_from", DT_BOOL, false, 0, NULL,
385 "Set the envelope sender of the message"
386 },
387 { "use_from", DT_BOOL, true, 0, NULL,
388 "Set the 'From' header for outgoing mail"
389 },
390 { "user_agent", DT_BOOL, false, 0, NULL,
391 "Add a 'User-Agent' header to outgoing mail"
392 },
394 "Width to wrap headers in outgoing messages"
395 },
396 { "write_bcc", DT_BOOL, false, 0, NULL,
397 "Write out the 'Bcc' field when preparing to send a mail"
398 },
399
400 { "abort_noattach_regexp", DT_SYNONYM, IP "abort_noattach_regex", IP "2021-03-21" },
401 { "askbcc", DT_SYNONYM, IP "ask_bcc", IP "2021-03-21" },
402 { "askcc", DT_SYNONYM, IP "ask_cc", IP "2021-03-21" },
403 { "ask_follow_up", DT_SYNONYM, IP "ask_followup_to", IP "2023-01-20" },
404 { "attach_keyword", DT_SYNONYM, IP "abort_noattach_regex", IP "2021-03-21" },
405 { "attribution", DT_SYNONYM, IP "attribution_intro", IP "2023-02-20" },
406 { "crypt_autoencrypt", DT_SYNONYM, IP "crypt_auto_encrypt", IP "2021-03-21" },
407 { "crypt_autopgp", DT_SYNONYM, IP "crypt_auto_pgp", IP "2021-03-21" },
408 { "crypt_autosign", DT_SYNONYM, IP "crypt_auto_sign", IP "2021-03-21" },
409 { "crypt_autosmime", DT_SYNONYM, IP "crypt_auto_smime", IP "2021-03-21" },
410 { "crypt_replyencrypt", DT_SYNONYM, IP "crypt_reply_encrypt", IP "2021-03-21" },
411 { "crypt_replysign", DT_SYNONYM, IP "crypt_reply_sign", IP "2021-03-21" },
412 { "crypt_replysignencrypted", DT_SYNONYM, IP "crypt_reply_sign_encrypted", IP "2021-03-21" },
413 { "envelope_from", DT_SYNONYM, IP "use_envelope_from", IP "2021-03-21" },
414 { "forw_decrypt", DT_SYNONYM, IP "forward_decrypt", IP "2021-03-21" },
415 { "forw_format", DT_SYNONYM, IP "forward_format", IP "2021-03-21" },
416 { "inews", DT_SYNONYM, IP "inews_command", IP "2025-12-15" },
417 { "metoo", DT_SYNONYM, IP "me_too", IP "2021-03-21" },
418 { "pgp_autoencrypt", DT_SYNONYM, IP "crypt_auto_encrypt", IP "2021-03-21" },
419 { "pgp_autosign", DT_SYNONYM, IP "crypt_auto_sign", IP "2021-03-21" },
420 { "pgp_auto_traditional", DT_SYNONYM, IP "pgp_reply_inline", IP "2021-03-21" },
421 { "pgp_replyencrypt", DT_SYNONYM, IP "crypt_reply_encrypt", IP "2021-03-21" },
422 { "pgp_replyinline", DT_SYNONYM, IP "pgp_reply_inline", IP "2021-03-21" },
423 { "pgp_replysign", DT_SYNONYM, IP "crypt_reply_sign", IP "2021-03-21" },
424 { "pgp_replysignencrypted", DT_SYNONYM, IP "crypt_reply_sign_encrypted", IP "2021-03-21" },
425 { "post_indent_str", DT_SYNONYM, IP "attribution_trailer", IP "2021-03-21" },
426 { "post_indent_string", DT_SYNONYM, IP "attribution_trailer", IP "2023-02-20" },
427 { "reverse_realname", DT_SYNONYM, IP "reverse_real_name", IP "2021-03-21" },
428 { "use_8bitmime", DT_SYNONYM, IP "use_8bit_mime", IP "2021-03-21" },
429
430 { "mime_subject", D_INTERNAL_DEPRECATED|DT_BOOL, 0, IP "2021-03-24" },
431 { NULL },
432 // clang-format on
433};
#define IP
Definition set.h:52
static int simple_command_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "sendmail" config variable - Implements ConfigDef::validator() -.
Definition config.c:101
static int smtp_auth_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "smtp_authenticators" config variable - Implements ConfigDef::validator() -.
Definition config.c:76
static int wrapheaders_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "wrap_headers" config variable - Implements ConfigDef::validator() -.
Definition config.c:58
int charset_slist_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the multiple "charset" config variables - Implements ConfigDef::validator() -.
Definition charset.c:84
#define N_(a)
Definition message.h:32
static const struct ExpandoDefinition *const IndexFormatDefNoPadding
IndexFormatDefNoPadding - Index format definitions, without padding.
const struct ExpandoDefinition NntpFormatDef[]
Expando definitions.
Definition config.c:44
@ MUTT_NO
User answered 'No', or assume 'No'.
Definition quad.h:38
@ MUTT_ASKYES
Ask the user, defaulting to 'Yes'.
Definition quad.h:41
@ MUTT_YES
User answered 'Yes', or assume 'Yes'.
Definition quad.h:39
static const struct ExpandoDefinition MsgIdFormatDef[]
Expando definitions.
Definition config.c:139
static const struct ExpandoDefinition GreetingFormatDef[]
Expando definitions.
Definition config.c:124
#define D_SLIST_SEP_COLON
Slist items are colon-separated.
Definition types.h:111
#define D_INTERNAL_DEPRECATED
Config item shouldn't be used any more.
Definition types.h:87
#define D_STRING_COMMAND
A command.
Definition types.h:98
#define D_SLIST_ALLOW_EMPTY
Slist may be empty.
Definition types.h:115
#define D_L10N_STRING
String can be localised.
Definition types.h:81
#define D_PATH_FILE
Path is a file.
Definition types.h:103
@ DT_NUMBER
a number
Definition types.h:38
@ DT_SLIST
a list of strings
Definition types.h:42
@ DT_BOOL
boolean option
Definition types.h:32
@ DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
Definition types.h:40
@ DT_SYNONYM
synonym for another variable
Definition types.h:45
@ DT_STRING
a string
Definition types.h:44
@ DT_EXPANDO
an expando
Definition types.h:34
@ DT_REGEX
regular expressions
Definition types.h:41
@ DT_PATH
a path to a file/directory
Definition types.h:39
#define D_SENSITIVE
Contains sensitive value, e.g. password.
Definition types.h:80
#define D_NOT_EMPTY
Empty strings are not allowed.
Definition types.h:79
#define D_INTEGER_NOT_NEGATIVE
Negative numbers are not allowed.
Definition types.h:100