+++ /dev/null
-#
-# System configuration file for Mutt
-#
-
-# default list of header fields to weed when displaying
-#
-ignore "from " received content- mime-version status x-status message-id
-ignore sender references return-path lines
-
-# imitate the old search-body function
-macro index \eb '/~b ' 'search in message bodies'
-
-# simulate the old url menu
-macro index \cb |urlview\n 'call urlview to extract URLs out of a message'
-macro pager \cb |urlview\n 'call urlview to extract URLs out of a message'
-
-# Show documentation when pressing F1
-macro generic <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documentation"
-macro index <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documentation"
-macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documentation"
-
-# If Mutt is unable to determine your site's domain name correctly, you can
-# set the default here.
-#
-# set hostname=cs.hmc.edu
-
-# If your sendmail supports the -B8BITMIME flag, enable the following
-#
-# set use_8bitmime
-
-##
-## More settings
-##
-
-
-# set abort_nosubject=ask-yes
-#
-# Name: abort_nosubject
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# If set to yes, when composing messages and no subject is given
-# at the subject prompt, composition will be aborted. If set to
-# no, composing messages with no subject given at the subject
-# prompt will never be aborted.
-#
-#
-# set abort_unmodified=yes
-#
-# Name: abort_unmodified
-# Type: quadoption
-# Default: yes
-#
-#
-# If set to yes, composition will automatically abort after
-# editing the message body if no changes are made to the file (this
-# check only happens after the first edit of the file). When set
-# to no, composition will never be aborted.
-#
-#
-# set alias_file="~/.muttrc"
-#
-# Name: alias_file
-# Type: path
-# Default: "~/.muttrc"
-#
-#
-# The default file in which to save aliases created by the
-# ``create-alias'' function.
-#
-# Note: Mutt will not automatically source this file; you must
-# explicitly use the ``source'' command for it to be executed.
-#
-#
-# set alias_format="%4n %2f %t %-10a %r"
-#
-# Name: alias_format
-# Type: string
-# Default: "%4n %2f %t %-10a %r"
-#
-#
-# Specifies the format of the data displayed for the `alias' menu. The
-# following printf(3)-style sequences are available:
-#
-# %a alias name
-# %f flags - currently, a "d" for an alias marked for deletion
-# %n index number
-# %r address which alias expands to
-# %t character which indicates if the alias is tagged for inclusion
-#
-#
-# set allow_8bit=yes
-#
-# Name: allow_8bit
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether 8-bit data is converted to 7-bit using either Quoted-
-# Printable or Base64 encoding when sending mail.
-#
-#
-# set allow_ansi=no
-#
-# Name: allow_ansi
-# Type: boolean
-# Default: no
-#
-#
-# Controls whether ANSI color codes in messages (and color tags in
-# rich text messages) are to be interpreted.
-# Messages containing these codes are rare, but if this option is set,
-# their text will be colored accordingly. Note that this may override
-# your color choices, and even present a security problem, since a
-# message could include a line like "[-- PGP output follows ..." and
-# give it the same color as your attachment color.
-#
-#
-# set arrow_cursor=no
-#
-# Name: arrow_cursor
-# Type: boolean
-# Default: no
-#
-#
-# When set, an arrow (``->'') will be used to indicate the current entry
-# in menus instead of highlighting the whole line. On slow network or modem
-# links this will make response faster because there is less that has to
-# be redrawn on the screen when moving to the next or previous entries
-# in the menu.
-#
-#
-# set ascii_chars=no
-#
-# Name: ascii_chars
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will use plain ASCII characters when displaying thread
-# and attachment trees, instead of the default ACS characters.
-#
-#
-# set askbcc=no
-#
-# Name: askbcc
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will prompt you for blind-carbon-copy (Bcc) recipients
-# before editing an outgoing message.
-#
-#
-# set askcc=no
-#
-# Name: askcc
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will prompt you for carbon-copy (Cc) recipients before
-# editing the body of an outgoing message.
-#
-#
-# set ask_follow_up=no
-#
-# Name: ask_follow_up
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will prompt you for follow-up groups before editing
-# the body of an outgoing message.
-#
-#
-# set ask_x_comment_to=no
-#
-# Name: ask_x_comment_to
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will prompt you for x-comment-to field before editing
-# the body of an outgoing message.
-#
-#
-# set attach_format="%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] "
-#
-# Name: attach_format
-# Type: string
-# Default: "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] "
-#
-#
-# This variable describes the format of the `attachment' menu. The
-# following printf-style sequences are understood:
-#
-# %C charset
-# %c requires charset conversion (n or c)
-# %D deleted flag
-# %d description
-# %e MIME content-transfer-encoding
-# %f filename
-# %I disposition (I=inline, A=attachment)
-# %m major MIME type
-# %M MIME subtype
-# %n attachment number
-# %s size
-# %t tagged flag
-# %T graphic tree characters
-# %u unlink (=to delete) flag
-# %>X right justify the rest of the string and pad with character "X"
-# %|X pad to the end of the line with character "X"
-#
-#
-# set attach_sep="\n"
-#
-# Name: attach_sep
-# Type: string
-# Default: "\n"
-#
-#
-# The separator to add between attachments when operating (saving,
-# printing, piping, etc) on a list of tagged attachments.
-#
-#
-# set attach_split=yes
-#
-# Name: attach_split
-# Type: boolean
-# Default: yes
-#
-#
-# If this variable is unset, when operating (saving, printing, piping,
-# etc) on a list of tagged attachments, Mutt will concatenate the
-# attachments and will operate on them as a single attachment. The
-# ``$attach_sep'' separator is added after each attachment. When set,
-# Mutt will operate on the attachments one by one.
-#
-#
-# set attribution="On %d, %n wrote:"
-#
-# Name: attribution
-# Type: string
-# Default: "On %d, %n wrote:"
-#
-#
-# This is the string that will precede a message which has been included
-# in a reply. For a full listing of defined printf()-like sequences see
-# the section on ``$index_format''.
-#
-#
-# set autoedit=no
-#
-# Name: autoedit
-# Type: boolean
-# Default: no
-#
-#
-# When set along with ``$edit_headers'', Mutt will skip the initial
-# send-menu and allow you to immediately begin editing the body of your
-# message. The send-menu may still be accessed once you have finished
-# editing the body of your message.
-#
-# Also see ``$fast_reply''.
-#
-#
-# set auto_tag=no
-#
-# Name: auto_tag
-# Type: boolean
-# Default: no
-#
-#
-# When set, functions in the index menu which affect a message
-# will be applied to all tagged messages (if there are any). When
-# unset, you must first use the tag-prefix function (default: ";") to
-# make the next function apply to all tagged messages.
-#
-#
-# set beep=yes
-#
-# Name: beep
-# Type: boolean
-# Default: yes
-#
-#
-# When this variable is set, mutt will beep when an error occurs.
-#
-#
-# set beep_new=no
-#
-# Name: beep_new
-# Type: boolean
-# Default: no
-#
-#
-# When this variable is set, mutt will beep whenever it prints a message
-# notifying you of new mail. This is independent of the setting of the
-# ``$beep'' variable.
-#
-#
-# set bounce=ask-yes
-#
-# Name: bounce
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether you will be asked to confirm bouncing messages.
-# If set to yes you don't get asked if you want to bounce a
-# message. Setting this variable to no is not generally useful,
-# and thus not recommended, because you are unable to bounce messages.
-#
-#
-# set bounce_delivered=yes
-#
-# Name: bounce_delivered
-# Type: boolean
-# Default: yes
-#
-#
-# When this variable is set, mutt will include Delivered-To headers when
-# bouncing messages. Postfix users may wish to unset this variable.
-#
-#
-# set catchup_newsgroup=ask-yes
-#
-# Name: catchup_newsgroup
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# If this variable is set, Mutt will mark all articles in newsgroup
-# as read when you quit the newsgroup (catchup newsgroup).
-#
-#
-# set charset=""
-#
-# Name: charset
-# Type: string
-# Default: ""
-#
-#
-# Character set your terminal uses to display and enter textual data.
-#
-#
-# set check_new=yes
-#
-# Name: check_new
-# Type: boolean
-# Default: yes
-#
-#
-# Note: this option only affects maildir and MH style
-# mailboxes.
-#
-# When set, Mutt will check for new mail delivered while the
-# mailbox is open. Especially with MH mailboxes, this operation can
-# take quite some time since it involves scanning the directory and
-# checking each file to see if it has already been looked at. If
-# check_new is unset, no check for new mail is performed
-# while the mailbox is open.
-#
-#
-# set collapse_unread=yes
-#
-# Name: collapse_unread
-# Type: boolean
-# Default: yes
-#
-#
-# When unset, Mutt will not collapse a thread if it contains any
-# unread messages.
-#
-#
-# set uncollapse_jump=no
-#
-# Name: uncollapse_jump
-# Type: boolean
-# Default: no
-#
-#
-# When set, Mutt will jump to the next unread message, if any,
-# when the current thread is uncollapsed.
-#
-#
-# set compose_format="-- Mutt: Compose [Approx. msg size: %l Atts: %a]%>-"
-#
-# Name: compose_format
-# Type: string
-# Default: "-- Mutt: Compose [Approx. msg size: %l Atts: %a]%>-"
-#
-#
-# Controls the format of the status line displayed in the Compose
-# menu. This string is similar to ``$status_format'', but has its own
-# set of printf()-like sequences:
-#
-# %a total number of attachments
-# %h local hostname
-# %l approximate size (in bytes) of the current message
-# %v Mutt version string
-#
-#
-# See the text describing the ``$status_format'' option for more
-# information on how to set ``$compose_format''.
-#
-#
-# set config_charset=""
-#
-# Name: config_charset
-# Type: string
-# Default: ""
-#
-#
-# When defined, Mutt will recode commands in rc files from this
-# encoding.
-#
-#
-# set confirmappend=yes
-#
-# Name: confirmappend
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will prompt for confirmation when appending messages to
-# an existing mailbox.
-#
-#
-# set confirmcreate=yes
-#
-# Name: confirmcreate
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will prompt for confirmation when saving messages to a
-# mailbox which does not yet exist before creating it.
-#
-#
-# set connect_timeout=30
-#
-# Name: connect_timeout
-# Type: number
-# Default: 30
-#
-#
-# Causes Mutt to timeout a network connection (for IMAP or POP) after this
-# many seconds if the connection is not able to be established. A negative
-# value causes Mutt to wait indefinitely for the connection to succeed.
-#
-#
-# set content_type="text/plain"
-#
-# Name: content_type
-# Type: string
-# Default: "text/plain"
-#
-#
-# Sets the default Content-Type for the body of newly composed messages.
-#
-#
-# set copy=yes
-#
-# Name: copy
-# Type: quadoption
-# Default: yes
-#
-#
-# This variable controls whether or not copies of your outgoing messages
-# will be saved for later references. Also see ``$record'',
-# ``$save_name'', ``$force_name'' and ``fcc-hook''.
-#
-#
-# set crypt_use_gpgme=no
-#
-# Name: crypt_use_gpgme
-# Type: boolean
-# Default: no
-#
-#
-# This variable controls the use the GPGME enabled crypto backends.
-# If it is set and Mutt was build with gpgme support, the gpgme code for
-# S/MIME and PGP will be used instead of the classic code. Note, that
-# you need to use this option in .muttrc as it won't have any effect when
-# used interactively.
-#
-#
-# set crypt_autopgp=yes
-#
-# Name: crypt_autopgp
-# Type: boolean
-# Default: yes
-#
-#
-# This variable controls whether or not mutt may automatically enable
-# PGP encryption/signing for messages. See also ``$crypt_autoencrypt'',
-# ``$crypt_replyencrypt'',
-# ``$crypt_autosign'', ``$crypt_replysign'' and ``$smime_is_default''.
-#
-#
-# set crypt_autosmime=yes
-#
-# Name: crypt_autosmime
-# Type: boolean
-# Default: yes
-#
-#
-# This variable controls whether or not mutt may automatically enable
-# S/MIME encryption/signing for messages. See also ``$crypt_autoencrypt'',
-# ``$crypt_replyencrypt'',
-# ``$crypt_autosign'', ``$crypt_replysign'' and ``$smime_is_default''.
-#
-#
-# set date_format="!%a, %b %d, %Y at %I:%M:%S%p %Z"
-#
-# Name: date_format
-# Type: string
-# Default: "!%a, %b %d, %Y at %I:%M:%S%p %Z"
-#
-#
-# This variable controls the format of the date printed by the ``%d''
-# sequence in ``$index_format''. This is passed to the strftime
-# call to process the date. See the man page for strftime(3) for
-# the proper syntax.
-#
-# Unless the first character in the string is a bang (``!''), the month
-# and week day names are expanded according to the locale specified in
-# the variable ``$locale''. If the first character in the string is a
-# bang, the bang is discarded, and the month and week day names in the
-# rest of the string are expanded in the C locale (that is in US
-# English).
-#
-#
-# set default_hook="~f %s !~P | (~P ~C %s)"
-#
-# Name: default_hook
-# Type: string
-# Default: "~f %s !~P | (~P ~C %s)"
-#
-#
-# This variable controls how send-hooks, message-hooks, save-hooks,
-# and fcc-hooks will
-# be interpreted if they are specified with only a simple regexp,
-# instead of a matching pattern. The hooks are expanded when they are
-# declared, so a hook will be interpreted according to the value of this
-# variable at the time the hook is declared. The default value matches
-# if the message is either from a user matching the regular expression
-# given, or if it is from you (if the from address matches
-# ``alternates'') and is to or cc'ed to a user matching the given
-# regular expression.
-#
-#
-# set delete=ask-yes
-#
-# Name: delete
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not messages are really deleted when closing or
-# synchronizing a mailbox. If set to yes, messages marked for
-# deleting will automatically be purged without prompting. If set to
-# no, messages marked for deletion will be kept in the mailbox.
-#
-#
-# set delete_untag=yes
-#
-# Name: delete_untag
-# Type: boolean
-# Default: yes
-#
-#
-# If this option is set, mutt will untag messages when marking them
-# for deletion. This applies when you either explicitly delete a message,
-# or when you save it to another folder.
-#
-#
-# set digest_collapse=yes
-#
-# Name: digest_collapse
-# Type: boolean
-# Default: yes
-#
-#
-# If this option is set, mutt's received-attachments menu will not show the subparts of
-# individual messages in a multipart/digest. To see these subparts, press 'v' on that menu.
-#
-#
-# set display_filter=""
-#
-# Name: display_filter
-# Type: path
-# Default: ""
-#
-#
-# When set, specifies a command used to filter messages. When a message
-# is viewed it is passed as standard input to $display_filter, and the
-# filtered message is read from the standard output.
-#
-#
-# set dotlock_program="/usr/local/bin/mutt_dotlock"
-#
-# Name: dotlock_program
-# Type: path
-# Default: "/usr/local/bin/mutt_dotlock"
-#
-#
-# Contains the path of the mutt_dotlock (8) binary to be used by
-# mutt.
-#
-#
-# set dsn_notify=""
-#
-# Name: dsn_notify
-# Type: string
-# Default: ""
-#
-#
-# Note: you should not enable this unless you are using Sendmail
-# 8.8.x or greater.
-#
-# This variable sets the request for when notification is returned. The
-# string consists of a comma separated list (no spaces!) of one or more
-# of the following: never, to never request notification,
-# failure, to request notification on transmission failure,
-# delay, to be notified of message delays, success, to be
-# notified of successful transmission.
-#
-# Example: set dsn_notify="failure,delay"
-#
-#
-# set dsn_return=""
-#
-# Name: dsn_return
-# Type: string
-# Default: ""
-#
-#
-# Note: you should not enable this unless you are using Sendmail
-# 8.8.x or greater.
-#
-# This variable controls how much of your message is returned in DSN
-# messages. It may be set to either hdrs to return just the
-# message header, or full to return the full message.
-#
-# Example: set dsn_return=hdrs
-#
-#
-# set duplicate_threads=yes
-#
-# Name: duplicate_threads
-# Type: boolean
-# Default: yes
-#
-#
-# This variable controls whether mutt, when sorting by threads, threads
-# messages with the same message-id together. If it is set, it will indicate
-# that it thinks they are duplicates of each other with an equals sign
-# in the thread diagram.
-#
-#
-# set edit_headers=no
-#
-# Name: edit_headers
-# Type: boolean
-# Default: no
-#
-#
-# This option allows you to edit the header of your outgoing messages
-# along with the body of your message.
-#
-#
-# set editor=""
-#
-# Name: editor
-# Type: path
-# Default: ""
-#
-#
-# This variable specifies which editor is used by mutt.
-# It defaults to the value of the VISUAL, or EDITOR, environment
-# variable, or to the string "vi" if neither of those are set.
-#
-#
-# set encode_from=no
-#
-# Name: encode_from
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will quoted-printable encode messages when
-# they contain the string "From " in the beginning of a line.
-# Useful to avoid the tampering certain mail delivery and transport
-# agents tend to do with messages.
-#
-#
-# set envelope_from=no
-#
-# Name: envelope_from
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will try to derive the message's envelope
-# sender from the "From:" header. Note that this information is passed
-# to sendmail command using the "-f" command line switch, so don't set this
-# option if you are using that switch in $sendmail yourself,
-# or if the sendmail on your machine doesn't support that command
-# line switch.
-#
-#
-# set escape="~"
-#
-# Name: escape
-# Type: string
-# Default: "~"
-#
-#
-# Escape character to use for functions in the builtin editor.
-#
-#
-# set fast_reply=no
-#
-# Name: fast_reply
-# Type: boolean
-# Default: no
-#
-#
-# When set, the initial prompt for recipients and subject are skipped
-# when replying to messages, and the initial prompt for subject is
-# skipped when forwarding messages.
-#
-# Note: this variable has no effect when the ``$autoedit''
-# variable is set.
-#
-#
-# set fcc_attach=yes
-#
-# Name: fcc_attach
-# Type: boolean
-# Default: yes
-#
-#
-# This variable controls whether or not attachments on outgoing messages
-# are saved along with the main body of your message.
-#
-#
-# set fcc_clear=no
-#
-# Name: fcc_clear
-# Type: boolean
-# Default: no
-#
-#
-# When this variable is set, FCCs will be stored unencrypted and
-# unsigned, even when the actual message is encrypted and/or
-# signed.
-# (PGP only)
-#
-#
-# set folder="~/Mail"
-#
-# Name: folder
-# Type: path
-# Default: "~/Mail"
-#
-#
-# Specifies the default location of your mailboxes. A `+' or `=' at the
-# beginning of a pathname will be expanded to the value of this
-# variable. Note that if you change this variable from the default
-# value you need to make sure that the assignment occurs before
-# you use `+' or `=' for any other variables since expansion takes place
-# during the `set' command.
-#
-#
-# set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
-#
-# Name: folder_format
-# Type: string
-# Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
-#
-#
-# This variable allows you to customize the file browser display to your
-# personal taste. This string is similar to ``$index_format'', but has
-# its own set of printf()-like sequences:
-#
-# %C current file number
-# %d date/time folder was last modified
-# %f filename
-# %F file permissions
-# %g group name (or numeric gid, if missing)
-# %l number of hard links
-# %N N if folder has new mail, blank otherwise
-# %s size in bytes
-# %t * if the file is tagged, blank otherwise
-# %u owner name (or numeric uid, if missing)
-# %>X right justify the rest of the string and pad with character "X"
-# %|X pad to the end of the line with character "X"
-#
-#
-# set followup_to=yes
-#
-# Name: followup_to
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether or not the Mail-Followup-To header field is
-# generated when sending mail. When set, Mutt will generate this
-# field when you are replying to a known mailing list, specified with
-# the ``subscribe'' or ``lists'' commands.
-#
-# This field has two purposes. First, preventing you from
-# receiving duplicate copies of replies to messages which you send
-# to mailing lists, and second, ensuring that you do get a reply
-# separately for any messages sent to known lists to which you are
-# not subscribed. The header will contain only the list's address
-# for subscribed lists, and both the list address and your own
-# email address for unsubscribed lists. Without this header, a
-# group reply to your message sent to a subscribed list will be
-# sent to both the list and your address, resulting in two copies
-# of the same email for you.
-#
-#
-# set followup_to_poster=ask-yes
-#
-# Name: followup_to_poster
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# If this variable is set and the keyword "poster" is present in
-# Followup-To header, follow-up to newsgroup function is not
-# permitted. The message will be mailed to the submitter of the
-# message via mail.
-#
-#
-# set force_name=no
-#
-# Name: force_name
-# Type: boolean
-# Default: no
-#
-#
-# This variable is similar to ``$save_name'', except that Mutt will
-# store a copy of your outgoing message by the username of the address
-# you are sending to even if that mailbox does not exist.
-#
-# Also see the ``$record'' variable.
-#
-#
-# set forward_decode=yes
-#
-# Name: forward_decode
-# Type: boolean
-# Default: yes
-#
-#
-# Controls the decoding of complex MIME messages into text/plain when
-# forwarding a message. The message header is also RFC2047 decoded.
-# This variable is only used, if ``$mime_forward'' is unset,
-# otherwise ``$mime_forward_decode'' is used instead.
-#
-#
-# set forward_edit=yes
-#
-# Name: forward_edit
-# Type: quadoption
-# Default: yes
-#
-#
-# This quadoption controls whether or not the user is automatically
-# placed in the editor when forwarding messages. For those who always want
-# to forward with no modification, use a setting of ``no''.
-#
-#
-# set forward_format="[%a: %s]"
-#
-# Name: forward_format
-# Type: string
-# Default: "[%a: %s]"
-#
-#
-# This variable controls the default subject when forwarding a message.
-# It uses the same format sequences as the ``$index_format'' variable.
-#
-#
-# set forward_quote=no
-#
-# Name: forward_quote
-# Type: boolean
-# Default: no
-#
-#
-# When set forwarded messages included in the main body of the
-# message (when ``$mime_forward'' is unset) will be quoted using
-# ``$indent_string''.
-#
-#
-# set from=""
-#
-# Name: from
-# Type: e-mail address
-# Default: ""
-#
-#
-# When set, this variable contains a default from address. It
-# can be overridden using my_hdr (including from send-hooks) and
-# ``$reverse_name''. This variable is ignored if ``$use_from''
-# is unset.
-#
-# Defaults to the contents of the environment variable EMAIL.
-#
-#
-# set gecos_mask="^[^,]*"
-#
-# Name: gecos_mask
-# Type: regular expression
-# Default: "^[^,]*"
-#
-#
-# A regular expression used by mutt to parse the GECOS field of a password
-# entry when expanding the alias. By default the regular expression is set
-# to "^[^,]*" which will return the string up to the first "," encountered.
-# If the GECOS field contains a string like "lastname, firstname" then you
-# should set the gecos_mask=".*".
-#
-# This can be useful if you see the following behavior: you address a e-mail
-# to user ID stevef whose full name is Steve Franklin. If mutt expands
-# stevef to "Franklin" stevef@foo.bar then you should set the gecos_mask to
-# a regular expression that will match the whole name so mutt will expand
-# "Franklin" to "Franklin, Steve".
-#
-#
-# set group_index_format="%4C %M%N %5s %-45.45f %d"
-#
-# Name: group_index_format
-# Type: string
-# Default: "%4C %M%N %5s %-45.45f %d"
-#
-#
-# This variable allows you to customize the newsgroup browser display to
-# your personal taste. This string is similar to ``index_format'', but
-# has its own set of printf()-like sequences:
-#
-# %C current newsgroup number
-# %d description of newsgroup (becomes from server)
-# %f newsgroup name
-# %M - if newsgroup not allowed for direct post (moderated for example)
-# %N N if newsgroup is new, u if unsubscribed, blank otherwise
-# %n number of new articles in newsgroup
-# %s number of unread articles in newsgroup
-# %>X right justify the rest of the string and pad with character "X"
-# %|X pad to the end of the line with character "X"
-#
-#
-# set hdrs=yes
-#
-# Name: hdrs
-# Type: boolean
-# Default: yes
-#
-#
-# When unset, the header fields normally added by the ``my_hdr''
-# command are not created. This variable must be unset before
-# composing a new message or replying in order to take effect. If set,
-# the user defined header fields are added to every new message.
-#
-#
-# set header=no
-#
-# Name: header
-# Type: boolean
-# Default: no
-#
-#
-# When set, this variable causes Mutt to include the header
-# of the message you are replying to into the edit buffer.
-# The ``$weed'' setting applies.
-#
-#
-# set help=yes
-#
-# Name: help
-# Type: boolean
-# Default: yes
-#
-#
-# When set, help lines describing the bindings for the major functions
-# provided by each menu are displayed on the first line of the screen.
-#
-# Note: The binding will not be displayed correctly if the
-# function is bound to a sequence rather than a single keystroke. Also,
-# the help line may not be updated if a binding is changed while Mutt is
-# running. Since this variable is primarily aimed at new users, neither
-# of these should present a major problem.
-#
-#
-# set hidden_host=no
-#
-# Name: hidden_host
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will skip the host name part of ``$hostname'' variable
-# when adding the domain part to addresses. This variable does not
-# affect the generation of Message-IDs, and it will not lead to the
-# cut-off of first-level domains.
-#
-#
-# set hide_limited=no
-#
-# Name: hide_limited
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will not show the presence of messages that are hidden
-# by limiting, in the thread tree.
-#
-#
-# set hide_missing=yes
-#
-# Name: hide_missing
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will not show the presence of missing messages in the
-# thread tree.
-#
-#
-# set hide_thread_subject=yes
-#
-# Name: hide_thread_subject
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will not show the subject of messages in the thread
-# tree that have the same subject as their parent or closest previously
-# displayed sibling.
-#
-#
-# set hide_top_limited=no
-#
-# Name: hide_top_limited
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will not show the presence of messages that are hidden
-# by limiting, at the top of threads in the thread tree. Note that when
-# $hide_missing is set, this option will have no effect.
-#
-#
-# set hide_top_missing=yes
-#
-# Name: hide_top_missing
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will not show the presence of missing messages at the
-# top of threads in the thread tree. Note that when $hide_limited is
-# set, this option will have no effect.
-#
-#
-# set history=10
-#
-# Name: history
-# Type: number
-# Default: 10
-#
-#
-# This variable controls the size (in number of strings remembered) of
-# the string history buffer. The buffer is cleared each time the
-# variable is set.
-#
-#
-# set honor_followup_to=yes
-#
-# Name: honor_followup_to
-# Type: quadoption
-# Default: yes
-#
-#
-# This variable controls whether or not a Mail-Followup-To header is
-# honored when group-replying to a message.
-#
-#
-# set hostname=""
-#
-# Name: hostname
-# Type: string
-# Default: ""
-#
-#
-# Specifies the hostname to use after the ``@'' in local e-mail
-# addresses. This overrides the compile time definition obtained from
-# /etc/resolv.conf.
-#
-#
-# set ignore_list_reply_to=no
-#
-# Name: ignore_list_reply_to
-# Type: boolean
-# Default: no
-#
-#
-# Affects the behaviour of the reply function when replying to
-# messages from mailing lists. When set, if the ``Reply-To:'' field is
-# set to the same value as the ``To:'' field, Mutt assumes that the
-# ``Reply-To:'' field was set by the mailing list to automate responses
-# to the list, and will ignore this field. To direct a response to the
-# mailing list when this option is set, use the list-reply
-# function; group-reply will reply to both the sender and the
-# list.
-#
-#
-# set imap_authenticators=""
-#
-# Name: imap_authenticators
-# Type: string
-# Default: ""
-#
-#
-# This is a colon-delimited list of authentication methods mutt may
-# attempt to use to log in to an IMAP server, in the order mutt should
-# try them. Authentication methods are either 'login' or the right
-# side of an IMAP 'AUTH=xxx' capability string, eg 'digest-md5', 'gssapi'
-# or 'cram-md5'. This parameter is case-insensitive. If this
-# parameter is unset (the default) mutt will try all available methods,
-# in order from most-secure to least-secure.
-#
-# Example: set imap_authenticators="gssapi:cram-md5:login"
-#
-# Note: Mutt will only fall back to other authentication methods if
-# the previous methods are unavailable. If a method is available but
-# authentication fails, mutt will not connect to the IMAP server.
-#
-#
-# set imap_delim_chars="/."
-#
-# Name: imap_delim_chars
-# Type: string
-# Default: "/."
-#
-#
-# This contains the list of characters which you would like to treat
-# as folder separators for displaying IMAP paths. In particular it
-# helps in using the '=' shortcut for your folder variable.
-#
-#
-# set imap_force_ssl=no
-#
-# Name: imap_force_ssl
-# Type: boolean
-# Default: no
-#
-#
-# If this variable is set, Mutt will always use SSL when
-# connecting to IMAP servers.
-#
-#
-# set imap_headers=""
-#
-# Name: imap_headers
-# Type: string
-# Default: ""
-#
-#
-# Mutt requests these header fields in addition to the default headers
-# ("DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE
-# CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES X-LABEL") from IMAP
-# servers before displaying the index menu. You may want to add more
-# headers for spam detection. Note: This is a space separated list.
-#
-#
-# set imap_home_namespace=""
-#
-# Name: imap_home_namespace
-# Type: string
-# Default: ""
-#
-#
-# You normally want to see your personal folders alongside
-# your INBOX in the IMAP browser. If you see something else, you may set
-# this variable to the IMAP path to your folders.
-#
-#
-# set imap_keepalive=900
-#
-# Name: imap_keepalive
-# Type: number
-# Default: 900
-#
-#
-# This variable specifies the maximum amount of time in seconds that mutt
-# will wait before polling open IMAP connections, to prevent the server
-# from closing them before mutt has finished with them. The default is
-# well within the RFC-specified minimum amount of time (30 minutes) before
-# a server is allowed to do this, but in practice the RFC does get
-# violated every now and then. Reduce this number if you find yourself
-# getting disconnected from your IMAP server due to inactivity.
-#
-#
-# set imap_list_subscribed=no
-#
-# Name: imap_list_subscribed
-# Type: boolean
-# Default: no
-#
-#
-# This variable configures whether IMAP folder browsing will look for
-# only subscribed folders or all folders. This can be toggled in the
-# IMAP browser with the toggle-subscribed function.
-#
-#
-# set imap_pass=""
-#
-# Name: imap_pass
-# Type: string
-# Default: ""
-#
-#
-# Specifies the password for your IMAP account. If unset, Mutt will
-# prompt you for your password when you invoke the fetch-mail function.
-# Warning: you should only use this option when you are on a
-# fairly secure machine, because the superuser can read your muttrc even
-# if you are the only one who can read the file.
-#
-#
-# set imap_passive=yes
-#
-# Name: imap_passive
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will not open new IMAP connections to check for new
-# mail. Mutt will only check for new mail over existing IMAP
-# connections. This is useful if you don't want to be prompted to
-# user/password pairs on mutt invocation, or if opening the connection
-# is slow.
-#
-#
-# set imap_peek=yes
-#
-# Name: imap_peek
-# Type: boolean
-# Default: yes
-#
-#
-# If set, mutt will avoid implicitly marking your mail as read whenever
-# you fetch a message from the server. This is generally a good thing,
-# but can make closing an IMAP folder somewhat slower. This option
-# exists to appease speed freaks.
-#
-#
-# set imap_servernoise=yes
-#
-# Name: imap_servernoise
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will display warning messages from the IMAP
-# server as error messages. Since these messages are often
-# harmless, or generated due to configuration problems on the
-# server which are out of the users' hands, you may wish to suppress
-# them at some point.
-#
-#
-# set imap_user=""
-#
-# Name: imap_user
-# Type: string
-# Default: ""
-#
-#
-# Your login name on the IMAP server.
-#
-# This variable defaults to your user name on the local machine.
-#
-#
-# set implicit_autoview=no
-#
-# Name: implicit_autoview
-# Type: boolean
-# Default: no
-#
-#
-# If set to ``yes'', mutt will look for a mailcap entry with the
-# copiousoutput flag set for every MIME attachment it doesn't have
-# an internal viewer defined for. If such an entry is found, mutt will
-# use the viewer defined in that entry to convert the body part to text
-# form.
-#
-#
-# set include=ask-yes
-#
-# Name: include
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not a copy of the message(s) you are replying to
-# is included in your reply.
-#
-#
-# set include_onlyfirst=no
-#
-# Name: include_onlyfirst
-# Type: boolean
-# Default: no
-#
-#
-# Controls whether or not Mutt includes only the first attachment
-# of the message you are replying.
-#
-#
-# set indent_string="> "
-#
-# Name: indent_string
-# Type: string
-# Default: "> "
-#
-#
-# Specifies the string to prepend to each line of text quoted in a
-# message to which you are replying. You are strongly encouraged not to
-# change this value, as it tends to agitate the more fanatical netizens.
-#
-#
-# set index_format="%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s"
-#
-# Name: index_format
-# Type: string
-# Default: "%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s"
-#
-#
-# This variable allows you to customize the message index display to
-# your personal taste.
-#
-# ``Format strings'' are similar to the strings used in the ``C''
-# function printf to format output (see the man page for more detail).
-# The following sequences are defined in Mutt:
-#
-# %a address of the author
-# %A reply-to address (if present; otherwise: address of author)
-# %b filename of the original message folder (think mailBox)
-# %B the list to which the letter was sent, or else the folder name (%b).
-# %c number of characters (bytes) in the message
-# %C current message number
-# %d date and time of the message in the format specified by
-# ``date_format'' converted to sender's time zone
-# %D date and time of the message in the format specified by
-# ``date_format'' converted to the local time zone
-# %e current message number in thread
-# %E number of messages in current thread
-# %f entire From: line (address + real name)
-# %F author name, or recipient name if the message is from you
-# %g newsgroup name (if compiled with nntp support)
-# %i message-id of the current message
-# %l number of lines in the message (does not work with maildir,
-# mh, and possibly IMAP folders)
-# %L If an address in the To or CC header field matches an address
-# defined by the users ``subscribe'' command, this displays
-# "To <list-name>", otherwise the same as %F.
-# %m total number of message in the mailbox
-# %M number of hidden messages if the thread is collapsed.
-# %N message score
-# %n author's real name (or address if missing)
-# %O (_O_riginal save folder) Where mutt would formerly have
-# stashed the message: list name or recipient name if no list
-# %s subject of the message
-# %S status of the message (N/D/d/!/r/*)
-# %t `to:' field (recipients)
-# %T the appropriate character from the $to_chars string
-# %u user (login) name of the author
-# %v first name of the author, or the recipient if the message is from you
-# %W name of organization of author (`organization:' field)
-# %y `x-label:' field, if present
-# %Y `x-label' field, if present, and (1) not at part of a thread tree,
-# (2) at the top of a thread, or (3) `x-label' is different from
-# preceding message's `x-label'.
-# %Z message status flags
-# %{fmt} the date and time of the message is converted to sender's
-# time zone, and ``fmt'' is expanded by the library function
-# ``strftime''; a leading bang disables locales
-# %[fmt] the date and time of the message is converted to the local
-# time zone, and ``fmt'' is expanded by the library function
-# ``strftime''; a leading bang disables locales
-# %(fmt) the local date and time when the message was received.
-# ``fmt'' is expanded by the library function ``strftime'';
-# a leading bang disables locales
-# %<fmt> the current local time. ``fmt'' is expanded by the library
-# function ``strftime''; a leading bang disables locales.
-# %>X right justify the rest of the string and pad with character "X"
-# %|X pad to the end of the line with character "X"
-#
-#
-# See also: ``$to_chars''.
-#
-#
-# set inews=""
-#
-# Name: inews
-# Type: path
-# Default: ""
-#
-#
-# If set, specifies the program and arguments used to deliver news posted
-# by Mutt. Otherwise, mutt posts article using current connection to
-# news server. The following printf-style sequence is understood:
-#
-# %s newsserver name
-#
-# Example: set inews="/usr/local/bin/inews -hS"
-#
-#
-# set ispell="/usr/bin/ispell"
-#
-# Name: ispell
-# Type: path
-# Default: "/usr/bin/ispell"
-#
-#
-# How to invoke ispell (GNU's spell-checking software).
-#
-#
-# set keep_flagged=no
-#
-# Name: keep_flagged
-# Type: boolean
-# Default: no
-#
-#
-# If set, read messages marked as flagged will not be moved
-# from your spool mailbox to your ``$mbox'' mailbox, or as a result of
-# a ``mbox-hook'' command.
-#
-#
-# set locale="C"
-#
-# Name: locale
-# Type: string
-# Default: "C"
-#
-#
-# The locale used by strftime(3) to format dates. Legal values are
-# the strings your system accepts for the locale variable LC_TIME.
-#
-#
-# set mail_check=5
-#
-# Name: mail_check
-# Type: number
-# Default: 5
-#
-#
-# This variable configures how often (in seconds) mutt should look for
-# new mail.
-#
-#
-# set mailcap_path=""
-#
-# Name: mailcap_path
-# Type: string
-# Default: ""
-#
-#
-# This variable specifies which files to consult when attempting to
-# display MIME bodies not directly supported by Mutt.
-#
-#
-# set mailcap_sanitize=yes
-#
-# Name: mailcap_sanitize
-# Type: boolean
-# Default: yes
-#
-#
-# If set, mutt will restrict possible characters in mailcap % expandos
-# to a well-defined set of safe characters. This is the safe setting,
-# but we are not sure it doesn't break some more advanced MIME stuff.
-#
-# DON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE
-# DOING!
-#
-#
-# set maildir_trash=no
-#
-# Name: maildir_trash
-# Type: boolean
-# Default: no
-#
-#
-# If set, messages marked as deleted will be saved with the maildir
-# (T)rashed flag instead of unlinked. NOTE: this only applies
-# to maildir-style mailboxes. Setting it will have no effect on other
-# mailbox types.
-#
-#
-# set mark_old=yes
-#
-# Name: mark_old
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether or not mutt marks new unread
-# messages as old if you exit a mailbox without reading them.
-# With this option set, the next time you start mutt, the messages
-# will show up with an "O" next to them in the index menu,
-# indicating that they are old.
-#
-#
-# set markers=yes
-#
-# Name: markers
-# Type: boolean
-# Default: yes
-#
-#
-# Controls the display of wrapped lines in the internal pager. If set, a
-# ``+'' marker is displayed at the beginning of wrapped lines. Also see
-# the ``$smart_wrap'' variable.
-#
-#
-# set mask="!^\\.[^.]"
-#
-# Name: mask
-# Type: regular expression
-# Default: "!^\\.[^.]"
-#
-#
-# A regular expression used in the file browser, optionally preceded by
-# the not operator ``!''. Only files whose names match this mask
-# will be shown. The match is always case-sensitive.
-#
-#
-# set mbox="~/mbox"
-#
-# Name: mbox
-# Type: path
-# Default: "~/mbox"
-#
-#
-# This specifies the folder into which read mail in your ``$spoolfile''
-# folder will be appended.
-#
-#
-# set sidebar_visible=no
-#
-# Name: sidebar_visible
-# Type: boolean
-# Default: no
-#
-#
-# This specifies whether or not to show the mailbox list pane.
-#
-#
-# set sidebar_width=0
-#
-# Name: sidebar_width
-# Type: number
-# Default: 0
-#
-#
-# The width of the mailbox list pane (left sidebar like in GUIs).
-#
-#
-# set mbox_type=mbox
-#
-# Name: mbox_type
-# Type: folder magic
-# Default: mbox
-#
-#
-# The default mailbox type used when creating new folders. May be any of
-# mbox, MMDF, MH and Maildir.
-#
-#
-# set metoo=no
-#
-# Name: metoo
-# Type: boolean
-# Default: no
-#
-#
-# If unset, Mutt will remove your address (see the ``alternates''
-# command) from the list of recipients when replying to a message.
-#
-#
-# set menu_context=0
-#
-# Name: menu_context
-# Type: number
-# Default: 0
-#
-#
-# This variable controls the number of lines of context that are given
-# when scrolling through menus. (Similar to ``$pager_context''.)
-#
-#
-# set menu_scroll=no
-#
-# Name: menu_scroll
-# Type: boolean
-# Default: no
-#
-#
-# When set, menus will be scrolled up or down one line when you
-# attempt to move across a screen boundary. If unset, the screen
-# is cleared and the next or previous page of the menu is displayed
-# (useful for slow links to avoid many redraws).
-#
-#
-# set meta_key=no
-#
-# Name: meta_key
-# Type: boolean
-# Default: no
-#
-#
-# If set, forces Mutt to interpret keystrokes with the high bit (bit 8)
-# set as if the user had pressed the ESC key and whatever key remains
-# after having the high bit removed. For example, if the key pressed
-# has an ASCII value of 0xf4, then this is treated as if the user had
-# pressed ESC then ``x''. This is because the result of removing the
-# high bit from ``0xf4'' is ``0x74'', which is the ASCII character
-# ``x''.
-#
-#
-# set mh_purge=no
-#
-# Name: mh_purge
-# Type: boolean
-# Default: no
-#
-#
-# When unset, mutt will mimic mh's behaviour and rename deleted messages
-# to ,<old file name> in mh folders instead of really deleting
-# them. If the variable is set, the message files will simply be
-# deleted.
-#
-#
-# set mh_seq_flagged="flagged"
-#
-# Name: mh_seq_flagged
-# Type: string
-# Default: "flagged"
-#
-#
-# The name of the MH sequence used for flagged messages.
-#
-#
-# set mh_seq_replied="replied"
-#
-# Name: mh_seq_replied
-# Type: string
-# Default: "replied"
-#
-#
-# The name of the MH sequence used to tag replied messages.
-#
-#
-# set mh_seq_unseen="unseen"
-#
-# Name: mh_seq_unseen
-# Type: string
-# Default: "unseen"
-#
-#
-# The name of the MH sequence used for unseen messages.
-#
-#
-# set mime_forward=no
-#
-# Name: mime_forward
-# Type: quadoption
-# Default: no
-#
-#
-# When set, the message you are forwarding will be attached as a
-# separate MIME part instead of included in the main body of the
-# message. This is useful for forwarding MIME messages so the receiver
-# can properly view the message as it was delivered to you. If you like
-# to switch between MIME and not MIME from mail to mail, set this
-# variable to ask-no or ask-yes.
-#
-# Also see ``$forward_decode'' and ``$mime_forward_decode''.
-#
-#
-# set mime_forward_decode=no
-#
-# Name: mime_forward_decode
-# Type: boolean
-# Default: no
-#
-#
-# Controls the decoding of complex MIME messages into text/plain when
-# forwarding a message while ``$mime_forward'' is set. Otherwise
-# ``$forward_decode'' is used instead.
-#
-#
-# set mime_forward_rest=yes
-#
-# Name: mime_forward_rest
-# Type: quadoption
-# Default: yes
-#
-#
-# When forwarding multiple attachments of a MIME message from the recvattach
-# menu, attachments which cannot be decoded in a reasonable manner will
-# be attached to the newly composed message if this option is set.
-#
-#
-# set mime_subject=yes
-#
-# Name: mime_subject
-# Type: boolean
-# Default: yes
-#
-#
-# If unset, 8-bit ``subject:'' line in article header will not be
-# encoded according to RFC2047 to base64. This is useful when message
-# is Usenet article, because MIME for news is nonstandard feature.
-#
-#
-# set mix_entry_format="%4n %c %-16s %a"
-#
-# Name: mix_entry_format
-# Type: string
-# Default: "%4n %c %-16s %a"
-#
-#
-# This variable describes the format of a remailer line on the mixmaster
-# chain selection screen. The following printf-like sequences are
-# supported:
-#
-# %n The running number on the menu.
-# %c Remailer capabilities.
-# %s The remailer's short name.
-# %a The remailer's e-mail address.
-#
-#
-# set mixmaster="mixmaster"
-#
-# Name: mixmaster
-# Type: path
-# Default: "mixmaster"
-#
-#
-# This variable contains the path to the Mixmaster binary on your
-# system. It is used with various sets of parameters to gather the
-# list of known remailers, and to finally send a message through the
-# mixmaster chain.
-#
-#
-# set move=ask-no
-#
-# Name: move
-# Type: quadoption
-# Default: ask-no
-#
-#
-# Controls whether or not Mutt will move read messages
-# from your spool mailbox to your ``$mbox'' mailbox, or as a result of
-# a ``mbox-hook'' command.
-#
-#
-# set message_format="%s"
-#
-# Name: message_format
-# Type: string
-# Default: "%s"
-#
-#
-# This is the string displayed in the ``attachment'' menu for
-# attachments of type message/rfc822. For a full listing of defined
-# printf()-like sequences see the section on ``$index_format''.
-#
-#
-# set narrow_tree=no
-#
-# Name: narrow_tree
-# Type: boolean
-# Default: no
-#
-#
-# This variable, when set, makes the thread tree narrower, allowing
-# deeper threads to fit on the screen.
-#
-#
-# set news_cache_dir="~/.mutt"
-#
-# Name: news_cache_dir
-# Type: path
-# Default: "~/.mutt"
-#
-#
-# This variable pointing to directory where Mutt will save cached news
-# articles headers in. If unset, headers will not be saved at all
-# and will be reloaded each time when you enter to newsgroup.
-#
-#
-# set news_server=""
-#
-# Name: news_server
-# Type: string
-# Default: ""
-#
-#
-# This variable specifies domain name or address of NNTP server. It
-# defaults to the newsserver specified in the environment variable
-# $NNTPSERVER or contained in the file /etc/nntpserver. You can also
-# specify username and an alternative port for each newsserver, ie:
-#
-# [nntp[s]://][username[:password]@]newsserver[:port]
-#
-#
-# set newsrc="~/.newsrc"
-#
-# Name: newsrc
-# Type: path
-# Default: "~/.newsrc"
-#
-#
-# The file, containing info about subscribed newsgroups - names and
-# indexes of read articles. The following printf-style sequence
-# is understood:
-#
-# %s newsserver name
-#
-#
-# set nntp_context=1000
-#
-# Name: nntp_context
-# Type: number
-# Default: 1000
-#
-#
-# This variable defines number of articles which will be in index when
-# newsgroup entered. If active newsgroup have more articles than this
-# number, oldest articles will be ignored. Also controls how many
-# articles headers will be saved in cache when you quit newsgroup.
-#
-#
-# set nntp_load_description=yes
-#
-# Name: nntp_load_description
-# Type: boolean
-# Default: yes
-#
-#
-# This variable controls whether or not descriptions for each newsgroup
-# must be loaded when newsgroup is added to list (first time list
-# loading or new newsgroup adding).
-#
-#
-# set nntp_user=""
-#
-# Name: nntp_user
-# Type: string
-# Default: ""
-#
-#
-# Your login name on the NNTP server. If unset and NNTP server requires
-# authentification, Mutt will prompt you for your account name when you
-# connect to newsserver.
-#
-#
-# set nntp_pass=""
-#
-# Name: nntp_pass
-# Type: string
-# Default: ""
-#
-#
-# Your password for NNTP account.
-#
-#
-# set nntp_poll=60
-#
-# Name: nntp_poll
-# Type: number
-# Default: 60
-#
-#
-# The time in seconds until any operations on newsgroup except post new
-# article will cause recheck for new news. If set to 0, Mutt will
-# recheck newsgroup on each operation in index (stepping, read article,
-# etc.).
-#
-#
-# set nntp_reconnect=ask-yes
-#
-# Name: nntp_reconnect
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not Mutt will try to reconnect to newsserver when
-# connection lost.
-#
-#
-# set pager="builtin"
-#
-# Name: pager
-# Type: path
-# Default: "builtin"
-#
-#
-# This variable specifies which pager you would like to use to view
-# messages. builtin means to use the builtin pager, otherwise this
-# variable should specify the pathname of the external pager you would
-# like to use.
-#
-# Using an external pager may have some disadvantages: Additional
-# keystrokes are necessary because you can't call mutt functions
-# directly from the pager, and screen resizes cause lines longer than
-# the screen width to be badly formatted in the help menu.
-#
-#
-# set pager_context=0
-#
-# Name: pager_context
-# Type: number
-# Default: 0
-#
-#
-# This variable controls the number of lines of context that are given
-# when displaying the next or previous page in the internal pager. By
-# default, Mutt will display the line after the last one on the screen
-# at the top of the next page (0 lines of context).
-#
-#
-# set pager_format="-%Z- %C/%m: %-20.20n %s"
-#
-# Name: pager_format
-# Type: string
-# Default: "-%Z- %C/%m: %-20.20n %s"
-#
-#
-# This variable controls the format of the one-line message ``status''
-# displayed before each message in either the internal or an external
-# pager. The valid sequences are listed in the ``$index_format''
-# section.
-#
-#
-# set pager_index_lines=0
-#
-# Name: pager_index_lines
-# Type: number
-# Default: 0
-#
-#
-# Determines the number of lines of a mini-index which is shown when in
-# the pager. The current message, unless near the top or bottom of the
-# folder, will be roughly one third of the way down this mini-index,
-# giving the reader the context of a few messages before and after the
-# message. This is useful, for example, to determine how many messages
-# remain to be read in the current thread. One of the lines is reserved
-# for the status bar from the index, so a pager_index_lines of 6
-# will only show 5 lines of the actual index. A value of 0 results in
-# no index being shown. If the number of messages in the current folder
-# is less than pager_index_lines, then the index will only use as
-# many lines as it needs.
-#
-#
-# set pager_stop=no
-#
-# Name: pager_stop
-# Type: boolean
-# Default: no
-#
-#
-# When set, the internal-pager will not move to the next message
-# when you are at the end of a message and invoke the next-page
-# function.
-#
-#
-# set crypt_autosign=no
-#
-# Name: crypt_autosign
-# Type: boolean
-# Default: no
-#
-#
-# Setting this variable will cause Mutt to always attempt to
-# cryptographically sign outgoing messages. This can be overridden
-# by use of the pgp-menu, when signing is not required or
-# encryption is requested as well. If ``$smime_is_default'' is set,
-# then OpenSSL is used instead to create S/MIME messages and settings can
-# be overridden by use of the smime-menu.
-# (Crypto only)
-#
-#
-# set crypt_autoencrypt=no
-#
-# Name: crypt_autoencrypt
-# Type: boolean
-# Default: no
-#
-#
-# Setting this variable will cause Mutt to always attempt to PGP
-# encrypt outgoing messages. This is probably only useful in
-# connection to the send-hook command. It can be overridden
-# by use of the pgp-menu, when encryption is not required or
-# signing is requested as well. IF ``$smime_is_default'' is set,
-# then OpenSSL is used instead to create S/MIME messages and
-# settings can be overridden by use of the smime-menu.
-# (Crypto only)
-#
-#
-# set pgp_ignore_subkeys=yes
-#
-# Name: pgp_ignore_subkeys
-# Type: boolean
-# Default: yes
-#
-#
-# Setting this variable will cause Mutt to ignore OpenPGP subkeys. Instead,
-# the principal key will inherit the subkeys' capabilities. Unset this
-# if you want to play interesting key selection games.
-# (PGP only)
-#
-#
-# set crypt_replyencrypt=yes
-#
-# Name: crypt_replyencrypt
-# Type: boolean
-# Default: yes
-#
-#
-# If set, automatically PGP or OpenSSL encrypt replies to messages which are
-# encrypted.
-# (Crypto only)
-#
-#
-# set crypt_replysign=no
-#
-# Name: crypt_replysign
-# Type: boolean
-# Default: no
-#
-#
-# If set, automatically PGP or OpenSSL sign replies to messages which are
-# signed.
-#
-# Note: this does not work on messages that are encrypted
-# and signed!
-# (Crypto only)
-#
-#
-# set crypt_replysignencrypted=no
-#
-# Name: crypt_replysignencrypted
-# Type: boolean
-# Default: no
-#
-#
-# If set, automatically PGP or OpenSSL sign replies to messages
-# which are encrypted. This makes sense in combination with
-# ``$crypt_replyencrypt'', because it allows you to sign all
-# messages which are automatically encrypted. This works around
-# the problem noted in ``$crypt_replysign'', that mutt is not able
-# to find out whether an encrypted message is also signed.
-# (Crypto only)
-#
-#
-# set crypt_timestamp=yes
-#
-# Name: crypt_timestamp
-# Type: boolean
-# Default: yes
-#
-#
-# If set, mutt will include a time stamp in the lines surrounding
-# PGP or S/MIME output, so spoofing such lines is more difficult.
-# If you are using colors to mark these lines, and rely on these,
-# you may unset this setting.
-# (Crypto only)
-#
-#
-# set pgp_use_gpg_agent=no
-#
-# Name: pgp_use_gpg_agent
-# Type: boolean
-# Default: no
-#
-#
-# If set, mutt will use a possibly-running gpg-agent process.
-# (PGP only)
-#
-#
-# set crypt_verify_sig=yes
-#
-# Name: crypt_verify_sig
-# Type: quadoption
-# Default: yes
-#
-#
-# If ``yes'', always attempt to verify PGP or S/MIME signatures.
-# If ``ask'', ask whether or not to verify the signature.
-# If ``no'', never attempt to verify cryptographic signatures.
-# (Crypto only)
-#
-#
-# set smime_is_default=no
-#
-# Name: smime_is_default
-# Type: boolean
-# Default: no
-#
-#
-# The default behaviour of mutt is to use PGP on all auto-sign/encryption
-# operations. To override and to use OpenSSL instead this must be set.
-# However, this has no effect while replying, since mutt will automatically
-# select the same application that was used to sign/encrypt the original
-# message. (Note that this variable can be overridden by unsetting $crypt_autosmime.)
-# (S/MIME only)
-#
-#
-# set smime_ask_cert_label=yes
-#
-# Name: smime_ask_cert_label
-# Type: boolean
-# Default: yes
-#
-#
-# This flag controls whether you want to be asked to enter a label
-# for a certificate about to be added to the database or not. It is
-# set by default.
-# (S/MIME only)
-#
-#
-# set smime_decrypt_use_default_key=yes
-#
-# Name: smime_decrypt_use_default_key
-# Type: boolean
-# Default: yes
-#
-#
-# If set (default) this tells mutt to use the default key for decryption. Otherwise,
-# if manage multiple certificate-key-pairs, mutt will try to use the mailbox-address
-# to determine the key to use. It will ask you to supply a key, if it can't find one.
-# (S/MIME only)
-#
-#
-# set pgp_entry_format="%4n %t%f %4l/0x%k %-4a %2c %u"
-#
-# Name: pgp_entry_format
-# Type: string
-# Default: "%4n %t%f %4l/0x%k %-4a %2c %u"
-#
-#
-# This variable allows you to customize the PGP key selection menu to
-# your personal taste. This string is similar to ``$index_format'', but
-# has its own set of printf()-like sequences:
-#
-# %n number
-# %k key id
-# %u user id
-# %a algorithm
-# %l key length
-# %f flags
-# %c capabilities
-# %t trust/validity of the key-uid association
-# %[<s>] date of the key where <s> is an strftime(3) expression
-#
-#
-# (PGP only)
-#
-#
-# set pgp_good_sign=""
-#
-# Name: pgp_good_sign
-# Type: regular expression
-# Default: ""
-#
-#
-# If you assign a text to this variable, then a PGP signature is only
-# considered verified if the output from $pgp_verify_command contains
-# the text. Use this variable if the exit code from the command is 0
-# even for bad signatures.
-# (PGP only)
-#
-#
-# set pgp_check_exit=yes
-#
-# Name: pgp_check_exit
-# Type: boolean
-# Default: yes
-#
-#
-# If set, mutt will check the exit code of the PGP subprocess when
-# signing or encrypting. A non-zero exit code means that the
-# subprocess failed.
-# (PGP only)
-#
-#
-# set pgp_long_ids=no
-#
-# Name: pgp_long_ids
-# Type: boolean
-# Default: no
-#
-#
-# If set, use 64 bit PGP key IDs. Unset uses the normal 32 bit Key IDs.
-# (PGP only)
-#
-#
-# set pgp_retainable_sigs=no
-#
-# Name: pgp_retainable_sigs
-# Type: boolean
-# Default: no
-#
-#
-# If set, signed and encrypted messages will consist of nested
-# multipart/signed and multipart/encrypted body parts.
-#
-# This is useful for applications like encrypted and signed mailing
-# lists, where the outer layer (multipart/encrypted) can be easily
-# removed, while the inner multipart/signed part is retained.
-# (PGP only)
-#
-#
-# set pgp_autoinline=no
-#
-# Name: pgp_autoinline
-# Type: boolean
-# Default: no
-#
-#
-# This option controls whether Mutt generates old-style inline
-# (traditional) PGP encrypted or signed messages under certain
-# circumstances. This can be overridden by use of the pgp-menu,
-# when inline is not required.
-#
-# Note that Mutt might automatically use PGP/MIME for messages
-# which consist of more than a single MIME part. Mutt can be
-# configured to ask before sending PGP/MIME messages when inline
-# (traditional) would not work.
-# See also: ``$pgp_mime_auto''.
-#
-# Also note that using the old-style PGP message format is strongly
-# deprecated.
-# (PGP only)
-#
-#
-# set pgp_replyinline=no
-#
-# Name: pgp_replyinline
-# Type: boolean
-# Default: no
-#
-#
-# Setting this variable will cause Mutt to always attempt to
-# create an inline (traditional) message when replying to a
-# message which is PGP encrypted/signed inline. This can be
-# overridden by use of the pgp-menu, when inline is not
-# required. This option does not automatically detect if the
-# (replied-to) message is inline; instead it relies on Mutt
-# internals for previously checked/flagged messages.
-#
-# Note that Mutt might automatically use PGP/MIME for messages
-# which consist of more than a single MIME part. Mutt can be
-# configured to ask before sending PGP/MIME messages when inline
-# (traditional) would not work.
-# See also: ``$pgp_mime_auto''.
-#
-# Also note that using the old-style PGP message format is strongly
-# deprecated.
-# (PGP only)
-#
-#
-# set pgp_show_unusable=yes
-#
-# Name: pgp_show_unusable
-# Type: boolean
-# Default: yes
-#
-#
-# If set, mutt will display non-usable keys on the PGP key selection
-# menu. This includes keys which have been revoked, have expired, or
-# have been marked as ``disabled'' by the user.
-# (PGP only)
-#
-#
-# set pgp_sign_as=""
-#
-# Name: pgp_sign_as
-# Type: string
-# Default: ""
-#
-#
-# If you have more than one key pair, this option allows you to specify
-# which of your private keys to use. It is recommended that you use the
-# keyid form to specify your key (e.g., ``0x00112233'').
-# (PGP only)
-#
-#
-# set pgp_strict_enc=yes
-#
-# Name: pgp_strict_enc
-# Type: boolean
-# Default: yes
-#
-#
-# If set, Mutt will automatically encode PGP/MIME signed messages as
-# quoted-printable. Please note that unsetting this variable may
-# lead to problems with non-verifyable PGP signatures, so only change
-# this if you know what you are doing.
-# (PGP only)
-#
-#
-# set pgp_timeout=300
-#
-# Name: pgp_timeout
-# Type: number
-# Default: 300
-#
-#
-# The number of seconds after which a cached passphrase will expire if
-# not used.
-# (PGP only)
-#
-#
-# set pgp_sort_keys=address
-#
-# Name: pgp_sort_keys
-# Type: sort order
-# Default: address
-#
-#
-# Specifies how the entries in the `pgp keys' menu are sorted. The
-# following are legal values:
-#
-# address sort alphabetically by user id
-# keyid sort alphabetically by key id
-# date sort by key creation date
-# trust sort by the trust of the key
-#
-#
-# If you prefer reverse order of the above values, prefix it with
-# `reverse-'.
-# (PGP only)
-#
-#
-# set pgp_mime_auto=ask-yes
-#
-# Name: pgp_mime_auto
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# This option controls whether Mutt will prompt you for
-# automatically sending a (signed/encrypted) message using
-# PGP/MIME when inline (traditional) fails (for any reason).
-#
-# Also note that using the old-style PGP message format is strongly
-# deprecated.
-# (PGP only)
-#
-#
-# set pgp_auto_decode=no
-#
-# Name: pgp_auto_decode
-# Type: boolean
-# Default: no
-#
-#
-# If set, mutt will automatically attempt to decrypt traditional PGP
-# messages whenever the user performs an operation which ordinarily would
-# result in the contents of the message being operated on. For example,
-# if the user displays a pgp-traditional message which has not been manually
-# checked with the check-traditional-pgp function, mutt will automatically
-# check the message for traditional pgp.
-#
-#
-# set pgp_decode_command=""
-#
-# Name: pgp_decode_command
-# Type: string
-# Default: ""
-#
-#
-# This format strings specifies a command which is used to decode
-# application/pgp attachments.
-#
-# The PGP command formats have their own set of printf-like sequences:
-#
-# %p Expands to PGPPASSFD=0 when a pass phrase is needed, to an empty
-# string otherwise. Note: This may be used with a %? construct.
-# %f Expands to the name of a file containing a message.
-# %s Expands to the name of a file containing the signature part
-# of a multipart/signed attachment when verifying it.
-# %a The value of $pgp_sign_as.
-# %r One or more key IDs.
-#
-#
-# For examples on how to configure these formats for the various versions
-# of PGP which are floating around, see the pgp*.rc and gpg.rc files in
-# the samples/ subdirectory which has been installed on your system
-# alongside the documentation.
-# (PGP only)
-#
-#
-# set pgp_getkeys_command=""
-#
-# Name: pgp_getkeys_command
-# Type: string
-# Default: ""
-#
-#
-# This command is invoked whenever mutt will need public key information.
-# %r is the only printf-like sequence used with this format.
-# (PGP only)
-#
-#
-# set pgp_verify_command=""
-#
-# Name: pgp_verify_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to verify PGP signatures.
-# (PGP only)
-#
-#
-# set pgp_decrypt_command=""
-#
-# Name: pgp_decrypt_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to decrypt a PGP encrypted message.
-# (PGP only)
-#
-#
-# set pgp_clearsign_command=""
-#
-# Name: pgp_clearsign_command
-# Type: string
-# Default: ""
-#
-#
-# This format is used to create a old-style "clearsigned" PGP
-# message. Note that the use of this format is strongly
-# deprecated.
-# (PGP only)
-#
-#
-# set pgp_sign_command=""
-#
-# Name: pgp_sign_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to create the detached PGP signature for a
-# multipart/signed PGP/MIME body part.
-# (PGP only)
-#
-#
-# set pgp_encrypt_sign_command=""
-#
-# Name: pgp_encrypt_sign_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to both sign and encrypt a body part.
-# (PGP only)
-#
-#
-# set pgp_encrypt_only_command=""
-#
-# Name: pgp_encrypt_only_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to encrypt a body part without signing it.
-# (PGP only)
-#
-#
-# set pgp_import_command=""
-#
-# Name: pgp_import_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to import a key from a message into
-# the user's public key ring.
-# (PGP only)
-#
-#
-# set pgp_export_command=""
-#
-# Name: pgp_export_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to export a public key from the user's
-# key ring.
-# (PGP only)
-#
-#
-# set pgp_verify_key_command=""
-#
-# Name: pgp_verify_key_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to verify key information from the key selection
-# menu.
-# (PGP only)
-#
-#
-# set pgp_list_secring_command=""
-#
-# Name: pgp_list_secring_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to list the secret key ring's contents. The
-# output format must be analogous to the one used by
-# gpg --list-keys --with-colons.
-#
-# This format is also generated by the pgpring utility which comes
-# with mutt.
-# (PGP only)
-#
-#
-# set pgp_list_pubring_command=""
-#
-# Name: pgp_list_pubring_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to list the public key ring's contents. The
-# output format must be analogous to the one used by
-# gpg --list-keys --with-colons.
-#
-# This format is also generated by the pgpring utility which comes
-# with mutt.
-# (PGP only)
-#
-#
-# set forward_decrypt=yes
-#
-# Name: forward_decrypt
-# Type: boolean
-# Default: yes
-#
-#
-# Controls the handling of encrypted messages when forwarding a message.
-# When set, the outer layer of encryption is stripped off. This
-# variable is only used if ``$mime_forward'' is set and
-# ``$mime_forward_decode'' is unset.
-# (PGP only)
-#
-#
-# set smime_timeout=300
-#
-# Name: smime_timeout
-# Type: number
-# Default: 300
-#
-#
-# The number of seconds after which a cached passphrase will expire if
-# not used.
-# (S/MIME only)
-#
-#
-# set smime_encrypt_with=""
-#
-# Name: smime_encrypt_with
-# Type: string
-# Default: ""
-#
-#
-# This sets the algorithm that should be used for encryption.
-# Valid choices are "des", "des3", "rc2-40", "rc2-64", "rc2-128".
-# If unset "3des" (TripleDES) is used.
-# (S/MIME only)
-#
-#
-# set smime_keys=""
-#
-# Name: smime_keys
-# Type: path
-# Default: ""
-#
-#
-# Since there is no pubring/secring as with PGP, mutt has to handle
-# storage ad retrieval of keys/certs by itself. This is very basic right now,
-# and stores keys and certificates in two different directories, both
-# named as the hash-value retrieved from OpenSSL. There is an index file
-# which contains mailbox-address keyid pair, and which can be manually
-# edited. This one points to the location of the private keys.
-# (S/MIME only)
-#
-#
-# set smime_ca_location=""
-#
-# Name: smime_ca_location
-# Type: path
-# Default: ""
-#
-#
-# This variable contains the name of either a directory, or a file which
-# contains trusted certificates for use with OpenSSL.
-# (S/MIME only)
-#
-#
-# set smime_certificates=""
-#
-# Name: smime_certificates
-# Type: path
-# Default: ""
-#
-#
-# Since there is no pubring/secring as with PGP, mutt has to handle
-# storage and retrieval of keys by itself. This is very basic right
-# now, and keys and certificates are stored in two different
-# directories, both named as the hash-value retrieved from
-# OpenSSL. There is an index file which contains mailbox-address
-# keyid pairs, and which can be manually edited. This one points to
-# the location of the certificates.
-# (S/MIME only)
-#
-#
-# set smime_decrypt_command=""
-#
-# Name: smime_decrypt_command
-# Type: string
-# Default: ""
-#
-#
-# This format string specifies a command which is used to decrypt
-# application/x-pkcs7-mime attachments.
-#
-# The OpenSSL command formats have their own set of printf-like sequences
-# similar to PGP's:
-#
-# %f Expands to the name of a file containing a message.
-# %s Expands to the name of a file containing the signature part
-# of a multipart/signed attachment when verifying it.
-# %k The key-pair specified with $smime_default_key
-# %c One or more certificate IDs.
-# %a The algorithm used for encryption.
-# %C CA location: Depending on whether $smime_ca_location
-# points to a directory or file, this expands to
-# "-CApath $smime_ca_location" or "-CAfile $smime_ca_location".
-#
-#
-# For examples on how to configure these formats, see the smime.rc in
-# the samples/ subdirectory which has been installed on your system
-# alongside the documentation.
-# (S/MIME only)
-#
-#
-# set smime_verify_command=""
-#
-# Name: smime_verify_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to verify S/MIME signatures of type multipart/signed.
-# (S/MIME only)
-#
-#
-# set smime_verify_opaque_command=""
-#
-# Name: smime_verify_opaque_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to verify S/MIME signatures of type
-# application/x-pkcs7-mime.
-# (S/MIME only)
-#
-#
-# set smime_sign_command=""
-#
-# Name: smime_sign_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to created S/MIME signatures of type
-# multipart/signed, which can be read by all mail clients.
-# (S/MIME only)
-#
-#
-# set smime_sign_opaque_command=""
-#
-# Name: smime_sign_opaque_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to created S/MIME signatures of type
-# application/x-pkcs7-signature, which can only be handled by mail
-# clients supporting the S/MIME extension.
-# (S/MIME only)
-#
-#
-# set smime_encrypt_command=""
-#
-# Name: smime_encrypt_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to create encrypted S/MIME messages.
-# (S/MIME only)
-#
-#
-# set smime_pk7out_command=""
-#
-# Name: smime_pk7out_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to extract PKCS7 structures of S/MIME signatures,
-# in order to extract the public X509 certificate(s).
-# (S/MIME only)
-#
-#
-# set smime_get_cert_command=""
-#
-# Name: smime_get_cert_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to extract X509 certificates from a PKCS7 structure.
-# (S/MIME only)
-#
-#
-# set smime_get_signer_cert_command=""
-#
-# Name: smime_get_signer_cert_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to extract only the signers X509 certificate from a S/MIME
-# signature, so that the certificate's owner may get compared to the
-# email's 'From'-field.
-# (S/MIME only)
-#
-#
-# set smime_import_cert_command=""
-#
-# Name: smime_import_cert_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to import a certificate via smime_keys.
-# (S/MIME only)
-#
-#
-# set smime_get_cert_email_command=""
-#
-# Name: smime_get_cert_email_command
-# Type: string
-# Default: ""
-#
-#
-# This command is used to extract the mail address(es) used for storing
-# X509 certificates, and for verification purposes (to check whether the
-# certificate was issued for the sender's mailbox).
-# (S/MIME only)
-#
-#
-# set smime_default_key=""
-#
-# Name: smime_default_key
-# Type: string
-# Default: ""
-#
-#
-# This is the default key-pair to use for signing. This must be set to the
-# keyid (the hash-value that OpenSSL generates) to work properly
-# (S/MIME only)
-#
-#
-# set ssl_client_cert=""
-#
-# Name: ssl_client_cert
-# Type: path
-# Default: ""
-#
-#
-# The file containing a client certificate and its associated private
-# key.
-#
-#
-# set ssl_starttls=yes
-#
-# Name: ssl_starttls
-# Type: quadoption
-# Default: yes
-#
-#
-# If set (the default), mutt will attempt to use STARTTLS on servers
-# advertising the capability. When unset, mutt will not attempt to
-# use STARTTLS regardless of the server's capabilities.
-#
-#
-# set certificate_file="~/.mutt_certificates"
-#
-# Name: certificate_file
-# Type: path
-# Default: "~/.mutt_certificates"
-#
-#
-# This variable specifies the file where the certificates you trust
-# are saved. When an unknown certificate is encountered, you are asked
-# if you accept it or not. If you accept it, the certificate can also
-# be saved in this file and further connections are automatically
-# accepted.
-#
-# You can also manually add CA certificates in this file. Any server
-# certificate that is signed with one of these CA certificates are
-# also automatically accepted.
-#
-# Example: set certificate_file=~/.mutt/certificates
-#
-#
-# set ssl_usesystemcerts=yes
-#
-# Name: ssl_usesystemcerts
-# Type: boolean
-# Default: yes
-#
-#
-# If set to yes, mutt will use CA certificates in the
-# system-wide certificate store when checking if server certificate
-# is signed by a trusted CA.
-#
-#
-# set entropy_file=""
-#
-# Name: entropy_file
-# Type: path
-# Default: ""
-#
-#
-# The file which includes random data that is used to initialize SSL
-# library functions.
-#
-#
-# set ssl_use_sslv2=yes
-#
-# Name: ssl_use_sslv2
-# Type: boolean
-# Default: yes
-#
-#
-# This variables specifies whether to attempt to use SSLv2 in the
-# SSL authentication process.
-#
-#
-# set ssl_use_sslv3=yes
-#
-# Name: ssl_use_sslv3
-# Type: boolean
-# Default: yes
-#
-#
-# This variables specifies whether to attempt to use SSLv3 in the
-# SSL authentication process.
-#
-#
-# set ssl_use_tlsv1=yes
-#
-# Name: ssl_use_tlsv1
-# Type: boolean
-# Default: yes
-#
-#
-# This variables specifies whether to attempt to use TLSv1 in the
-# SSL authentication process.
-#
-#
-# set pipe_split=no
-#
-# Name: pipe_split
-# Type: boolean
-# Default: no
-#
-#
-# Used in connection with the pipe-message command and the ``tag-
-# prefix'' operator. If this variable is unset, when piping a list of
-# tagged messages Mutt will concatenate the messages and will pipe them
-# as a single folder. When set, Mutt will pipe the messages one by one.
-# In both cases the messages are piped in the current sorted order,
-# and the ``$pipe_sep'' separator is added after each message.
-#
-#
-# set pipe_decode=no
-#
-# Name: pipe_decode
-# Type: boolean
-# Default: no
-#
-#
-# Used in connection with the pipe-message command. When unset,
-# Mutt will pipe the messages without any preprocessing. When set, Mutt
-# will weed headers and will attempt to PGP/MIME decode the messages
-# first.
-#
-#
-# set pipe_sep="\n"
-#
-# Name: pipe_sep
-# Type: string
-# Default: "\n"
-#
-#
-# The separator to add between messages when piping a list of tagged
-# messages to an external Unix command.
-#
-#
-# set pop_authenticators=""
-#
-# Name: pop_authenticators
-# Type: string
-# Default: ""
-#
-#
-# This is a colon-delimited list of authentication methods mutt may
-# attempt to use to log in to an POP server, in the order mutt should
-# try them. Authentication methods are either 'user', 'apop' or any
-# SASL mechanism, eg 'digest-md5', 'gssapi' or 'cram-md5'.
-# This parameter is case-insensitive. If this parameter is unset
-# (the default) mutt will try all available methods, in order from
-# most-secure to least-secure.
-#
-# Example: set pop_authenticators="digest-md5:apop:user"
-#
-#
-# set pop_auth_try_all=yes
-#
-# Name: pop_auth_try_all
-# Type: boolean
-# Default: yes
-#
-#
-# If set, Mutt will try all available methods. When unset, Mutt will
-# only fall back to other authentication methods if the previous
-# methods are unavailable. If a method is available but authentication
-# fails, Mutt will not connect to the POP server.
-#
-#
-# set pop_checkinterval=60
-#
-# Name: pop_checkinterval
-# Type: number
-# Default: 60
-#
-#
-# This variable configures how often (in seconds) POP should look for
-# new mail.
-#
-#
-# set pop_delete=ask-no
-#
-# Name: pop_delete
-# Type: quadoption
-# Default: ask-no
-#
-#
-# If set, Mutt will delete successfully downloaded messages from the POP
-# server when using the fetch-mail function. When unset, Mutt will
-# download messages but also leave them on the POP server.
-#
-#
-# set pop_host=""
-#
-# Name: pop_host
-# Type: string
-# Default: ""
-#
-#
-# The name of your POP server for the fetch-mail function. You
-# can also specify an alternative port, username and password, ie:
-#
-# [pop[s]://][username[:password]@]popserver[:port]
-#
-#
-# set pop_last=no
-#
-# Name: pop_last
-# Type: boolean
-# Default: no
-#
-#
-# If this variable is set, mutt will try to use the "LAST" POP command
-# for retrieving only unread messages from the POP server when using
-# the fetch-mail function.
-#
-#
-# set pop_reconnect=ask-yes
-#
-# Name: pop_reconnect
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not Mutt will try to reconnect to POP server when
-# connection lost.
-#
-#
-# set pop_user=""
-#
-# Name: pop_user
-# Type: string
-# Default: ""
-#
-#
-# Your login name on the POP server.
-#
-# This variable defaults to your user name on the local machine.
-#
-#
-# set pop_pass=""
-#
-# Name: pop_pass
-# Type: string
-# Default: ""
-#
-#
-# Specifies the password for your POP account. If unset, Mutt will
-# prompt you for your password when you open POP mailbox.
-# Warning: you should only use this option when you are on a
-# fairly secure machine, because the superuser can read your muttrc
-# even if you are the only one who can read the file.
-#
-#
-# set post_indent_string=""
-#
-# Name: post_indent_string
-# Type: string
-# Default: ""
-#
-#
-# Similar to the ``$attribution'' variable, Mutt will append this
-# string after the inclusion of a message which is being replied to.
-#
-#
-# set post_moderated=ask-yes
-#
-# Name: post_moderated
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# If set to yes, Mutt will post article to newsgroup that have
-# not permissions to posting (e.g. moderated). Note: if newsserver
-# does not support posting to that newsgroup or totally read-only, that
-# posting will not have an effect.
-#
-#
-# set postpone=ask-yes
-#
-# Name: postpone
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not messages are saved in the ``$postponed''
-# mailbox when you elect not to send immediately.
-#
-#
-# set postponed="~/postponed"
-#
-# Name: postponed
-# Type: path
-# Default: "~/postponed"
-#
-#
-# Mutt allows you to indefinitely ``postpone sending a message'' which
-# you are editing. When you choose to postpone a message, Mutt saves it
-# in the mailbox specified by this variable. Also see the ``$postpone''
-# variable.
-#
-#
-# set preconnect=""
-#
-# Name: preconnect
-# Type: string
-# Default: ""
-#
-#
-# If set, a shell command to be executed if mutt fails to establish
-# a connection to the server. This is useful for setting up secure
-# connections, e.g. with ssh(1). If the command returns a nonzero
-# status, mutt gives up opening the server. Example:
-#
-# preconnect="ssh -f -q -L 1234:mailhost.net:143 mailhost.net
-# sleep 20 < /dev/null > /dev/null"
-#
-# Mailbox 'foo' on mailhost.net can now be reached
-# as '{localhost:1234}foo'.
-#
-# NOTE: For this example to work, you must be able to log in to the
-# remote machine without having to enter a password.
-#
-#
-# set print=ask-no
-#
-# Name: print
-# Type: quadoption
-# Default: ask-no
-#
-#
-# Controls whether or not Mutt really prints messages.
-# This is set to ask-no by default, because some people
-# accidentally hit ``p'' often (like me).
-#
-#
-# set print_command="lpr"
-#
-# Name: print_command
-# Type: path
-# Default: "lpr"
-#
-#
-# This specifies the command pipe that should be used to print messages.
-#
-#
-# set print_decode=yes
-#
-# Name: print_decode
-# Type: boolean
-# Default: yes
-#
-#
-# Used in connection with the print-message command. If this
-# option is set, the message is decoded before it is passed to the
-# external command specified by $print_command. If this option
-# is unset, no processing will be applied to the message when
-# printing it. The latter setting may be useful if you are using
-# some advanced printer filter which is able to properly format
-# e-mail messages for printing.
-#
-#
-# set print_split=no
-#
-# Name: print_split
-# Type: boolean
-# Default: no
-#
-#
-# Used in connection with the print-message command. If this option
-# is set, the command specified by $print_command is executed once for
-# each message which is to be printed. If this option is unset,
-# the command specified by $print_command is executed only once, and
-# all the messages are concatenated, with a form feed as the message
-# separator.
-#
-# Those who use the enscript(1) program's mail-printing mode will
-# most likely want to set this option.
-#
-#
-# set prompt_after=yes
-#
-# Name: prompt_after
-# Type: boolean
-# Default: yes
-#
-#
-# If you use an external ``$pager'', setting this variable will
-# cause Mutt to prompt you for a command when the pager exits rather
-# than returning to the index menu. If unset, Mutt will return to the
-# index menu when the external pager exits.
-#
-#
-# set query_command=""
-#
-# Name: query_command
-# Type: path
-# Default: ""
-#
-#
-# This specifies the command that mutt will use to make external address
-# queries. The string should contain a %s, which will be substituted
-# with the query string the user types. See ``query'' for more
-# information.
-#
-#
-# set quit=yes
-#
-# Name: quit
-# Type: quadoption
-# Default: yes
-#
-#
-# This variable controls whether ``quit'' and ``exit'' actually quit
-# from mutt. If it set to yes, they do quit, if it is set to no, they
-# have no effect, and if it is set to ask-yes or ask-no, you are
-# prompted for confirmation when you try to quit.
-#
-#
-# set quote_regexp="^([ \t]*[|>:}#])+"
-#
-# Name: quote_regexp
-# Type: regular expression
-# Default: "^([ \t]*[|>:}#])+"
-#
-#
-# A regular expression used in the internal-pager to determine quoted
-# sections of text in the body of a message.
-#
-# Note: In order to use the quotedx patterns in the
-# internal pager, you need to set this to a regular expression that
-# matches exactly the quote characters at the beginning of quoted
-# lines.
-#
-#
-# set read_inc=10
-#
-# Name: read_inc
-# Type: number
-# Default: 10
-#
-#
-# If set to a value greater than 0, Mutt will display which message it
-# is currently on when reading a mailbox. The message is printed after
-# read_inc messages have been read (e.g., if set to 25, Mutt will
-# print a message when it reads message 25, and then again when it gets
-# to message 50). This variable is meant to indicate progress when
-# reading large mailboxes which may take some time.
-# When set to 0, only a single message will appear before the reading
-# the mailbox.
-#
-# Also see the ``$write_inc'' variable.
-#
-#
-# set read_only=no
-#
-# Name: read_only
-# Type: boolean
-# Default: no
-#
-#
-# If set, all folders are opened in read-only mode.
-#
-#
-# set realname=""
-#
-# Name: realname
-# Type: string
-# Default: ""
-#
-#
-# This variable specifies what "real" or "personal" name should be used
-# when sending messages.
-#
-# By default, this is the GECOS field from /etc/passwd. Note that this
-# variable will not be used when the user has set a real name
-# in the $from variable.
-#
-#
-# set recall=ask-yes
-#
-# Name: recall
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# Controls whether or not Mutt recalls postponed messages
-# when composing a new message. Also see ``$postponed''.
-#
-# Setting this variable to ``yes'' is not generally useful, and thus not
-# recommended.
-#
-#
-# set record=""
-#
-# Name: record
-# Type: path
-# Default: ""
-#
-#
-# This specifies the file into which your outgoing messages should be
-# appended. (This is meant as the primary method for saving a copy of
-# your messages, but another way to do this is using the ``my_hdr''
-# command to create a Bcc: field with your email address in it.)
-#
-# The value of $record is overridden by the ``$force_name'' and
-# ``$save_name'' variables, and the ``fcc-hook'' command.
-#
-#
-# set reply_regexp="^(re([\\[0-9\\]+])*|aw):[ \t]*"
-#
-# Name: reply_regexp
-# Type: regular expression
-# Default: "^(re([\\[0-9\\]+])*|aw):[ \t]*"
-#
-#
-# A regular expression used to recognize reply messages when threading
-# and replying. The default value corresponds to the English "Re:" and
-# the German "Aw:".
-#
-#
-# set reply_self=no
-#
-# Name: reply_self
-# Type: boolean
-# Default: no
-#
-#
-# If unset and you are replying to a message sent by you, Mutt will
-# assume that you want to reply to the recipients of that message rather
-# than to yourself.
-#
-#
-# set reply_to=ask-yes
-#
-# Name: reply_to
-# Type: quadoption
-# Default: ask-yes
-#
-#
-# If set, when replying to a message, Mutt will use the address listed
-# in the Reply-to: header as the recipient of the reply. If unset,
-# it will use the address in the From: header field instead. This
-# option is useful for reading a mailing list that sets the Reply-To:
-# header field to the list address and you want to send a private
-# message to the author of a message.
-#
-#
-# set resolve=yes
-#
-# Name: resolve
-# Type: boolean
-# Default: yes
-#
-#
-# When set, the cursor will be automatically advanced to the next
-# (possibly undeleted) message whenever a command that modifies the
-# current message is executed.
-#
-#
-# set reverse_alias=no
-#
-# Name: reverse_alias
-# Type: boolean
-# Default: no
-#
-#
-# This variable controls whether or not Mutt will display the "personal"
-# name from your aliases in the index menu if it finds an alias that
-# matches the message's sender. For example, if you have the following
-# alias:
-#
-# alias juser abd30425@somewhere.net (Joe User)
-#
-# and then you receive mail which contains the following header:
-#
-# From: abd30425@somewhere.net
-#
-# It would be displayed in the index menu as ``Joe User'' instead of
-# ``abd30425@somewhere.net.'' This is useful when the person's e-mail
-# address is not human friendly (like CompuServe addresses).
-#
-#
-# set reverse_name=no
-#
-# Name: reverse_name
-# Type: boolean
-# Default: no
-#
-#
-# It may sometimes arrive that you receive mail to a certain machine,
-# move the messages to another machine, and reply to some the messages
-# from there. If this variable is set, the default From: line of
-# the reply messages is built using the address where you received the
-# messages you are replying to if that address matches your
-# alternates. If the variable is unset, or the address that would be
-# used doesn't match your alternates, the From: line will use
-# your address on the current machine.
-#
-#
-# set reverse_realname=yes
-#
-# Name: reverse_realname
-# Type: boolean
-# Default: yes
-#
-#
-# This variable fine-tunes the behaviour of the reverse_name feature.
-# When it is set, mutt will use the address from incoming messages as-is,
-# possibly including eventual real names. When it is unset, mutt will
-# override any such real names with the setting of the realname variable.
-#
-#
-# set rfc2047_parameters=no
-#
-# Name: rfc2047_parameters
-# Type: boolean
-# Default: no
-#
-#
-# When this variable is set, Mutt will decode RFC-2047-encoded MIME
-# parameters. You want to set this variable when mutt suggests you
-# to save attachments to files named like this:
-# =?iso-8859-1?Q?file=5F=E4=5F991116=2Ezip?=
-#
-# When this variable is set interactively, the change doesn't have
-# the desired effect before you have changed folders.
-#
-# Note that this use of RFC 2047's encoding is explicitly,
-# prohibited by the standard, but nevertheless encountered in the
-# wild.
-# Also note that setting this parameter will not have the effect
-# that mutt generates this kind of encoding. Instead, mutt will
-# unconditionally use the encoding specified in RFC 2231.
-#
-#
-# set save_address=no
-#
-# Name: save_address
-# Type: boolean
-# Default: no
-#
-#
-# If set, mutt will take the sender's full address when choosing a
-# default folder for saving a mail. If ``$save_name'' or ``$force_name''
-# is set too, the selection of the fcc folder will be changed as well.
-#
-#
-# set save_empty=yes
-#
-# Name: save_empty
-# Type: boolean
-# Default: yes
-#
-#
-# When unset, mailboxes which contain no saved messages will be removed
-# when closed (the exception is ``$spoolfile'' which is never removed).
-# If set, mailboxes are never removed.
-#
-# Note: This only applies to mbox and MMDF folders, Mutt does not
-# delete MH and Maildir directories.
-#
-#
-# set save_name=no
-#
-# Name: save_name
-# Type: boolean
-# Default: no
-#
-#
-# This variable controls how copies of outgoing messages are saved.
-# When set, a check is made to see if a mailbox specified by the
-# recipient address exists (this is done by searching for a mailbox in
-# the ``$folder'' directory with the username part of the
-# recipient address). If the mailbox exists, the outgoing message will
-# be saved to that mailbox, otherwise the message is saved to the
-# ``$record'' mailbox.
-#
-# Also see the ``$force_name'' variable.
-#
-#
-# set score=yes
-#
-# Name: score
-# Type: boolean
-# Default: yes
-#
-#
-# When this variable is unset, scoring is turned off. This can
-# be useful to selectively disable scoring for certain folders when the
-# ``$score_threshold_delete'' variable and friends are used.
-#
-#
-# set score_threshold_delete=-1
-#
-# Name: score_threshold_delete
-# Type: number
-# Default: -1
-#
-#
-# Messages which have been assigned a score equal to or lower than the value
-# of this variable are automatically marked for deletion by mutt. Since
-# mutt scores are always greater than or equal to zero, the default setting
-# of this variable will never mark a message for deletion.
-#
-#
-# set score_threshold_flag=9999
-#
-# Name: score_threshold_flag
-# Type: number
-# Default: 9999
-#
-#
-# Messages which have been assigned a score greater than or equal to this
-# variable's value are automatically marked "flagged".
-#
-#
-# set score_threshold_read=-1
-#
-# Name: score_threshold_read
-# Type: number
-# Default: -1
-#
-#
-# Messages which have been assigned a score equal to or lower than the value
-# of this variable are automatically marked as read by mutt. Since
-# mutt scores are always greater than or equal to zero, the default setting
-# of this variable will never mark a message read.
-#
-#
-# set send_charset="us-ascii:iso-8859-1:utf-8"
-#
-# Name: send_charset
-# Type: string
-# Default: "us-ascii:iso-8859-1:utf-8"
-#
-#
-# A list of character sets for outgoing messages. Mutt will use the
-# first character set into which the text can be converted exactly.
-# If your ``$charset'' is not iso-8859-1 and recipients may not
-# understand UTF-8, it is advisable to include in the list an
-# appropriate widely used standard character set (such as
-# iso-8859-2, koi8-r or iso-2022-jp) either instead of or after
-# "iso-8859-1".
-#
-#
-# set sendmail="/usr/sbin/sendmail -oem -oi"
-#
-# Name: sendmail
-# Type: path
-# Default: "/usr/sbin/sendmail -oem -oi"
-#
-#
-# Specifies the program and arguments used to deliver mail sent by Mutt.
-# Mutt expects that the specified program interprets additional
-# arguments as recipient addresses.
-#
-#
-# set sendmail_wait=0
-#
-# Name: sendmail_wait
-# Type: number
-# Default: 0
-#
-#
-# Specifies the number of seconds to wait for the ``$sendmail'' process
-# to finish before giving up and putting delivery in the background.
-#
-# Mutt interprets the value of this variable as follows:
-# >0 number of seconds to wait for sendmail to finish before continuing
-# 0 wait forever for sendmail to finish
-# <0 always put sendmail in the background without waiting
-#
-#
-# Note that if you specify a value other than 0, the output of the child
-# process will be put in a temporary file. If there is some error, you
-# will be informed as to where to find the output.
-#
-#
-# set shell=""
-#
-# Name: shell
-# Type: path
-# Default: ""
-#
-#
-# Command to use when spawning a subshell. By default, the user's login
-# shell from /etc/passwd is used.
-#
-#
-# set save_unsubscribed=no
-#
-# Name: save_unsubscribed
-# Type: boolean
-# Default: no
-#
-#
-# When set, info about unsubscribed newsgroups will be saved into
-# ``newsrc'' file and into cache.
-#
-#
-# set show_new_news=yes
-#
-# Name: show_new_news
-# Type: boolean
-# Default: yes
-#
-#
-# If set, newsserver will be asked for new newsgroups on entering
-# the browser. Otherwise, it will be done only once for a newsserver.
-# Also controls whether or not number of new articles of subscribed
-# newsgroups will be then checked.
-#
-#
-# set show_only_unread=no
-#
-# Name: show_only_unread
-# Type: boolean
-# Default: no
-#
-#
-# If set, only subscribed newsgroups that contain unread articles
-# will be displayed in browser.
-#
-#
-# set sig_dashes=yes
-#
-# Name: sig_dashes
-# Type: boolean
-# Default: yes
-#
-#
-# If set, a line containing ``-- '' will be inserted before your
-# ``$signature''. It is strongly recommended that you not unset
-# this variable unless your ``signature'' contains just your name. The
-# reason for this is because many software packages use ``-- \n'' to
-# detect your signature. For example, Mutt has the ability to highlight
-# the signature in a different color in the builtin pager.
-#
-#
-# set sig_on_top=no
-#
-# Name: sig_on_top
-# Type: boolean
-# Default: no
-#
-#
-# If set, the signature will be included before any quoted or forwarded
-# text. It is strongly recommended that you do not set this variable
-# unless you really know what you are doing, and are prepared to take
-# some heat from netiquette guardians.
-#
-#
-# set signature="~/.signature"
-#
-# Name: signature
-# Type: path
-# Default: "~/.signature"
-#
-#
-# Specifies the filename of your signature, which is appended to all
-# outgoing messages. If the filename ends with a pipe (``|''), it is
-# assumed that filename is a shell command and input should be read from
-# its stdout.
-#
-#
-# set simple_search="~f %s | ~s %s"
-#
-# Name: simple_search
-# Type: string
-# Default: "~f %s | ~s %s"
-#
-#
-# Specifies how Mutt should expand a simple search into a real search
-# pattern. A simple search is one that does not contain any of the ~
-# operators. See ``patterns'' for more information on search patterns.
-#
-# For example, if you simply type joe at a search or limit prompt, Mutt
-# will automatically expand it to the value specified by this variable.
-# For the default value it would be:
-#
-# ~f joe | ~s joe
-#
-#
-# set smart_wrap=yes
-#
-# Name: smart_wrap
-# Type: boolean
-# Default: yes
-#
-#
-# Controls the display of lines longer than the screen width in the
-# internal pager. If set, long lines are wrapped at a word boundary. If
-# unset, lines are simply wrapped at the screen edge. Also see the
-# ``$markers'' variable.
-#
-#
-# set smileys="(>From )|(:[-^]?[][)(><}{|/DP])"
-#
-# Name: smileys
-# Type: regular expression
-# Default: "(>From )|(:[-^]?[][)(><}{|/DP])"
-#
-#
-# The pager uses this variable to catch some common false
-# positives of ``$quote_regexp'', most notably smileys in the beginning
-# of a line
-#
-#
-# set sleep_time=1
-#
-# Name: sleep_time
-# Type: number
-# Default: 1
-#
-#
-# Specifies time, in seconds, to pause while displaying certain informational
-# messages, while moving from folder to folder and after expunging
-# messages from the current folder. The default is to pause one second, so
-# a value of zero for this option suppresses the pause.
-#
-#
-# set sort=date
-#
-# Name: sort
-# Type: sort order
-# Default: date
-#
-#
-# Specifies how to sort messages in the index menu. Valid values
-# are:
-#
-# date or date-sent
-# date-received
-# from
-# mailbox-order (unsorted)
-# score
-# size
-# spam
-# subject
-# threads
-# to
-#
-# You may optionally use the reverse- prefix to specify reverse sorting
-# order (example: set sort=reverse-date-sent).
-#
-#
-# set sort_alias=alias
-#
-# Name: sort_alias
-# Type: sort order
-# Default: alias
-#
-#
-# Specifies how the entries in the `alias' menu are sorted. The
-# following are legal values:
-#
-# address (sort alphabetically by email address)
-# alias (sort alphabetically by alias name)
-# unsorted (leave in order specified in .muttrc)
-#
-#
-# set sort_aux=date
-#
-# Name: sort_aux
-# Type: sort order
-# Default: date
-#
-#
-# When sorting by threads, this variable controls how threads are sorted
-# in relation to other threads, and how the branches of the thread trees
-# are sorted. This can be set to any value that ``$sort'' can, except
-# threads (in that case, mutt will just use date-sent). You can also
-# specify the last- prefix in addition to the reverse- prefix, but last-
-# must come after reverse-. The last- prefix causes messages to be
-# sorted against its siblings by which has the last descendant, using
-# the rest of sort_aux as an ordering. For instance, set sort_aux=last-
-# date-received would mean that if a new message is received in a
-# thread, that thread becomes the last one displayed (or the first, if
-# you have set sort=reverse-threads.) Note: For reversed ``$sort''
-# order $sort_aux is reversed again (which is not the right thing to do,
-# but kept to not break any existing configuration setting).
-#
-#
-# set sort_browser=alpha
-#
-# Name: sort_browser
-# Type: sort order
-# Default: alpha
-#
-#
-# Specifies how to sort entries in the file browser. By default, the
-# entries are sorted alphabetically. Valid values:
-#
-# alpha (alphabetically)
-# date
-# size
-# unsorted
-#
-# You may optionally use the reverse- prefix to specify reverse sorting
-# order (example: set sort_browser=reverse-date).
-#
-#
-# set sort_re=yes
-#
-# Name: sort_re
-# Type: boolean
-# Default: yes
-#
-#
-# This variable is only useful when sorting by threads with
-# ``$strict_threads'' unset. In that case, it changes the heuristic
-# mutt uses to thread messages by subject. With sort_re set, mutt will
-# only attach a message as the child of another message by subject if
-# the subject of the child message starts with a substring matching the
-# setting of ``$reply_regexp''. With sort_re unset, mutt will attach
-# the message whether or not this is the case, as long as the
-# non-``$reply_regexp'' parts of both messages are identical.
-#
-#
-# set spam_separator=","
-#
-# Name: spam_separator
-# Type: string
-# Default: ","
-#
-#
-# ``spam_separator'' controls what happens when multiple spam headers
-# are matched: if unset, each successive header will overwrite any
-# previous matches value for the spam label. If set, each successive
-# match will append to the previous, using ``spam_separator'' as a
-# separator.
-#
-#
-# set spoolfile=""
-#
-# Name: spoolfile
-# Type: path
-# Default: ""
-#
-#
-# If your spool mailbox is in a non-default place where Mutt cannot find
-# it, you can specify its location with this variable. Mutt will
-# automatically set this variable to the value of the environment
-# variable $MAIL if it is not set.
-#
-#
-# set status_chars="-*%A"
-#
-# Name: status_chars
-# Type: string
-# Default: "-*%A"
-#
-#
-# Controls the characters used by the "%r" indicator in
-# ``$status_format''. The first character is used when the mailbox is
-# unchanged. The second is used when the mailbox has been changed, and
-# it needs to be resynchronized. The third is used if the mailbox is in
-# read-only mode, or if the mailbox will not be written when exiting
-# that mailbox (You can toggle whether to write changes to a mailbox
-# with the toggle-write operation, bound by default to "%"). The fourth
-# is used to indicate that the current folder has been opened in attach-
-# message mode (Certain operations like composing a new mail, replying,
-# forwarding, etc. are not permitted in this mode).
-#
-#
-# set status_format="-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---"
-#
-# Name: status_format
-# Type: string
-# Default: "-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---"
-#
-#
-# Controls the format of the status line displayed in the index
-# menu. This string is similar to ``$index_format'', but has its own
-# set of printf()-like sequences:
-#
-# %b number of mailboxes with new mail *
-# %d number of deleted messages *
-# %f the full pathname of the current mailbox
-# %F number of flagged messages *
-# %h local hostname
-# %l size (in bytes) of the current mailbox *
-# %L size (in bytes) of the messages shown
-# (i.e., which match the current limit) *
-# %m the number of messages in the mailbox *
-# %M the number of messages shown (i.e., which match the current limit) *
-# %n number of new messages in the mailbox *
-# %o number of old unread messages *
-# %p number of postponed messages *
-# %P percentage of the way through the index
-# %r modified/read-only/won't-write/attach-message indicator,
-# according to $status_chars
-# %s current sorting mode ($sort)
-# %S current aux sorting method ($sort_aux)
-# %t number of tagged messages *
-# %u number of unread messages *
-# %v Mutt version string
-# %V currently active limit pattern, if any *
-# %>X right justify the rest of the string and pad with "X"
-# %|X pad to the end of the line with "X"
-#
-#
-# * = can be optionally printed if nonzero
-#
-# Some of the above sequences can be used to optionally print a string
-# if their value is nonzero. For example, you may only want to see the
-# number of flagged messages if such messages exist, since zero is not
-# particularly meaningful. To optionally print a string based upon one
-# of the above sequences, the following construct is used
-#
-# %?<sequence_char>?<optional_string>?
-#
-# where sequence_char is a character from the table above, and
-# optional_string is the string you would like printed if
-# sequence_char is nonzero. optional_string may contain
-# other sequences as well as normal text, but you may not nest
-# optional strings.
-#
-# Here is an example illustrating how to optionally print the number of
-# new messages in a mailbox:
-# %?n?%n new messages.?
-#
-# Additionally you can switch between two strings, the first one, if a
-# value is zero, the second one, if the value is nonzero, by using the
-# following construct:
-# %?<sequence_char>?<if_string>&<else_string>?
-#
-# You can additionally force the result of any printf-like sequence to
-# be lowercase by prefixing the sequence character with an underscore
-# (_) sign. For example, if you want to display the local hostname in
-# lowercase, you would use:
-# %_h
-#
-# If you prefix the sequence character with a colon (:) character, mutt
-# will replace any dots in the expansion by underscores. This might be helpful
-# with IMAP folders that don't like dots in folder names.
-#
-#
-# set status_on_top=no
-#
-# Name: status_on_top
-# Type: boolean
-# Default: no
-#
-#
-# Setting this variable causes the ``status bar'' to be displayed on
-# the first line of the screen rather than near the bottom.
-#
-#
-# set strict_threads=no
-#
-# Name: strict_threads
-# Type: boolean
-# Default: no
-#
-#
-# If set, threading will only make use of the ``In-Reply-To'' and
-# ``References'' fields when you ``$sort'' by message threads. By
-# default, messages with the same subject are grouped together in
-# ``pseudo threads.'' This may not always be desirable, such as in a
-# personal mailbox where you might have several unrelated messages with
-# the subject ``hi'' which will get grouped together.
-#
-#
-# set suspend=yes
-#
-# Name: suspend
-# Type: boolean
-# Default: yes
-#
-#
-# When unset, mutt won't stop when the user presses the terminal's
-# susp key, usually ``control-Z''. This is useful if you run mutt
-# inside an xterm using a command like xterm -e mutt.
-#
-#
-# set text_flowed=no
-#
-# Name: text_flowed
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt will generate text/plain; format=flowed attachments.
-# This format is easier to handle for some mailing software, and generally
-# just looks like ordinary text. To actually make use of this format's
-# features, you'll need support in your editor.
-#
-# Note that $indent_string is ignored when this option is set.
-#
-#
-# set thread_received=no
-#
-# Name: thread_received
-# Type: boolean
-# Default: no
-#
-#
-# When set, mutt uses the date received rather than the date sent
-# to thread messages by subject.
-#
-#
-# set thorough_search=no
-#
-# Name: thorough_search
-# Type: boolean
-# Default: no
-#
-#
-# Affects the ~b and ~h search operations described in
-# section ``patterns'' above. If set, the headers and attachments of
-# messages to be searched are decoded before searching. If unset,
-# messages are searched as they appear in the folder.
-#
-#
-# set tilde=no
-#
-# Name: tilde
-# Type: boolean
-# Default: no
-#
-#
-# When set, the internal-pager will pad blank lines to the bottom of the
-# screen with a tilde (~).
-#
-#
-# set timeout=600
-#
-# Name: timeout
-# Type: number
-# Default: 600
-#
-#
-# This variable controls the number of seconds Mutt will wait
-# for a key to be pressed in the main menu before timing out and
-# checking for new mail. A value of zero or less will cause Mutt
-# to never time out.
-#
-#
-# set tmpdir=""
-#
-# Name: tmpdir
-# Type: path
-# Default: ""
-#
-#
-# This variable allows you to specify where Mutt will place its
-# temporary files needed for displaying and composing messages. If
-# this variable is not set, the environment variable TMPDIR is
-# used. If TMPDIR is not set then "/tmp" is used.
-#
-#
-# set to_chars=" +TCFL"
-#
-# Name: to_chars
-# Type: string
-# Default: " +TCFL"
-#
-#
-# Controls the character used to indicate mail addressed to you. The
-# first character is the one used when the mail is NOT addressed to your
-# address (default: space). The second is used when you are the only
-# recipient of the message (default: +). The third is when your address
-# appears in the TO header field, but you are not the only recipient of
-# the message (default: T). The fourth character is used when your
-# address is specified in the CC header field, but you are not the only
-# recipient. The fifth character is used to indicate mail that was sent
-# by you. The sixth character is used to indicate when a mail
-# was sent to a mailing-list you subscribe to (default: L).
-#
-#
-# set tunnel=""
-#
-# Name: tunnel
-# Type: string
-# Default: ""
-#
-#
-# Setting this variable will cause mutt to open a pipe to a command
-# instead of a raw socket. You may be able to use this to set up
-# preauthenticated connections to your IMAP/POP3 server. Example:
-#
-# tunnel="ssh -q mailhost.net /usr/local/libexec/imapd"
-#
-# NOTE: For this example to work you must be able to log in to the remote
-# machine without having to enter a password.
-#
-#
-# set use_8bitmime=no
-#
-# Name: use_8bitmime
-# Type: boolean
-# Default: no
-#
-#
-# Warning: do not set this variable unless you are using a version
-# of sendmail which supports the -B8BITMIME flag (such as sendmail
-# 8.8.x) or you may not be able to send mail.
-#
-# When set, Mutt will invoke ``$sendmail'' with the -B8BITMIME
-# flag when sending 8-bit messages to enable ESMTP negotiation.
-#
-#
-# set use_domain=yes
-#
-# Name: use_domain
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will qualify all local addresses (ones without the
-# @host portion) with the value of ``$hostname''. If unset, no
-# addresses will be qualified.
-#
-#
-# set use_from=yes
-#
-# Name: use_from
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will generate the `From:' header field when
-# sending messages. If unset, no `From:' header field will be
-# generated unless the user explicitly sets one using the ``my_hdr''
-# command.
-#
-#
-# set use_ipv6=yes
-#
-# Name: use_ipv6
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will look for IPv6 addresses of hosts it tries to
-# contact. If this option is unset, Mutt will restrict itself to IPv4 addresses.
-# Normally, the default should work.
-#
-#
-# set use_idn=yes
-#
-# Name: use_idn
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will show you international domain names decoded.
-# Note: You can use IDNs for addresses even if this is unset.
-# This variable only affects decoding.
-#
-#
-# set use_ipv6=yes
-#
-# Name: use_ipv6
-# Type: boolean
-# Default: yes
-#
-#
-# When set, Mutt will look for IPv6 addresses of hosts it tries to
-# contact. If this option is unset, Mutt will restrict itself to IPv4 addresses.
-# Normally, the default should work.
-#
-#
-# set user_agent=yes
-#
-# Name: user_agent
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will add a "User-Agent" header to outgoing
-# messages, indicating which version of mutt was used for composing
-# them.
-#
-#
-# set visual=""
-#
-# Name: visual
-# Type: path
-# Default: ""
-#
-#
-# Specifies the visual editor to invoke when the ~v command is
-# given in the builtin editor.
-#
-#
-# set wait_key=yes
-#
-# Name: wait_key
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether Mutt will ask you to press a key after shell-
-# escape, pipe-message, pipe-entry, print-message,
-# and print-entry commands.
-#
-# It is also used when viewing attachments with ``auto_view'', provided
-# that the corresponding mailcap entry has a needsterminal flag,
-# and the external program is interactive.
-#
-# When set, Mutt will always ask for a key. When unset, Mutt will wait
-# for a key only if the external command returned a non-zero status.
-#
-#
-# set weed=yes
-#
-# Name: weed
-# Type: boolean
-# Default: yes
-#
-#
-# When set, mutt will weed headers when displaying, forwarding,
-# printing, or replying to messages.
-#
-#
-# set wrap_search=yes
-#
-# Name: wrap_search
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether searches wrap around the end of the mailbox.
-#
-# When set, searches will wrap around the first (or last) message. When
-# unset, searches will not wrap.
-#
-#
-# set wrapmargin=0
-#
-# Name: wrapmargin
-# Type: number
-# Default: 0
-#
-#
-# Controls the size of the margin remaining at the right side of
-# the terminal when mutt's pager does smart wrapping.
-#
-#
-# set write_inc=10
-#
-# Name: write_inc
-# Type: number
-# Default: 10
-#
-#
-# When writing a mailbox, a message will be printed every
-# write_inc messages to indicate progress. If set to 0, only a
-# single message will be displayed before writing a mailbox.
-#
-# Also see the ``$read_inc'' variable.
-#
-#
-# set write_bcc=yes
-#
-# Name: write_bcc
-# Type: boolean
-# Default: yes
-#
-#
-# Controls whether mutt writes out the Bcc header when preparing
-# messages to be sent. Exim users may wish to unset this.
-#
-#
-# set x_comment_to=no
-#
-# Name: x_comment_to
-# Type: boolean
-# Default: no
-#
-#
-# If set, Mutt will add ``X-Comment-To:'' field (that contains full
-# name of original article author) to article that followuped to newsgroup.
-#
-#
+++ /dev/null
-#! /usr/bin/perl -w
-
-# Copyright (C) 2001,2002 Oliver Ehli <elmy@acm.org>
-# Copyright (C) 2001 Mike Schiraldi <raldi@research.netsol.com>
-# Copyright (C) 2003 Bjoern Jacke <bjoern@j3e.de>
-#
-# This program 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 2 of the License, or
-# (at your option) any later version.
-#
-# 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-use strict;
-use File::Copy;
-
-umask 077;
-
-require "timelocal.pl";
-
-sub usage ();
-sub newfile ($;$$);
-sub mutt_Q ($ );
-sub mycopy ($$);
-
-# directory setup routines
-sub mkdir_recursive ($ );
-sub init_paths ();
-
-# key/certificate management methods
-sub list_certs ();
-sub query_label ();
-sub add_entry ($$$$$ );
-sub add_certificate ($$$$;$ );
-sub add_key ($$$$);
-sub add_root_cert ($ );
-sub parse_pem (@ );
-sub handle_pem (@ );
-sub modify_entry ($$$;$ );
-sub remove_pair ($ );
-sub change_label ($ );
-sub verify_cert($$);
-sub do_verify($$$ );
-
-# Get the directories mutt uses for certificate/key storage.
-
-my $mutt = $ENV{MUTT_CMDLINE} || 'mutt';
-my $opensslbin = "/usr/bin/openssl";
-my @tempfiles = ();
-my @cert_tmp_file = ();
-
-my $tmpdir;
-my $private_keys_path = mutt_Q 'smime_keys';
-die "smime_keys is not set in mutt's configuration file"
- if length $private_keys_path == 0;
-
-my $certificates_path = mutt_Q 'smime_certificates';
-die "smime_certificates is not set in mutt's configuration file"
- if length $certificates_path == 0;
-my $root_certs_path = mutt_Q 'smime_ca_location';
-die "smime_ca_location is not set in mutt's configuration file"
- if length $root_certs_path == 0;
-
-my $root_certs_switch;
-if ( -d $root_certs_path) {
- $root_certs_switch = -CApath;
-} else {
- $root_certs_switch = -CAfile;
-}
-
-
-#
-# OPS
-#
-
-if(@ARGV == 1 and $ARGV[0] eq "init") {
- init_paths;
-}
-elsif(@ARGV == 1 and $ARGV[0] eq "list") {
- list_certs;
-}
-elsif(@ARGV == 2 and $ARGV[0] eq "label") {
- change_label($ARGV[1]);
-}
-elsif(@ARGV == 2 and $ARGV[0] eq "add_cert") {
- my $format = -B $ARGV[1] ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -noout -hash -in $ARGV[1] -inform $format";
- my $cert_hash = `$cmd`;
- $? and die "'$cmd' returned $?";
- chomp($cert_hash);
- my $label = query_label;
- &add_certificate($ARGV[1], \$cert_hash, 1, $label, '?');
-}
-elsif(@ARGV == 2 and $ARGV[0] eq "add_pem") {
- -e $ARGV[1] and -s $ARGV[1] or die("$ARGV[1] is nonexistent or empty.");
- open(PEM_FILE, "<$ARGV[1]") or die("Can't open $ARGV[1]: $!");
- my @pem = <PEM_FILE>;
- close(PEM_FILE);
- handle_pem(@pem);
-}
-elsif( @ARGV == 2 and $ARGV[0] eq "add_p12") {
- -e $ARGV[1] and -s $ARGV[1] or die("$ARGV[1] is nonexistent or empty.");
-
- print "\nNOTE: This will ask you for two passphrases:\n";
- print " 1. The passphrase you used for exporting\n";
- print " 2. The passphrase you wish to secure your private key with.\n\n";
-
- my $pem_file = "$ARGV[1].pem";
-
- my $cmd = "$opensslbin pkcs12 -in $ARGV[1] -out $pem_file";
- system $cmd and die "'$cmd' returned $?";
-
- -e $pem_file and -s $pem_file or die("Conversion of $ARGV[1] failed.");
- open(PEM_FILE, $pem_file) or die("Can't open $pem_file: $!");
- my @pem = <PEM_FILE>;
- close(PEM_FILE);
- unlink $pem_file;
- handle_pem(@pem);
-}
-elsif(@ARGV == 4 and $ARGV[0] eq "add_chain") {
- my $mailbox;
- my $format = -B $ARGV[2] ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -noout -hash -in $ARGV[2] -inform $format";
- my $cert_hash = `$cmd`;
-
- $? and die "'$cmd' returned $?";
-
- $format = -B $ARGV[3] ? 'DER' : 'PEM';
-
- $cmd = "$opensslbin x509 -noout -hash -in $ARGV[3] -inform $format";
- my $issuer_hash = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- chomp($cert_hash);
- chomp($issuer_hash);
-
- my $label = query_label;
-
- add_certificate($ARGV[3], \$issuer_hash, 0, $label);
- my @mailbox = &add_certificate($ARGV[2], \$cert_hash, 1, $label, $issuer_hash);
-
- foreach $mailbox (@mailbox) {
- chomp($mailbox);
- add_key($ARGV[1], $cert_hash, $mailbox, $label);
- }
-}
-elsif((@ARGV == 2 or @ARGV == 3) and $ARGV[0] eq "verify") {
- verify_cert($ARGV[1], $ARGV[2]);
-}
-elsif(@ARGV == 2 and $ARGV[0] eq "remove") {
- remove_pair($ARGV[1]);
-}
-elsif(@ARGV == 2 and $ARGV[0] eq "add_root") {
- add_root_cert($ARGV[1]);
-}
-else {
- usage;
- exit(1);
-}
-
-exit(0);
-
-
-
-
-
-############## sub-routines ########################
-
-sub usage () {
- print <<EOF;
-
-Usage: smime_keys <operation> [file(s) | keyID [file(s)]]
-
- with operation being one of:
-
- init : no files needed, inits directory structure.
-
- list : lists the certificates stored in database.
- label : keyID required. changes/removes/adds label.
- remove : keyID required.
- verify : 1=keyID and optionally 2=CRL
- Verifies the certificate chain, and optionally wether
- this certificate is included in supplied CRL (PEM format).
- Note: to verify all certificates at the same time,
- replace keyID with "all"
-
- add_cert : certificate required.
- add_chain : three files reqd: 1=Key, 2=certificate
- plus 3=intermediate certificate(s).
- add_p12 : one file reqd. Adds keypair to database.
- file is PKCS12 (e.g. export from netscape).
- add_pem : one file reqd. Adds keypair to database.
- (file was converted from e.g. PKCS12).
-
- add_root : one file reqd. Adds PEM root certificate to the location
- specified within muttrc (smime_verify_* command)
-
-EOF
-}
-
-sub mutt_Q ($) {
- my $var = shift or die;
-
- my $cmd = "$mutt -v >/dev/null 2>/dev/null";
- system ($cmd) == 0
- or die<<EOF;
-Couldn't launch mutt. I attempted to do so by running the command "$mutt".
-If that's not the right command, you can override it by setting the
-environment variable \$MUTT_CMDLINE
-EOF
-
- $cmd = "$mutt -Q $var 2>/dev/null";
- my $answer = `$cmd`;
-
- $? and die<<EOF;
-Couldn't look up the value of the mutt variable "$var".
-You must set this in your mutt config file. See contrib/smime.rc for an example.
-EOF
-#'
-
- $answer =~ /\"(.*?)\"/ and return $1;
-
- $answer =~ /^Mutt (.*?) / and die<<EOF;
-This script requires mutt 1.5.0 or later. You are using mutt $1.
-EOF
-
- die "Value of $var is weird\n";
-}
-
-sub mycopy ($$) {
- my $source = shift or die;
- my $dest = shift or die;
-
- copy $source, $dest or die "Problem copying $source to $dest: $!\n";
-}
-
-#
-# directory setup routines
-#
-
-
-sub mkdir_recursive ($) {
- my $path = shift or die;
- my $tmp_path;
-
- for my $dir (split /\//, $path) {
- $tmp_path .= "$dir/";
-
- -d $tmp_path
- or mkdir $tmp_path, 0700
- or die "Can't mkdir $tmp_path: $!";
- }
-}
-
-sub init_paths () {
- mkdir_recursive($certificates_path);
- mkdir_recursive($private_keys_path);
-
- my $file;
-
- $file = $certificates_path . "/.index";
- -f $file or open(TMP_FILE, ">$file") and close(TMP_FILE)
- or die "Can't touch $file: $!";
-
- $file = $private_keys_path . "/.index";
- -f $file or open(TMP_FILE, ">$file") and close(TMP_FILE)
- or die "Can't touch $file: $!";
-}
-
-
-
-#
-# certificate management methods
-#
-
-sub list_certs () {
- my %keyflags = ( 'i', '(Invalid)', 'r', '(Revoked)', 'e', '(Expired)',
- 'u', '(Unverified)', 'v', '(Valid)', 't', '(Trusted)');
-
- open(INDEX, "<$certificates_path/.index") or
- die "Couldn't open $certificates_path/.index: $!";
-
- print "\n";
- while(<INDEX>) {
- my $tmp;
- my @tmp;
- my $tab = " ";
- my @fields = split;
-
- if($fields[2] eq '-') {
- print "$fields[1]: Issued for: $fields[0] $keyflags{$fields[4]}\n";
- } else {
- print "$fields[1]: Issued for: $fields[0] \"$fields[2]\" $keyflags{$fields[4]}\n";
- }
-
- my $certfile = "$certificates_path/$fields[1]";
- my $cert;
- {
- open F, $certfile or
- die "Couldn't open $certfile: $!";
- local $/;
- $cert = <F>;
- close F;
- }
-
- my $subject_in;
- my $issuer_in;
- my $date1_in;
- my $date2_in;
-
- my $format = -B $certfile ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -subject -issuer -dates -noout -in $certfile -inform $format";
- ($subject_in, $issuer_in, $date1_in, $date2_in) = `$cmd`;
- $? and print "ERROR: '$cmd' returned $?\n\n" and next;
-
-
- my @subject = split(/\//, $subject_in);
- while(@subject) {
- $tmp = shift @subject;
- ($tmp =~ /^CN\=/) and last;
- undef $tmp;
- }
- defined $tmp and @tmp = split (/\=/, $tmp) and
- print $tab."Subject: $tmp[1]\n";
-
- my @issuer = split(/\//, $issuer_in);
- while(@issuer) {
- $tmp = shift @issuer;
- ($tmp =~ /^CN\=/) and last;
- undef $tmp;
- }
- defined $tmp and @tmp = split (/\=/, $tmp) and
- print $tab."Issued by: $tmp[1]";
-
- if ( defined $date1_in and defined $date2_in ) {
- @tmp = split (/\=/, $date1_in);
- $tmp = $tmp[1];
- @tmp = split (/\=/, $date2_in);
- print $tab."Certificate is not valid before $tmp".
- $tab." or after ".$tmp[1];
- }
-
- -e "$private_keys_path/$fields[1]" and
- print "$tab - Matching private key installed -\n";
-
- $format = -B "$certificates_path/$fields[1]" ? 'DER' : 'PEM';
- $cmd = "$opensslbin x509 -purpose -noout -in $certfile -inform $format";
- my $purpose_in = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- my @purpose = split (/\n/, $purpose_in);
- print "$tab$purpose[0] (displays S/MIME options only)\n";
- while(@purpose) {
- $tmp = shift @purpose;
- ($tmp =~ /^S\/MIME/ and $tmp =~ /Yes/) or next;
- my @tmptmp = split (/:/, $tmp);
- print "$tab $tmptmp[0]\n";
- }
-
- print "\n";
- }
-
- close(INDEX);
-}
-
-
-
-sub query_label () {
- my @words;
- my $input;
-
- print "\nYou may assign a label to this key, so you don't have to remember\n";
- print "the key ID. This has to be _one_ word (no whitespaces).\n\n";
-
- print "Enter label: ";
- chomp($input = <STDIN>);
-
- my ($label, $junk) = split(/\s/, $input, 2);
-
- defined $junk
- and print "\nUsing '$label' as label; ignoring '$junk'\n";
-
- defined $label || ($label = "-");
-
- return $label;
-}
-
-
-
-sub add_entry ($$$$$) {
- my $mailbox = shift or die;
- my $hashvalue = shift or die;
- my $use_cert = shift;
- my $label = shift or die;
- my $issuer_hash = shift;
-
- my @fields;
-
- if ($use_cert) {
- open(INDEX, "+<$certificates_path/.index") or
- die "Couldn't open $certificates_path/.index: $!";
- }
- else {
- open(INDEX, "+<$private_keys_path/.index") or
- die "Couldn't open $private_keys_path/.index: $!";
- }
-
- while(<INDEX>) {
- @fields = split;
- return if ($fields[0] eq $mailbox && $fields[1] eq $hashvalue);
- }
-
- if ($use_cert) {
- print INDEX "$mailbox $hashvalue $label $issuer_hash u\n";
- }
- else {
- print INDEX "$mailbox $hashvalue $label \n";
- }
-
- close(INDEX);
-}
-
-
-sub add_certificate ($$$$;$) {
- my $filename = shift or die;
- my $hashvalue = shift or die;
- my $add_to_index = shift;
- my $label = shift or die;
- my $issuer_hash = shift;
-
- my $iter = 0;
- my @mailbox;
- my $mailbox;
-
- while(-e "$certificates_path/$$hashvalue.$iter") {
- my ($t1, $t2);
- my $format = -B $filename ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -in $filename -inform $format -fingerprint -noout";
- $t1 = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- $format = -B "$certificates_path/$$hashvalue.$iter" ? 'DER' : 'PEM';
- $cmd = "$opensslbin x509 -in $certificates_path/$$hashvalue.$iter -inform $format -fingerprint -noout";
- $t2 = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- $t1 eq $t2 and last;
-
- $iter++;
- }
- $$hashvalue .= ".$iter";
-
- if (-e "$certificates_path/$$hashvalue") {
- print "\nCertificate: $certificates_path/$$hashvalue already installed.\n";
- }
- else {
- mycopy $filename, "$certificates_path/$$hashvalue";
-
- if ($add_to_index) {
- my $format = -B $filename ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -in $filename -inform $format -email -noout";
- @mailbox = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- foreach $mailbox (@mailbox) {
- chomp($mailbox);
- add_entry($mailbox, $$hashvalue, 1, $label, $issuer_hash);
-
- print "\ncertificate $$hashvalue ($label) for $mailbox added.\n";
- }
- verify_cert($$hashvalue, undef);
- }
- else {
- print "added certificate: $certificates_path/$$hashvalue.\n";
- }
- }
-
- return @mailbox;
-}
-
-
-sub add_key ($$$$) {
- my $file = shift or die;
- my $hashvalue = shift or die;
- my $mailbox = shift or die;
- my $label = shift or die;
-
- unless (-e "$private_keys_path/$hashvalue") {
- mycopy $file, "$private_keys_path/$hashvalue";
- }
-
- add_entry($mailbox, $hashvalue, 0, $label, "");
- print "added private key: " .
- "$private_keys_path/$hashvalue for $mailbox\n";
-}
-
-
-
-
-
-
-sub parse_pem (@) {
- my $state = 0;
- my $cert_iter = 0;
- my @bag_attribs;
- my $numBags = 0;
-
- $cert_tmp_file[$cert_iter] = newfile("cert_tmp.$cert_iter","temp");
- my $cert_tmp_iter = $cert_tmp_file[$cert_iter];
- open(CERT_FILE, ">$cert_tmp_iter")
- or die "Couldn't open $cert_tmp_iter: $!";
-
- while($_ = shift(@_)) {
- if(/^Bag Attributes/) {
- $numBags++;
- $state == 0 or die("PEM-parse error at: $.");
- $state = 1;
- $bag_attribs[$cert_iter*4+1] = "";
- $bag_attribs[$cert_iter*4+2] = "";
- $bag_attribs[$cert_iter*4+3] = "";
- }
-
- ($state == 1) and /localKeyID:\s*(.*)/
- and ($bag_attribs[$cert_iter*4+1] = $1);
-
- ($state == 1) and /subject=\s*(.*)/
- and ($bag_attribs[$cert_iter*4+2] = $1);
-
- ($state == 1) and /issuer=\s*(.*)/
- and ($bag_attribs[$cert_iter*4+3] = $1);
-
- if(/^-----/) {
- if(/BEGIN/) {
- print CERT_FILE;
- $state = 2;
-
- if(/PRIVATE/) {
- $bag_attribs[$cert_iter*4] = "K";
- next;
- }
- if(/CERTIFICATE/) {
- $bag_attribs[$cert_iter*4] = "C";
- next;
- }
- die("What's this: $_");
- }
- if(/END/) {
- $state = 0;
- print CERT_FILE;
- close(CERT_FILE);
- $cert_iter++;
- $cert_tmp_file[$cert_iter] = newfile("cert_tmp.$cert_iter","temp");
- $cert_tmp_iter = $cert_tmp_file[$cert_iter];
- open(CERT_FILE, ">$cert_tmp_iter")
- or die "Couldn't open $cert_tmp_iter: $!";
- next;
- }
- }
- print CERT_FILE;
- }
- close(CERT_FILE);
-
- # I'll add support for unbagged cetificates, in case this is needed.
- $numBags == $cert_iter or
- die("Not all contents were bagged. can't continue.");
-
- return @bag_attribs;
-}
-
-
-# This requires the Bag Attributes to be set
-sub handle_pem (@) {
-
- my @pem_contents;
- my $iter=0;
- my $root_cert;
- my $key;
- my $certificate;
- my $intermediate;
- my @mailbox;
- my $mailbox;
-
- @pem_contents = &parse_pem(@_);
-
- # private key and certificate use the same 'localKeyID'
- while($iter <= $#pem_contents / 4) {
- if($pem_contents[$iter * 4] eq "K") {
- $key = $iter;
- last;
- }
- $iter++;
- }
- ($iter > $#pem_contents / 2) and die("Couldn't find private key!");
-
- $pem_contents[($key * 4)+1] or die("Attribute 'localKeyID' wasn't set.");
-
- $iter = 0;
- while($iter <= $#pem_contents / 4) {
- $iter == $key and ($iter++) and next;
- if($pem_contents[($iter * 4)+1] eq $pem_contents[($key * 4)+1]) {
- $certificate = $iter;
- last;
- }
- $iter++;
- }
- ($iter > $#pem_contents / 4) and die("Couldn't find matching certificate!");
-
- my $tmp_key = newfile("tmp_key","temp");
- mycopy $cert_tmp_file[$key], $tmp_key;
- my $tmp_certificate = newfile("tmp_certificate","temp");
- mycopy $cert_tmp_file[$certificate], $tmp_certificate;
-
- # root certificate is self signed
- $iter = 0;
-
- while($iter <= $#pem_contents / 4) {
- if ($iter == $key or $iter == $certificate) {
- $iter++;
- next;
- }
-
- if($pem_contents[($iter * 4)+2] eq $pem_contents[($iter * 4)+3]) {
- $root_cert = $iter;
- last;
- }
- $iter++;
- }
- if ($iter > $#pem_contents / 4) {
- print "Couldn't identify root certificate!\n";
- $root_cert = -1;
- }
-
- # what's left are intermediate certificates.
- $iter = 0;
-
- # needs to be set, so we can check it later
- $intermediate = $root_cert;
- my $tmp_issuer_cert = newfile("tmp_issuer_cert","temp");
- while($iter <= $#pem_contents / 4) {
- if ($iter == $key or $iter == $certificate or $iter == $root_cert) {
- $iter++;
- next;
- }
-
- open (IC, ">> $tmp_issuer_cert") or die "can't open $tmp_issuer_cert: $?";
- my $cert_tmp_iter = $cert_tmp_file[$iter];
- open (CERT, "< $cert_tmp_iter") or die "can't open $cert_tmp_iter: $?";
- print IC while (<CERT>);
- close IC;
- close CERT;
-
- # although there may be many, just need to know if there was any
- $intermediate = $iter;
-
- $iter++;
- }
-
- # no intermediate certificates ? use root-cert instead (if that was found...)
- if($intermediate == $root_cert) {
- if ($root_cert == -1) {
- die("No root and no intermediate certificates. Can't continue.");
- }
- mycopy $cert_tmp_file[$root_cert], $tmp_issuer_cert;
- }
-
- my $label = query_label;
-
- my $format = -B $tmp_certificate ? 'DER' : 'PEM';
- my $cmd = "$opensslbin x509 -noout -hash -in $tmp_certificate -inform $format";
- my $cert_hash = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- $format = -B $tmp_issuer_cert ? 'DER' : 'PEM';
- $cmd = "$opensslbin x509 -noout -hash -in $tmp_issuer_cert -inform $format";
- my $issuer_hash = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- chomp($cert_hash); chomp($issuer_hash);
-
- # Note: $cert_hash will be changed to reflect the correct filename
- # within add_cert() ONLY, so these _have_ to get called first..
- add_certificate($tmp_issuer_cert, \$issuer_hash, 0, $label);
- @mailbox = &add_certificate("$tmp_certificate", \$cert_hash, 1, $label, $issuer_hash);
- foreach $mailbox (@mailbox) {
- chomp($mailbox);
- add_key($tmp_key, $cert_hash, $mailbox, $label);
- }
-}
-
-
-
-
-
-
-sub modify_entry ($$$;$ ) {
- my $op = shift or die;
- my $hashvalue = shift or die;
- my $use_cert = shift;
- my $crl;
- my $label;
- my $path;
- my @fields;
-
- $op eq 'L' and ($label = shift or die);
- $op eq 'V' and ($crl = shift);
-
-
- if ($use_cert) {
- $path = $certificates_path;
- }
- else {
- $path = $private_keys_path;
- }
-
- open(INDEX, "<$path/.index") or
- die "Couldn't open $path/.index: $!";
- my $newindex = newfile("$path/.index.tmp");
- open(NEW_INDEX, ">$newindex") or
- die "Couldn't create $newindex: $!";
-
- while(<INDEX>) {
- @fields = split;
- if($fields[1] eq $hashvalue or $hashvalue eq 'all') {
- $op eq 'R' and next;
- print NEW_INDEX "$fields[0] $fields[1]";
- if($op eq 'L') {
- if($use_cert) {
- print NEW_INDEX " $label $fields[3] $fields[4]";
- }
- else {
- print NEW_INDEX " $label";
- }
- }
- if ($op eq 'V') {
- print "\n==> about to verify certificate of $fields[0]\n";
- my $flag = &do_verify($fields[1], $fields[3], $crl);
- print NEW_INDEX " $fields[2] $fields[3] $flag";
- }
- print NEW_INDEX "\n";
- next;
- }
- print NEW_INDEX;
- }
- close(INDEX);
- close(NEW_INDEX);
-
- rename $newindex, "$path/.index"
- or die "Couldn't rename $newindex to $path/.index: $!\n";
-
- print "\n";
-}
-
-
-
-
-sub remove_pair ($ ) {
- my $keyid = shift or die;
-
- if (-e "$certificates_path/$keyid") {
- unlink "$certificates_path/$keyid";
- modify_entry('R', $keyid, 1);
- print "Removed certificate $keyid.\n";
- }
- else {
- die "No such certificate: $keyid";
- }
-
- if (-e "$private_keys_path/$keyid") {
- unlink "$private_keys_path/$keyid";
- modify_entry('R', $keyid, 0);
- print "Removed private key $keyid.\n";
- }
-}
-
-
-
-sub change_label ($ ) {
- my $keyid = shift or die;
-
- my $label = query_label;
-
- if (-e "$certificates_path/$keyid") {
- modify_entry('L', $keyid, 1, $label);
- print "Changed label for certificate $keyid.\n";
- }
- else {
- die "No such certificate: $keyid";
- }
-
- if (-e "$private_keys_path/$keyid") {
- modify_entry('L', $keyid, 0, $label);
- print "Changed label for private key $keyid.\n";
- }
-
-}
-
-
-
-
-sub verify_cert ($$) {
- my $keyid = shift or die;
- my $crl = shift;
-
- -e "$certificates_path/$keyid" or $keyid eq 'all'
- or die "No such certificate: $keyid";
- modify_entry('V', $keyid, 1, $crl);
-}
-
-
-
-
-sub do_verify($$$) {
-
- my $cert = shift or die;
- my $issuerid = shift or die;
- my $crl = shift;
-
- my $result = 'i';
- my $trust_q;
- my $issuer_path;
- my $cert_path = "$certificates_path/$cert";
-
- if($issuerid eq '?') {
- $issuer_path = "$certificates_path/$cert";
- } else {
- $issuer_path = "$certificates_path/$issuerid";
- }
-
- my $cmd = "$opensslbin verify $root_certs_switch $root_certs_path -purpose smimesign -purpose smimeencrypt -untrusted $issuer_path $cert_path";
- my $output = `$cmd`;
- $? and die "'$cmd' returned $?";
- chop $output;
- print "\n$output\n";
-
- ($output =~ /OK/) and ($result = 'v');
-
- $result eq 'i' and return $result;
-
- my $format = -B $cert_path ? 'DER' : 'PEM';
- $cmd = "$opensslbin x509 -dates -serial -noout -in $cert_path -inform $format";
- (my $date1_in, my $date2_in, my $serial_in) = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- if ( defined $date1_in and defined $date2_in ) {
- my @tmp = split (/\=/, $date1_in);
- my $tmp = $tmp[1];
- @tmp = split (/\=/, $date2_in);
- my %months = ('Jan', '00', 'Feb', '01', 'Mar', '02', 'Apr', '03',
- 'May', '04', 'Jun', '05', 'Jul', '06', 'Aug', '07',
- 'Sep', '08', 'Oct', '09', 'Nov', '10', 'Dec', '11');
-
- my @fields =
- $tmp =~ /(\w+)\s*(\d+)\s*(\d+):(\d+):(\d+)\s*(\d+)\s*GMT/;
-
- $#fields != 5 and print "Expiration Date: Parse Error : $tmp\n\n" or
- timegm($fields[4], $fields[3], $fields[2], $fields[1],
- $months{$fields[0]}, $fields[5]) > time and $result = 'e';
- $result eq 'e' and print "Certificate is not yet valid.\n" and return $result;
-
- @fields =
- $tmp[1] =~ /(\w+)\s*(\d+)\s*(\d+):(\d+):(\d+)\s*(\d+)\s*GMT/;
-
- $#fields != 5 and print "Expiration Date: Parse Error : $tmp[1]\n\n" or
- timegm($fields[4], $fields[3], $fields[2], $fields[1],
- $months{$fields[0]}, $fields[5]) < time and $result = 'e';
- $result eq 'e' and print "Certificate has expired.\n" and return $result;
-
- }
-
- if ( defined $crl ) {
- my @serial = split (/\=/, $serial_in);
- my $cmd = "$opensslbin crl -text -noout -in $crl | grep -A1 $serial[1]";
- (my $l1, my $l2) = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- if ( defined $l2 ) {
- my @revoke_date = split (/:\s/, $l2);
- print "FAILURE: Certificate $cert has been revoked on $revoke_date[1]\n";
- $result = 'r';
- }
- }
- print "\n";
-
- if ($result eq 'v') {
- return 't';
- }
-
- return $result;
-}
-
-
-
-sub add_root_cert ($) {
- my $root_cert = shift or die;
-
- my $format = -B $root_cert ? 'DER' : 'PEM';
-
- my $cmd = "$opensslbin x509 -noout -hash -in $root_cert -inform $format";
- my $root_hash = `$cmd`;
- $? and die "'$cmd' returned $?";
-
- if (-d $root_certs_path) {
- -e "$root_certs_path/$root_hash" or
- mycopy $root_cert, "$root_certs_path/$root_hash";
- }
- else {
- open(ROOT_CERTS, ">>$root_certs_path") or
- die ("Couldn't open $root_certs_path for writing");
-
- $cmd = "$opensslbin x509 -in $root_cert -inform $format -fingerprint -noout";
- $? and die "'$cmd' returned $?";
- chomp(my $md5fp = `$cmd`);
-
- $cmd = "$opensslbin x509 -in $root_cert -inform $format -text -noout";
- $? and die "'$cmd' returned $?";
- my @cert_text = `$cmd`;
-
- print "Enter a label, name or description for this certificate: ";
- my $input = <STDIN>;
-
- my $line = "=======================================\n";
- print ROOT_CERTS "\n$input$line$md5fp\nPEM-Data:\n";
-
- $cmd = "$opensslbin x509 -in $root_cert -inform $format";
- my $cert = `$cmd`;
- $? and die "'$cmd' returned $?";
- print ROOT_CERTS $cert;
- print ROOT_CERTS @cert_text;
- close (ROOT_CERTS);
- }
-
-}
-
-sub newfile ($;$$) {
- # returns a file name which does not exist for tmp file creation
- my $filename = shift;
- my $option = shift;
- $option = "notemp" if (not defined($option));
- if (! $tmpdir and $option eq "temp") {
- $tmpdir = mutt_Q 'tmpdir';
- $tmpdir = newfile("$tmpdir/smime");
- mkdir $tmpdir, 0700 || die "Can't create $tmpdir: $!\n";
- }
- $filename = "$tmpdir/$filename" if ($option eq "temp");
- my $newfilename = $filename;
- my $count = 0;
- while (-e $newfilename) {
- $newfilename = "$filename.$count";
- $count++;
- }
- unshift(@tempfiles,$newfilename);
- return $newfilename;
-}
-
-
-END {
- # remove all our temporary files in the end:
- for (@tempfiles){
- if (-f) {
- unlink;
- } elsif (-d) {
- rmdir;
- }
- }
-}