Alpine Technical Notes: Configuration and Preferences

# Configuration and Preferences

## Alpine Configuration

There is very little in Alpine which requires compile-time configuration. In most cases, the compiled-in preferences will suit users and administrators just fine. When running Alpine on a UNIX system, the default built-in configuration can be changed by setting variables in the system configuration files, `/usr/local/lib/pine.conf` or `/usr/local/lib/pine.conf.fixed`. (Actually, these files can be changed using the configure arguments --with-system-pinerc=VALUE or --with-system-fixed-pinerc=VALUE.) The location of the pine.conf file can be changed with the -P command line argument. Both Alpine and PC-Alpine also use personal (user-based) configuration files. On UNIX machines, the personal configuration file is the file `~/.pinerc`. For PC-Alpine systems, the personal configuration file is in `$PINERC` or `<PineRC registry value>` or `${HOME}\ALPINE\PINERC` or `<ALPINE.EXE` dir`>\PINERC`. Or the personal configuration file can be specified with the -p command line argument.

All of these configuration files, other than the fixed system config `pine.conf.fixed` on UNIX systems, may optionally be remote configuration files instead of local files. This is discussed further in the following section and in Remote Configuration.

After the personal configuration, Alpine may optionally use a personal exceptions configuration file which is specified with the command line option "-x exceptions_config". "Exceptions_config" may also be either a local file or a remote configuration folder. For Unix Alpine, if you don't have a "-x" command line option, Alpine will look for the file "`.pinercex`" in the same local directory that the regular config file is located in. If the regular config file is remote then Unix Alpine looks in the home directory for "`.pinercex`".

For PC-Alpine, if you don't have a "-x" command line option, PC-Alpine will use the value of the environment variable `$PINERCEX`. If that is not set, PC-Alpine will look for the local file "`PINERCEX`" in the same local directory that the regular config file is located in. If the regular config file is remote then PC-Alpine looks in the local directory specfied by the "-aux local_directory" command line argument, or the directory `${HOME}\ALPINE`, or in `<ALPINE.EXE` directory`>`.

The syntax of a non-list configuration variable is this:

> <variable> = <value>

If the value is absent then the variable is unset. To set a variable to the empty value two double quotes (""). This is equivalent to an absent value except that it overrides any system-wide default value that may be set. Quotes may be used around any value. All values are strings and end at the end of the line or the closing quote. Leading and trailing space is ignored unless it is included in the quotes. There is one variable, use-only-domain-name, for which the only appropriate values are yes and no. That's because it is a variable from the early days of Alpine before features existed.

There is also a second type of variable, lists. A list is a comma-separated list of values. The syntax for a list is:

> <variable> = <value> [, <value> , ... ]

A list can be continued on subsequent lines by beginning the line with white-space. Both the per-user and global configuration files may contain comments which are lines beginning with a `#`.

For UNIX Alpine, there are five ways in which each variable can be set. In decreasing order of precedence they are:

1. the system-wide fixed configuration file
2. a command line argument
3. the personal exceptions file
4. the personal configuration file
5. the system-wide configuration file.

If the variable is not set in any of those places, there is a default setting in the source code.

So, system-wide fixed settings always take precedence over command line flags, which take precedence over per-user exception settings, which take precedence over per-user settings, which take precedence over system-wide configuration settings. PC-Alpine has the same list, except that it does not use a system-wide fixed configuration file. This can be modified slightly by using inheritance, which is covered below.

You may get a sample/fresh copy of the system configuration file by running alpine -conf. The result will be printed on the standard output with very short comments describing each variable. (The online help in the Setup screens provides much longer comments.) If you need to fix some of the configuration variables, you would use the same template for the fixed configuration file as for the regular system-wide configuration file. (If it isn't clear, the purpose of the fixed configuration file is to allow system administrators to restrict the configurability of Alpine. It is by no means a bullet-proof method.) Alpine will automatically create the personal configuration file the first time it is run, so there is no need to generate a sample. Alpine reads and writes the personal configuration file occasionally during normal operation. Users will not normally look at their personal configuration file, but will use the Setup screens from within Alpine to set the values in this file. If a user does add additional comments to the personal configuration file they will be retained.

References to environment variables may be included in the Alpine configuration files. The format is `$variable` or `${variable}.` The character `~` will be expanded to the `$HOME` environment variable. For a more complete explanation of how environment variables work, see the section Using Environment Variables.

When environment variables are used for Alpine settings which take lists, you must have an environment variable set for each member of the list. That is, Alpine won't properly recognize an environment variable which is set equal to a comma-delimited list. It is OK to reference unset environment variables in the Alpine configuration file, which will expand to nothing.

### Remote and Local Configuration

There are two types of storage for configuration information. Local configuration files are used by default. These are just regular files on the UNIX system or on the PC. Remote configuration folders are stored on an IMAP server. The advantage of using a remote configuration is that the same information may be accessed from multiple platforms. For example, if you use one computer at work and another at home, the same configuration could be used from both places. A configuration change from one place would be seen in both places. Technical information about remote configuration is in Remote Configuration.

### Generic and Exceptional Configuration

If you use Alpine from more than one platform it may be convenient to split your configuration information into two pieces, a generic piece and exceptions which apply to a particular platform. For example, suppose you use Alpine from home and from work. Most of your configuration settings are probably the same in both locations, so those settings belong in the generic settings configuration. However, you may use a different SMTP server and INBOX from home than you do from work. The "smtp-server" and "inbox-path" variables could be part of your exceptional configuration so that they could be different in the two places.

You can use the command line option "-x config" to split your configuration into generic and exceptional pieces. Config may be either local or remote.

For most people, splitting the configuration information into two pieces is only going to be useful if the generic information is accessed remotely. If you already have a local pinerc file with settings you like you may find that the command Setup/RemoteConfigSetup will be useful in helping you convert to a remote configuration. The command line flag copy_pinerc may also be useful.

### Configuration Inheritance

Configuration inheritance is a power user feature. It is confusing and not completely supported by the configuration user interface.

For configuration variables which are lists, like "smtp-server" or "incoming-folders", the inheritance mechanism makes it possible to combine the values of options from different configuration locations instead of replacing the value. Configuration Inheritance has more information about how inheritance is used.

## General Configuration Variables

The following is a list of all Alpine configuration variables, in alphabetical order. Note that not all variables apply to all versions of Alpine and that some variables are only applicable in a system configuration file and some are only applicable in a personal configuration file. These are configuration variables. Configuration Features are in a separate section.

addrbook-sort-rule
  This variable sets up the default address book sorting. Currently, Alpine will accept the values dont-sort, fullname-with-lists-last, fullname, nickname-with-lists-last, and nickname. The default is to sort by fullname with lists last. If you use an address book from more than one computer and those computers sort the address book differently then the sort order will be the order where the last change to the address book was made. There are two reasons the sorting might be different on different systems. First, the addrbook-sort-rule may be set differently in the two places. Second, the collation rules on the two computers may be different. For example, one system might ignore special characters while the other doesn't or one may sort upper and lower case letters together while the other doesn't. In any case, the order you see is the order on the system where the last change was made, for example by an address book edit or a Take Address command.

  This option is displayed as "Addressbook Sort Rule".

address-book
  A list of personal address books. Each entry in the list is an optional nickname followed by a pathname or file name relative to the home directory. The nickname is separated from the rest of the line with whitespace. Instead of a local pathname or file name, a remote folder name can be given. This causes the address book to be a Remote address book. Remote folder syntax is discussed in Syntax for Remote Folders. This list of address books will be combined with the global-address-book list to arrive at the complete set of address books.

addressbook-formats
  This option specifies the format that address books are displayed in. By default, address books are displayed with the nicknames in the first column, the fullnames in the second column, and addresses in the third column. The system figures out reasonable defaults for the widths of the columns. An address book may be given a different format by listing special tokens in the order you want them to display. The possible tokens are NICKNAME, FULLNAME, ADDRESS, FCC, and COMMENT. More details are included in the online help for this variable.

alt-addresses
  This option provides a place for you to list alternate email addresses you may have. Each address in the list should be the actual email address part of an address, without the full name field or the angle brackets. For example:

  `user@example.com`

  The matching is case-insensitive, so this would match any of `User@example.com`, `user@Example.Com`, or `USER@EXAMPLE.COM` as well.

  If set, the option affects the behavior of the Reply command and the "+" symbol in the MESSAGE INDEX, which denotes that a message has been addressed specifically to you.

  In the default INDEX display the personal name (or email address) of the person listed in the message's "From:" header field is usually displayed except when that address is yours or one of your alternate addresses. In that case you will usually see the name of the first person specified in the message's "To:" header field with the prefix "To: " prepended.

  With respect to Reply, the reply-to-all option will exclude addresses listed here.

  The feature copy-to-address-to-from-if-it-is-us is somewhat related to this option.

  In addition to a list of actual addresses, you may use regular expressions (as used with egrep with the ignore case flag) to describe the addresses you want to match. Alpine will somewhat arbitrarily interpret your entry as a regular expression if it contains any of the characters *, |, +, ?, {, [, ^, $, or \. Otherwise, it will be treated literally. The feature disable-regular-expression-matching-for-alternate-addresses may be used to turn off regular expression processing regardless of whether or not special characters appear in the entry.

  A description of how regular expressions work is beyond the scope of this help text, but some examples follow.

  The entry

  `.*@example.com`

  in the alt-addresses list would mean that any address with a domain name of `example.com` (such as `fred@example.com` or `wilma@example.com`) will be considered one of your alternate addresses. Strictly speaking, the dot in `example.com` ought to be escaped with a backslash, as in `example\.com`, and a dollar sign anchor ought to come at the end of the expression to prevent a match of `example.com.org`. Complicating things further, the dollar sign is special in the Alpine configuration (it signifies environment variable expansion) so the dollar sign should be doubled or backslash escaped for Alpine's sake. Quotes around the whole expression will not escape the dollar sign successfully. So this example should look like

  `.*@example\.com$$`

  The entry

  `^fred[0-9]*@example.com$$`

  would match `fred3@example.com` or `fred17@example.com` as well as `fred@example.com`.

  You could match all addresses that look like `fred+stuff@example.com` for any value of `stuff` with the entry

  `^fred\+.*@example.com$$`

  Notice that you have to escape the plus sign with a backslash because plus is a special character in regular expressions. If you wanted to match plain `fred` as well as `fred+stuff` the expression

  `^fred(()|\+.*)@example.com$$`

  would do it, but it would be easier to just add fred@example.com as a separate entry.

  One more example, a match of all first-level subdomains, is given by

  `^fred@[[:alnum:]_-]*\.example\.com$$`

  Because the regular expression matching is based on an old library (`hs_regex`) the regular expressions might not work exactly as you expect, but they should be close.

  This option is displayed as "Alternate Addresses".

bugs-additional-data
  System-wide configuration files only. Program/Script used by Report Bug command. Output from the program/script is captured and attached to the bug report.

bugs-fullname, bugs-address, local-fullname, local-address, suggest-fullname, and suggest-address
  System-wide configuration files only. These are used by the bug report commands which can be accessed from some of the Help screens.

busy-cue-rate
  When Alpine is delayed for some reason it usually shows that something is happening with a small animated display in the status message line near the bottom of the screen. This option sets how frequently the characters (for example, a spinning bar) in the active status message lines are updated. At most, it can be set to be udpated 20 times per second.

  Setting this value to zero will prevent display of the animations altogether.

  The option busy-cue-spinner-only can be used to remove the randomness from this animated display.

character-set
  This is now obsolete, replaced by three separate variables: display-character-set, keyboard-character-set, and posting-character-set. See the section on International Character Sets for more details.

color-style
  UNIX Alpine only (color is automatically on with PC-Alpine). If the terminal or terminal emulator you are using is capable of displaying colors, this variable controls whether or not color will be used in Alpine. If you turn color on and things are set up correctly, you should see color appear on the screen immmediately. Modern terminal emulators are usually capable of displaying colors.

  This variable may be set to any of the following values:

  no-color
    Don't use color.
  use-termdef
    In order to decide if your terminal is capable of color, Alpine looks in the terminal capabilities database, TERMINFO or TERMCAP, depending on how Alpine was compiled. This is a good option to choose if you switch between a color and a non-color terminal with the same Alpine configuration. Alpine will know to use color on the color terminal because it is described in the termcap entry, and Alpine will know to use black and white on the non-color terminal. Color Details has more information about configuring a termcap entry for color. This is usually something a system administrator does.
  force-ansi-8color
    Because setting up a termcap entry is confusing and because the terminal capabilities database is often not correctly configured for color, this choice and the next may be easier for you to use. If your terminal emulator responds to ANSI color escape sequences, which many do, this option will cause Alpine to believe your terminal will respond to the escape sequences which produce eight different foreground and background colors. The escape sequences used to set the foreground colors are

    ESC [ 3 <color_number> m

    where the color_number is an ASCII digit between 0 and 7. The numbers 0 through 7 should correspond to the colors black, red, green, yellow, blue, magenta, cyan, and white. Some terminal emulators use a pre-ANSI scheme which swaps the colors blue and red and the colors yellow and cyan. This will cause the default colors to be different, but other than that things should work fine. There is also a 9th color available, the last one shown, which is the default color from the terminal emulator. When used as a background color some people refer to this color as "transparent", which is why the letters "TRAN" are shown in the color swatch of the SETUP COLOR screen. The foreground transparent color is shown as the color of the "TRAN" text. (The transparent color will not work correctly in a PC-Alpine configuration.) The escape sequences used to set the background colors are the same as for the foreground colors except a "4" replaces the "3".

    Note: With the Tera Term terminal emulator this setting works well. You should also have the Tera Term "Full color" option turned OFF. You may find the "Full color" option in Tera Term's "Setup" menu, in the "Window" submenu.

  force-ansi-16color
    Many terminal emulators know about the same eight colors above plus eight more. This option attempts to use all 16 colors. The same escape sequences as for the eight-color terminal are used for the first eight colors. The escape sequences used to set foreground colors 8-15 are the same as for 0-7 except the "3" is replaced with a "9". The background color sequences for colors 8-15 are the same as for 0-7 except the "4" is replaced with "10". You can tell if the 16 colors are working by turning on this option and then going into one of the color configuration screens, for example, the configuration screen for Normal Color. If you see 16 different colors to select from (plus a 17th for the transparent color), it's working.
  force-xterm-256color
    Some versions of xterm (and some other terminal emulators) have support for 256 colors. The escape sequences used to set the foreground colors are

    ESC [ 38 ; 5 ; <color_number> m

    where the color_number is an ASCII digit between 0 and 255. Background colors are the same with the 38 replaced with a 48. The numbers 0 through 15 are probably similar to the 16 color version above, then comes a 6x6x6 color cube, followed by 24 colors of gray. The terminal default (transparent) color is the 257th color at the bottom. Some terminal emulators will misinterpret these escape sequences causing the terminal to blink or overstrike characters or to do something else undesirable.

    The PuTTY terminal emulator has an option called "Allow terminal to use xterm 256-colour mode" which allows PuTTY to work well with this 256-color setting.

  There are two other possible color values which may be useful in some situations. In the color configuration screens there will sometimes be a color which has the label "NORM" inside its color swatch. If this is selected the corresponding foreground or background Normal Color will be used. Another similar color is the one that has the label "NONE" inside its color swatch. The meaning of this setting is that no color changing will be done. This NONE color is only useful in contexts where Alpine is already coloring the text some color other than the Normal Color. For example, if the Reverse Color is set then the current line in the MESSAGE INDEX will be colored. If one of the index symbols (for example, the Index-to-me Symbol) has the NONE color as its background then the symbol's foreground color will be used to draw the actual text but the background color will be the same as whatever the background color already was. The color values which end up in the configuration file for these special values are the 11-character words "norm-padded", "none-padded", and "transparent".

  The normal default is "no-color".

  Once you've turned on color you may set the colors of many objects on the screen individually. The Color Configuration section has more information, or you may just try it by running the "Setup" command and typing "K" for Kolor to enter the color configuration screen (Kolor instead of Color because C means Config). Most categories of color which Alpine supports are configurable there. Index line color is configured separately.

composer-word-separators
  This option affects how a "word" is defined in the composer. The definition of a word is used when using the Forward Word and Backward Word commands in the composer, as well as when using the spell checker. Whitespace is always considered a word separator. Punctuation (like question marks, periods, commas, and so on) is always a word separator if it comes at the end of a word. By default, a punctuation character which is in the middle of a word does not break up that word as long as the character before and the character after it are both alphanumeric. If you add a character to this option it will be considered a word separator even when it occurs in the middle of an alphanumeric word. For example, if you want to skip through each part of an address instead of skipping the whole address at once you might want to include"@" and "." in this list. If you want the word-skipper to stop on each part of a UNIX filename you could add "/" to the list. The equal sign and dash are other possibilities you might find helpful.

composer-wrap-column
  This option specifies an aspect of Alpine's Composer. This gives the maximum width that auto-wrapped lines will have. It's also the maximum width of lines justified using the ^J Justify command. The normal default is 74. The largest allowed setting is normally 80 in order to prevent very long lines from being sent in outgoing mail. When the mail is actually sent, trailing spaces will be stripped off of each line.

current-indexline-style
  current-indexline-style.

customized-hdrs
  You may add your own custom headers to outgoing messages. Each header you specify here must include the header tag (Reply-To:, Approved:, etc.) and may optionally include a value for that header. If you want to see these custom headers each time you compose a message, you must add them to your default-composer-hdrs list, otherwise they become part of the rich header set which you only see when you press the rich header command. (If you are looking for a way to change which headers are displayed when you view a message, take a look at the viewer-hdrs option instead.) Here's an example which shows how you might set your From address

  `From: Full Name <user@example.com>`

  and another showing how you might set a Reply-To address

  `Reply-To: user@example.com`

  You may also set non-standard header values here. For example, you could add

  `Organization: My Organization Name`

  or even

  `X-Favorite-Colors: Purple and Gold`

  If you include a value after the colon then that header will be included in your outgoing messages unless you delete it before sending. If a header in the Customized-Headers list has only a tag but no value, then it will not be included in outgoing messages unless you edit a value in manually. For example, if

  `Reply-To:`

  is in the list, then the Reply-To header will be available for editing but won't be included unless a value is added while in the composer.

  It's actually a little more complicated than that. The values of headers that you set with the Customized-Headers option are defaults. If the message you are about to compose already has a value for a header, that value is used instead of a value from your Customized-Headers. For example, if you are Replying to a message the Subject field will already be filled in. In that case, if the Customized-Headers list contains a Subject line, the custom subject will NOT be used. The subject derived from the subject of the message you are Replying to will be used instead.

  It is also possible to make header setting even more complicated and more automatic by using Roles, but if all you want to do is set a default value for a header, you don't need to think about Roles.

  If you change your From address you may also find it useful to add the changed From address to the alt-addresses configuration option.

  Limitation: Because commas are used to separate the list of Customized-Headers, it is not possible to have the value of a header contain a comma. Nor is there currently an "escape" mechanism provided to make this work.

  This option is displayed as "Customized Headers".

dead-letter-files
  This option affects Alpine's behavior when you cancel a message being composed. Alpine's usual behavior is to write the canceled message to a file named "dead.letter" in your home directory, or "DEADLETR" when using PC-Alpine, overwriting any previous message.

  If you set this option to a value higher than one, then that many copies of dead letter files will be saved. For example, if you set this option to "3" then you may have files named "DEADLETR", "DEADLETR2", and "DEADLETR3"; or "dead.letter", "dead.letter2", and "dead.letter3". In this example, the most recently cancelled message will be in "dead.letter", and the third most recently cancelled message will be in "dead.letter3". The fourth most recently cancelled message will no longer be saved.

  If you set this option to zero, then NO record of canceled messages is maintained.

  If the feature Quell-Dead-Letter-On-Cancel is set, that overrides whatever you set for this option. If this option had existed at the time, then the Quell feature would not have been added, but it is still there for backwards compatibility. So, in order for this option to have the desired effect, make sure the Quell feature is turned off.

default-composer-hdrs
  You can control which headers you want visible when composing outgoing email using this option. You can specify any of the regular set, any Rich Header, or any Customized-Hdrs which you have already defined. If you use this setting at all, you must specify all the headers you want to see, you can't just add to the regular header set. The default set is To:, Cc:, Attchmnt:, and Subject:.

  Note that the "Newsgroups:" header will be abbreviated in the Composer display, but should be spelled out in full here.

  This option is displayed as "Default Composer Headers".

default-fcc
  The name of the folder to which all outgoing mail goes is set here. The compiled-in default is sent-mail (UNIX) or sentmail (PC). It can be set to "" (two double quotes with nothing between them) to turn off saving copies of outgoing mail. If default-fcc is a relative file name, then it is relative to your default collection for saves (see folder-collections).

  This option is displayed as "Default Fcc (File carbon copy)".

default-saved-msg-folder
  This option determines the default folder name for Saves... If this is not a path name, it will be in the default collection for saves. Any valid folder specification, local or IMAP, is allowed. This default folder only applies when the saved-msg-name-rule doesn't override it. Unix Alpine default is normally saved-messages in the default folder collection. PC-Alpine default is SAVEMAIL (normally stored as SAVEMAIL.MTX).

  This option is displayed as "Default Saved Message Folder".

disable-these-authenticators
  This variable is a list of SASL (Simple Authentication and Security Layer) authenticators which will be disabled. SASL is a mechanism for authenticating to IMAP, POP3, SMTP, and other network servers.

  Alpine matches its list of supported authenticators with the server to determine the most secure authenticator that is supported by both. If no matching authenticators are found, Alpine will revert to plaintext login (or, in the case of SMTP, will be unable to authenticate at all).

  The candidates for disabling are listed below. There may be more if you compile Alpine with additional authenticators and/or a newer version of the c-client library.

  - GSSAPI
  - CRAM-MD5
  - PLAIN
  - LOGIN

  Normally, you will not disable any authenticators. There are two exceptions:

  1. You use a broken server that advertises an authenticator, but does not actually implement it.
  2. You have a Kerberos-capable version of Alpine and the server is also Kerberos-capable, but you can not obtain Kerberos credentials on the server machine, thus you desire to disable GSSAPI (which in turn disables Alpine's Kerberos support).

  It is never necessary to disable authenticators, since Alpine will try other authenticators before giving up. However, disabling the relevant authenticator avoids annoying error messages.

disable-these-drivers
  This variable is a list of mail drivers which will be disabled. The candidates for disabling are listed below. There may be more in the future if you compile Alpine with a newer version of the c-client library.

  - mbox
  - mbx
  - mh
  - mix
  - mmdf
  - mtx
  - mx
  - news
  - phile
  - tenex
  - unix

  The mbox driver enables the following behavior: if there is a file called `mbox` in your home directory, and if that file is either empty or in Unix mailbox format, then every time you open INBOX the mbox driver will automatically transfer mail from the system mail spool directory into the `mbox` file and delete it from the spool directory. If you disable the mbox driver, this will not happen.

  It is not recommended to disable the driver which supports the system default mailbox format. On most non-SCO systems, that driver is the unix driver. On most SCO systems, it is the mmdf driver. The system default driver may be configured to something else on your system; check with your system manager for additional information.

  It is most likely not very useful for you to disable any of the drivers other than possibly mbox. You could disable some of the others if you know for certain that you don't need them but the performance gain in doing so is very modest.

display-character-set
  See the discussion in International Character Sets for details.

display-filters
  This option defines a list of text-filtering commands (programs or scripts) that may be used to filter text portions of received messages prior to their use (e.g., presentation in the "Message Text" display screen). For security reasons, the full path name of the filter command must be specified.

  Display filters do not work with PC-Alpine.

  The command is executed and the message is piped into its standard input. The standard output of the command is read back by Alpine. The _TMPFILE_ token (see below) overrides this default behavior.

  The filter's use is based on the configured trigger string. The format of a filter definition is:

  <trigger> <command> <arguments>

  You can specify as many filters as you wish, separating them with a comma. Each filter can have only one trigger and command. Thus, two trigger strings which invoke the same command require separate filter specifications.

  The trigger is simply text that, if found in the message, will invoke the associated command. If the trigger contains any space characters, it must be placed within quotes. Likewise, should you wish a filter to be invoked unconditionally, define the trigger as the null string, "" (two consecutive double-quote characters). If the trigger string is found anywhere in the text of the message the filter is invoked. Placing the trigger text within the tokens defined below changes where within the text the trigger must be before considering it a match.

  Trigger Modifying Tokens:

  _CHARSET(string)_
    This token tells Alpine to invoke the supplied command if the text is in a character set matching string (e.g., ISO-8859-2 or ISO-2022-JP).
  _LEADING(string)_
    This token tells Alpine to invoke the supplied command if the enclosed string is found to be the first non-whitespace text.
    NOTE: Quotes are necessary if string contains the space character.
  _BEGINNING(string)_
    This token tells Alpine to invoke the supplied command if the enclosed string is found at the beginning of any line in the text.
    NOTE: Quotes are necessary if string contains the space character.

  The "command" and "arguments" portion is simply the command line to be invoked if the trigger string is found. Below are tokens that Alpine will recognize and replace with special values when the command is actually invoked.

  Command Modifying Tokens:

  _TMPFILE_
    When the command is executed, this token is replaced with the path and name of the temporary file containing the text to be filtered. Alpine expects the filter to replace this data with the filter's result. NOTE: Use of this token implies that the text to be filtered is not piped into standard input of the executed command and its standard output is ignored. Alpine restores the tty modes before invoking the filter in case the filter interacts with the user via its own standard input and output.
  _RESULTFILE_
    When the command is executed, this token is replaced with the path and name of a temporary file intended to contain a status message from the filter. Alpine displays this in the message status field.
  _DATAFILE_
    When the command is executed, this token is replaced with the path and name of a temporary file that Alpine creates once per session and deletes upon exit. The file is intended to be used by the filter to store state information between instances of the filter.
  _PREPENDKEY_
    When the command is executed, this token indicates that a random number will be passed down the input stream before the message text. This number could be used as a session key. It does not appear as a command-line argument. It is sent in this way to improve security. The number is unique to the current Alpine session and is only generated once per session.

  The feature disable-terminal-reset-for-display-filters is related.

  Performance caveat/considerations:
  Testing for the trigger and invoking the filter doesn't come for free. There is overhead associated with searching for the trigger string, testing for the filter's existence and actually piping the text through the filter. The impact can be reduced if the Trigger Modifying Tokens above are employed.

  Limitation:
  If Header Colors are being used, the sequences of bytes which indicate color changes will be contained in the text which is passed to the display-filter. If this causes problems you'll need to turn off Header Colors. The thirteen bytes which indicate a color change are the character \377 followed by \010 for a foreground color or \011 for a background color. Then comes eleven characters of RGB data which looks something like 255, 0,255, depending on the particular color, of course.

download-command
  This option affects the behavior of the Export command. It specifies a Unix program name, and any necessary command line arguments, that Alpine can use to transfer the exported message to your personal computer's disk.

download-command-prefix
  This option is used in conjunction with the download-command option. It defines text to be written to the terminal emulator (via standard output) immediately prior to starting the download command. This is useful for integrated serial line file transfer agents that permit command passing (e.g., Kermit's APC method).

editor
  UNIX Alpine only. Sets the name of the alternate editor for composing mail (message text only, not headers). It will be invoked with the "^_" command or it will be invoked automatically if the enable-alternate-editor-implicitly feature is set.

empty-header-message
  When sending, if both the To and Cc fields are empty and you are sending the message to a Bcc, Alpine will put a special address in the To line. The default value is "undisclosed-recipients: ;". The reason for this is to avoid embarrassment caused by some Internet mail transfer software that interprets a "missing" To: header as an error and replaces it with an Apparently-to: header that may contain the addresses you entered on the Bcc: line, defeating the purpose of the Bcc. You may change the part of this message that comes before the ": ;" by setting the empty-header-message variable to something else.

fcc-name-rule
  Determines default folder name for fcc when composing. Currently, Alpine will accept the values default-fcc, by-recipient, or last-fcc-used. If set to default-fcc, then Alpine will use the value defined in the default-fcc variable (which itself has a default) for the Fcc header field. If set to by-recipient, then Alpine will use the name of the recipient as a folder name for the fcc. The relevant recipient is the first address in the To field. If set to "last-fcc-used", then Alpine will offer to Fcc to whatever folder you used previously. In all cases, the field can still be edited after it is initially assigned. If the fcc field in the address book is set for the first To address, that value over-rides any value derived from this rule.

feature-list
  This is a list of the many features (options) which may be turned on or off. There is a separate section titled Configuration Features which explains each of the features. There is some additional explanation about the feature-list variable itself in Feature List Variable.

file-directory
  PC-Alpine only. This value affects the Composer's "^J Attach" command, the Attachment Index Screen's "S Save" command, and the Message Index's "E Export" command.

  Normally, when a filename is supplied that lacks a leading "path" component, Alpine assumes the file exists in the user's home directory. Under Windows operating systems, this definition isn't always clear. This feature allows you to explictly set where Alpine should look for files without a leading path.

  NOTE: this feature's value is ignored if either use-current-dir feature is set or the PINERC has a value for the operating-dir variable.

folder-collections
  This is a list of one or more collections where saved mail is stored. See the sections describing folder collections and collection syntax for more information. The first collection in this list is the default collection for Saves, including default-fcc's.

folder-extension
  PC-Alpine only. File extension used for local folder names. This is `.MTX` by default.

folder-reopen-rule
  Alpine normally checks for new mail in the currently open folder and in the INBOX every few minutes.

  There are some situations where automatic new-mail checking does not work. For example, if a mail folder is opened using the POP protocol or a newsgroup is being read using the NNTP protocol, then new-mail checking is disabled.

  It may be possible to check for new mail in these cases by reopening the folder. Alpine does not do this for you automatically, but you may do the commands manually to cause this to happen. You reopen by going back to the folder list screen from the message index screen with the "<" command, and then going back into the message index screen with the ">" command. (Actually, any method you would normally use to open a folder will work the same as the "<" followed by ">" method. For example, the GoTo Folder command will work, or you may use L to go to the Folder List screen and Carriage Return to reopen the folder.)

  There are some cases where Alpine knows that reopening the folder should be useful as a way to discover new mail. At the time of this writing, connections made using the POP protocol, news reading using the NNTP protocol, local news reading, and local ReadOnly folders which are in the traditional UNIX or the MMDF format all fall into this category. There are other cases where it may be a way to discover new mail, but Alpine has no way of knowing, so it might also just be an exercise in futility. All remote, ReadOnly folders other than those listed just above fall into this category. The setting of this option together with the type of folder controls how Alpine will react to the apparent attempt to reopen a folder.

  If you don't reopen, then you will just be back in the message index with no change. You left the index and came back, but the folder remained "open" the whole time. However, if you do reopen the folder, the folder is closed and then reopened. In this case, the current state of the open folder is lost. The New status, Important and Answered flags, selected state, Zoom state, collapsed or expanded state of threads, current message number, and any other temporary state is all lost when the reopen happens. For POP folders (but not NNTP newsgroups) the Deleted flags are also lost.

  In the possibilities listed below, the text says "POP/NNTP" in several places. That really implies the case where Alpine knows it is a good way to discover new mail, which is more than just POP and NNTP, but POP and NNTP are the cases of most interest. This option probably has more possible values than it deserves. They are:

  Always reopen
    Alpine will not ask whether you want to reopen but will just do the reopen whenever you type a command that implies a reopen, regardless of the access method. In other words, it is assumed you would always answer Yes if asked about reopening.
  Yes for POP/NNTP, Ask about other remote [Yes]
    Alpine will assume a Yes answer if the access method is POP or NNTP, but will ask you whether to reopen other remote folders, with a default answer of Yes.
  Yes for POP/NNTP, Ask about other remote [No]
    Alpine will assume a Yes answer if the access method is POP or NNTP, but will ask you whether to reopen other remote folders, with a default answer of No.
  Yes for POP/NNTP, No for other remote
    Alpine will assume a Yes answer if the access method is POP or NNTP, and will assume a No answer for all other remote folders.
  Always ask [Yes]
    Alpine will not differentiate based on access method. It will always ask for all remote folders, with a default answer of Yes.
  Always ask [No]
    Alpine will not differentiate based on access method. It will always ask for all remote folders, with a default answer of No.
  Ask about POP/NNTP [Yes], No for other remote
    Alpine will ask if the access method is POP or NNTP, with a default answer of Yes. It will never attempt to reopen other remote folders.
  Ask about POP/NNTP [No], No for other remote
    This is the default. Alpine will ask if the access method is POP or NNTP, with a default answer of No. It will never attempt to reopen other remote folders.
  Never reopen
    Alpine will never attempt to reopen already open folders.

  Remember, wherever it says POP or NNTP above it really means POP or NNTP or any of the other situations where it is likely that reopening is a good way to discover new mail.

  There is an alternative that may be of useful in some situations. Instead of manually checking for new mail you can set up a Mail Drop and automatically check for new mail.

folder-sort-rule
  This option controls the order in which folder list entries will be presented in the FOLDER LIST screen. Choose one of the following:
  Alphabetical
    sort by alphabetical name independent of type
  Alpha-with-dirs-last
    sort by alphabetical name grouping directory entries to the end of the list
  Alpha-with-dirs-first
    sort by alphabetical name grouping directory entries to the start of the list
  The normal default is Alphabetical.

font-name
  Winsock version of PC-Alpine only.

font-size
  Winsock version of PC-Alpine only.

font-style
  Winsock version of PC-Alpine only.

forced-abook-entry
  System-wide Alpine configuration files only. Force these address book entries into all writable personal address books. This is a list variable. Each item in the list has the form:

  > Nickname | Fullname | Address

  with optional whitespace in all the obvious places.

form-letter-folder
  A Form Letter Folder is a mail folder that is intended to contain messages that you have composed and that are intended to be sent in their original form repeatedly.

  Setting this variable will alter Alpine's usual behavior when you execute the Compose command. Normally, Alpine offers a chance to continue a postponed or interrupted message should one or the other exist. When this variable is set to a folder name that exists, Alpine will also offer the chance to select a message from the folder to insert into the composer, much like when continuing a postponed message. The difference, however, is that Alpine will not automatically delete the selected message from the Form Letter Folder.

  Setting this variable will also affect Alpine's behavior when you Postpone a message from the composer. Normally, Alpine simply stashes the message away in your Postponed-Folder. Regardless of the specified folder's existence, Alpine will ask which folder you intend the message to be stored in. Choose the "F" option to store the message in your Form Letter Folder. This is the most common way to add a message to the folder.

  Another method of adding messages to the folder is via the Alpine composer's `Fcc:` field. If you are sending a message that you expect to send in the same form again, you can enter the Form Letter Folder's name in this field. Alpine, as usual, will copy the message as it's sent. Note, when you later select this message from your Form Letter Folder, it will have the same recipients as the original message.

  To delete a message from the Form Letter Folder, you can either select the folder from a suitable FOLDER LIST screen, or use the Delete command in the MESSAGE INDEX offered when selecting from the folder as part of the Compose command. You can delete a Form Letter Folder just as any other folder from a suitable FOLDER LIST screen.

  You may find that the Roles facility can be used to replace the Form Letter Folder.

global-address-book
  A list of shared address books. Each entry in the list is an optional nickname followed by a pathname or file name relative to the home directory. A SPACE character separates the nickname from the rest of the line. Instead of a local pathname or file name, a remote folder name can be given. This causes the address book to be a Remote address book. Remote folder syntax is discussed in Syntax for Remote Folders. This list will be added to the address-book list to arrive at the complete set of address books. Global address books are defined to be ReadOnly.

goto-default-rule
  This value affects Alpine's behavior when using the Goto command. There are five possible values for this option:

  folder-in-first-collection
    Alpine will offer the most recently visited folder in the default collection found in the "Collection List" screen as the default.

  inbox-or-folder-in-first-collection
    If the current folder is INBOX, Alpine will offer the most recently visited folder in the default collection found in the "Collection List" screen. If the current folder is other than INBOX, INBOX is offered as the default.

  inbox-or-folder-in-recent-collection
    This is Alpine's default behavior. If the current folder is INBOX, Alpine will offer the last open folder as the default. If the current folder is other than INBOX, INBOX is offered as the default.

  first-collection-with-inbox-default
    Instead of offering the most recently visited folder in the default collection, the default collection is offered but with INBOX as the default folder. If you type in a folder name it will be in the default collection. If you simply accept the default, however, your INBOX will be opened.

  most-recent-folder
    The last accepted value simply causes the most recently opened folder to be offered as the default regardless of the currently opened folder.

  NOTE: The default while a newsgroup is open remains the same; the last open newsgroup.

header-general-background-color
header-general-foreground-color
  Header Colors.

image-viewer
  This variable names the program to call for displaying parts of a MIME message that are of type IMAGE. If your system supports the mailcap system, you don't need to set this variable.

inbox-path
  This specifies the name of the folder to use for the INBOX. By default this is unset and the system's default is used. The most common reason for setting this is to open an IMAP mailbox for the INBOX. For example, {imap5.u.example.edu}inbox will open the user's standard INBOX on the mail server, imap5.

incoming-archive-folders
  This is like read-message-folder, only more general. This is a list of folder pairs, with the first separated from the second in the pair by a space. The first folder in a pair is the folder you want to archive, and the second folder is the folder that read messages from the first should be moved to. Depending on how you define the auto-move-read-msgs feature, you may or may not be asked when you leave the first folder if you want read messages to be moved to the second folder. In either case, moving the messages means they will be deleted from the first folder.

  If these are not path names, they will be in the default collection for Saves. Any valid folder specification, local or remote (via IMAP), is allowed. There is no default.

incoming-check-interval
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  This option specifies, in seconds, how often Alpine will check for new mail and state changes in Incoming Folders when Incoming Folders Checking is turned on. The default is 3 minutes (180). This value applies only to folders that are local to the system that Alpine is running on or that are accessed using the IMAP protocol. The similar option incoming-check-interval-secondary applies to all other monitored folders.

incoming-check-interval-secondary
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  This option together with the option incoming-check-interval specifies, in seconds, how often Alpine will check for new mail and state changes in Incoming Folders when Incoming Folders Checking is turned on. The default for this option is 3 minutes (180). For folders that are local to this system or that are accessed using the IMAP protocol the value of the option incoming-check-interval is used. For all other monitored folders, the value of this option is used.

  The reason there are two separate options is because it is usually less expensive to check local and IMAP folders than it is to check other types, like POP or NNTP folders. You may want to set this secondary value to a higher number than the primary check interval.

incoming-check-list
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  When monitoring the Incoming Message Folders for Unseen messages Alpine will normally monitor all Incoming Folders. You may use this option to restrict the list of monitored folders to a subset of all Incoming Folders.

incoming-check-timeout
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  Sets the time in seconds that Alpine will attempt to open a network connection used for monitoring for Unseen messages in Incoming Folders. The default is 5. If a connection has not completed within this many seconds Alpine will give up and consider it a failed connection.

incoming-folders
  This is a list of one or more folders other than INBOX that may receive new messages. This list is slightly special in that it is always expanded in the folder lister. In the future, it may become more special. For example, it would be nice if Alpine would monitor the folders in this list for new mail.

incoming-startup-rule
  This rule affects Alpine's behavior when opening the INBOX or another folder from the "INCOMING MESSAGE FOLDERS". This rule tells Alpine which message to make the current message when an incoming folder is opened. There are seven possible values for this option:

  first-unseen
    The current message will be the first unseen message which has not been marked deleted, or the last message if all of the messages have been seen. This is the default setting.

  first-recent
    This is similar to first-unseen. Instead of first unseen it is the first recent message. A message is considered to be recent if it arrived since the last time the folder was open (by any mail client, not just the current one). So this option causes the current message to be set to the first undeleted-recent message, or the last message if none is both undeleted and recent.

  first-important
    This will result in the current message being set to the first message marked Important (but not Deleted). If no messages are marked Important, then it will be the last message.

  first-important-or-unseen
    This selects the minimum of the first unseen and the first important messages.

  first-important-or-recent
    This selects the first of the first recent and the first important messages.

  first
    Set the current message to the first undeleted message unless all are deleted. In that case set it to the last message.

  last
    Set the current message to the last undeleted message unless all are deleted. In that case set it to the last message.

incoming-unseen-background-color
incoming-unseen-foreground-color
  Incoming Unseen Color.

index-answered-background-color
index-answered-foreground-color
index-arrow-background-color
index-arrow-foreground-color
index-deleted-background-color
index-deleted-foreground-color
index-from-background-color
index-from-foreground-color
index-highpriority-background-color
index-highpriority-foreground-color
index-important-background-color
index-important-foreground-color
index-lowpriority-background-color
index-lowpriority-foreground-color
index-new-background-color
index-new-foreground-color
index-opening-background-color
index-opening-foreground-color
index-recent-background-color
index-recent-foreground-color
index-subject-background-color
index-subject-foreground-color
index-to-me-background-color
index-to-me-foreground-color
index-unseen-background-color
index-unseen-foreground-color
  Index Colors.

index-format
  This option is used to customize the content of lines in the MESSAGE INDEX screen. Each line is intended to convey some amount of immediately relevant information about each message in the current folder.

  Alpine provides a pre-defined set of informational fields with reasonable column widths automatically computed. You can, however, replace this default set by listing special tokens in the order you want them displayed.

  The list of available tokens is here.

  Spaces are used to separate listed tokens. Additionally, you can specify how much of the screen's width the taken's associated data should occupy on the index line by appending the token with a pair of parentheses enclosing either a number or percentage. For example, "SUBJECT(13)" means to allocate 13 characters of space to the subject column, and "SUBJECT(20%)" means to allocate 20% of the available space to the subjects column, while plain "SUBJECT" means the system will attempt to figure out a reasonable amount of space.

  There is always one space between every pair of columns, so if you use fixed column widths (like 13) you should remember to take that into account. Several of the fields are virtually fixed-width, so it doesn't make much sense to specify the width for them. The fields STATUS, FULLSTATUS, IMAPSTATUS, MSGNO, the DATE fields, SIZE, and DESCRIPSIZE all fall into that category. You may specify widths for those if you wish, but you're probably better off letting the system pick those widths.

  The default is equivalent to:

  `index-format=STATUS MSGNO SMARTDATETIME24 FROMORTO(33%) SIZENARROW SUBJKEY(67%)`

  This means that the four fields without percentages will be allocated first, and then 33% and 67% of the remaining space will go to the from and subject fields. If one of those two fields is specified as a percentage and the other is left for the system to choose, then the percentage is taken as an absolute percentage of the screen, not of the space remaining after allocating the first four columns. It doesn't usually make sense to do it that way. If you leave off all the widths, then the subject and from fields (if both are present) are allocated space in a 2 to 1 ratio, which is almost exactly the same as the default.

  What you are most likely to do with this configuration option is to specify which fields appear at all, which order they appear in, and the percentage of screen that is used for the from and subject fields if you don't like the 2 to 1 default.

  If you want to retain the default format that Pine 4.64 had, use

  `Index-Format=STATUS MSGNO DATE FROMORTO(33%) SIZE SUBJKEY(67%)`

  and set the feature Disable-Index-Locale-Dates.

initial-keystroke-list
  This is a comma-separated list of keystrokes which Alpine executes on startup. Items in the list are usually just characters, but there are some special values. SPACE, TAB, and CR mean a space character, tab character, and a carriage return, respectively. F1 through F12 stand for the twelve function keys. UP, DOWN, LEFT, and RIGHT stand for the arrow keys. Control characters are represented with ^<char>. A restriction is that you can't mix function keys and character keys in this list even though you can, in some cases, mix them when running Alpine. A user can always use only character keys in the startup list even if he or she is using function keys normally, or vice versa. If an element in this list is a string surrounded by double quotes (") then it will be expanded into the individual characters in the string, excluding the double quotes.

kblock-passwd-count
  System-wide Alpine configuration files only. Number of times a user will have to enter a password when they run the keyboard lock command in the main menu.

keyboard-character-set
  See the discussion in International Character Sets for details.

keylabel-background-color
keylabel-foreground-color
  KeyLabel Color.

keyname-background-color
keyname-foreground-color
  KeyName Color.

keywords
  You may define your own set of keywords and optionally set them on a message by message basis. These are similar to the "Important" flag which the user may set using the Flag command. The difference is that the Important flag is always present for each folder. User-defined keywords are chosen by the user. You may set up the list of possible keywords here, or you may add keywords from the Flag Details screen that you can get to after typing the Flag (*) command. After the keywords have been defined, then you use the Flag command to set or clear the keywords in each message. The behavior of the flag command may be modified by using the Enable-Flag-Screen-Implicitly option or the Enable-Flag-Screen-Keyword-Shortcut option.

  Keywords may be used when Selecting messages (Select Keyword). Keywords may also be used in the Patterns of Rules (Filters, Indexcolors, etc). Filter rules may be used to set keywords automatically. Keywords may be displayed as part of the Subject of a message by using the SUBJKEY or SUBJKEYINIT tokens in the Index-Format option. The Keyword-Surrounding-Chars option may be used to modify the display of keywords using SUBJKEY and SUBJKEYINIT slightly. Keywords may also be displayed in a column of their own in the MESSAGE INDEX screen by using the KEY or KEYINIT tokens. It is also possible to color keywords in the index using the Setup/Kolor screen (Keyword Colors). Keywords are not supported by all mail servers.

  You may give keywords nicknames if you wish. If the keyword definition you type in contains a SPACE character, then the actual value of the keyword is everything after the last SPACE and the nickname for that keyword is everything before the last SPACE. For example, suppose you are trying to interoperate with another email program which uses a particular keyword with an unpleasant name. Maybe it uses a keyword called

  `VendorName.SoftwareName.08`

  but for you that keyword means that the message is work-related. You could define a keyword to have the value

  `Work VendorName.SoftwareName.08`

  and then you would use the name "Work" when dealing with that keyword in Alpine. If you defined it as

  `My Work VendorName.SoftwareName.08`

  the nickname would be everything before the last SPACE, that is the nickname would be "My Work".

  Some commonly used keywords begin with dollar signs. This presents a slight complication, because the dollar sign is normally used to signify environment variable expansion in the Alpine configuration. In order to specify a keyword which begins with a dollar sign you must precede the dollar sign with a second dollar sign to escape its special meaning. For example, if you want to include the keyword

  `$Label1`

  as one of your possible keywords, you must enter the text

  `$$Label1`

  instead.

keyword-surrounding-chars
  This option controls a minor aspect of Alpine's MESSAGE INDEX and MESSAGE TEXT screens. If you have modified the Index-Format option so that either the "SUBJKEY" or "SUBJKEYINIT" tokens are used to display keywords or their initials along with the Subject; then this option may be used to modify the resulting display slightly. By default, the keywords or initials displayed for these tokens will be surrounded with curly braces ({ and }) and a trailing space. For example, if keywords "Work" and "Now" are set for a message, the "SUBJKEY" token will normally look like

  `{Work Now} actual subject`

  and the SUBJKEYINIT token would look like

  `{WN} actual subject`

  The default character before the keywords is the left brace ({) and the default after the keywords is the right brace followed by a space (} ).

  This option allows you to change that. You should set it to two values separated by a space. The values may be quoted if they include space characters. So, for example, the default value could be specified explicitly by setting this option to

  `Keyword-Surrounding-Chars="{" "} "`

  The first part wouldn't need to be quoted (but it doesn't hurt). The second part does need the quotes because it includes a space character. If you wanted to change the braces to brackets you could use

  `Keyword-Surrounding-Chars="[" "] "`

  Inside the quotes you can use backslash quote to mean quote, so

  `Keyword-Surrounding-Chars="\"" "\" "`

  would produce

  `"Work Now" actual subject`

  It is also possible to color keywords in the index using the Setup/Kolor screen (Keyword Colors).

  It is not possible to change the fact that a space character is used to separate the keywords if more than one keyword is set for a message. It is also not possible to change the fact that there are no separators between the keyword initials if more than one keyword is set.

  This option is displayed as "Keyword Surrounding Characters".

last-time-prune-questioned
  Personal configuration file only. This variable records the month the user was last asked if his or her sent-mail folders should be pruned. The format is yy.mm. This is automatically updated by Alpine when the the pruning is done or declined. If a user wanted to make Alpine stop asking this question he or she could set this time to something far in the future. This may not be set in the system-wide configuration files. Note: The yy year is actually the number of years since 1900, so it will be equal to 101 in the year 2001.

last-version-used
  Personal configuration file only. This is set automatically by Alpine. It is used to keep track of the last version of Alpine that was run by the user. Whenever the version number increases, a new version message is printed out. This may not be set in the system-wide configuration files.

ldap-servers
  This is only available if Alpine was linked with an LDAP library when it was compiled. This variable is normally managed by Alpine though it can be set in the system-wide configuration files as well as the personal configuration. It is a list variable. Each item in the list contains quite a bit of extra information besides just the server name. To put this into a system-wide config file the easiest thing to do is to configure a personal Alpine for the LDAP server then copy the configuration line into the system-wide config file. Each item in the list looks like:

  > `server_name[:port] "quoted stuff"`

  The `server_name` is just a hostname and it is followed by an optional colon and port number. The default `port` is 389. Following the server name is a single SPACE character followed by a bunch of characters inside double quotes. The part inside the quotes is a set of tag = value pairs. Each tag is preceded by a slash (/) and followed by an equal sign. The value for that tag is the text up to the next slash. An example of some `quoted stuff` is:

  > `"/base=o=University of Washington, c=US/impl=0/.../nick=My Server"`

  This would set the search base for this server to `o=University of Washington, c=US`, set the implicit bit to zero, and set the nickname for the server to `My Server`. All of the tags correspond directly to items in the Setup/Directory screen so experiment with that if you want to see what the possible tags and values are.

literal-signature
  With this option your actual signature, as opposed to the name of a file containing your signature, is stored in the Alpine configuration file. If this is defined it takes precedence over the signature-file option.

  This is simply a different way to store the signature data. The signature is stored inside your Alpine configuration file instead of in a separate signature file. Tokens contained in the signature work the same way they do with the regular signature-file.

  The Setup/Signature command in Alpine's Main Menu will edit the literal-signature by default. However, if no literal-signature is defined and the file named in the signature-file option exists, then the latter will be used instead. Compose (Reply, Forward, ...) will default to using the literal-signature if defined, otherwise it will use the contents of the file named in signature-file.

  The Alpine composer is used to edit the literal-signature. The result of that edit is first converted to a C-style string before it is stored in the configuration file. In particular, the two character sequence \n (backslash followed by the character "n") will be used to signify a line-break in the signature. You don't have to enter the \n, but it will be visible in the SETUP CONFIGURATION window after you are done editing the signature.

mail-check-interval
  This option specifies, in seconds, how often Alpine will check for new mail. If set to zero, new-mail checking is disabled. (You can always manually force a new-mail check by typing ^L (Ctrl-L), which is also the command to refresh the screen, or by typing the Next command when the current message is the last message of the folder.) There is a minimum value for this option, normally 15 seconds. The default value is normally 150 seconds. The higher you set this option, the easier it is on the server.

  There are some situations where automatic new-mail checking does not work. See the discussion about new-mail checking in folder-reopen-rule.

  The new-mail checking will not happen exactly at the frequency that you specify. For example, Alpine may elect to defer a non-INBOX mail check if you are busy typing. Or, it may check more frequently than you have specified if that is thought to be necessary to keep the server from closing the connection to the folder due to inactivity. If Alpine checks for new mail as a side effect of another command, it will reset the timer, so that new-mail checking may seem to happen irregularly instead of every X seconds like clockwork.

  If you are anxious to know about new mail as soon as possible, set the check interval low, and you'll know about the new mail by approximately that amount of time after it arrives. If you aren't so worried about knowing right away, set this option to a higher value. That will save the server some processing time and may save you some of the time you spend waiting for new-mail checks to happen if you are dealing with a slow server or slow network connection.

  If you suspect that new-mail checking is causing slow downs for you, you may want to look into the options Quell-Mailchecks-Composing-Except-Inbox, Quell-Mailchecks-Composing-Inbox and Mail-Check-Interval-Noncurrent, which refine when mail checking is done.

  If the mailbox being check uses a Mail Drop then there is a minimum time (maildrop-check-minimum) between new-mail checks. Because of this minimum you may notice that new mail does not appear promptly when you expect it. The reason for this is to protect the server from over-zealous opening and closing of the Mail Drop folder, since that is a costly operation.

  A side effect of disabling mail checking is that there will be situations in which the user's IMAP connection will be broken due to inactivity timers on the server. Another side effect is that the user-input-timeout option won't work.

mail-check-interval-noncurrent
  This option is closely related to the Mail-Check-Interval option, as well as the Quell-Mailchecks-Composing-Except-Inbox and Quell-Mailchecks-Composing-Inbox options. If the "Mail-Check-Interval" option is set to zero, then automatic new-mail checking is disabled and this option will have no effect.

  Normally this option is set to zero, which means that the value used will be the same as the value for the "Mail-Check-Interval". If you set this option to a value different from zero (usually larger than the value for "Mail-Check-Interval") then that is the check interval that will be used for folders which are not the currently open folder or the INBOX. You may not even have any folders that are noncurrent and not the INBOX. If you do, it is likely that they are due to Stay-Open-Folders you have configured. This option also affects the rate of mail checking done on cached connections to folders you previously had open but are no longer actively using. You aren't expected to understand that last sentence, but if you are interested take a look at Max-Remote-Connections, and the related options.

mail-directory
  This variable was more important in previous versions of Alpine. Now it is used only as the default for storing personal folders (and only if there are no folder-collections defined). The default value is ~/mail on UNIX and ${HOME}\MAIL on a PC.

mailcap-search-path
  This variable is used to replace Alpine's default mailcap file search path. It takes one or more file names (full paths must be specified) in which to look for mail capability data.

maildrop-check-minimum
  New-mail checking for a Mail Drop is a little different from new mail checking for a regular folder. One of the differences is that the connection to the Mail Drop is not kept open and so the cost of checking (delay for you and additional load for the server) may be significant. Because of this additional cost we set a minimum time that must pass between checks. This minimum only applies to the automatic checking done by Alpine. If you force a check by typing ^L (Ctrl-L) or by typing the Next command when you are at the end of a folder index, then the check is done right away.

  This option specifies, in seconds, the minimum time between Mail Drop new-mail checks. You may want to set this minimum high in order to avoid experiencing some of the delays associated with the checks. Note that the time between checks is still controlled by the regular Mail-Check-Interval option. When Alpine is about to do an automatic check for new mail (because the Mail-Check-Interval has expired) then if the time since the last new-mail check of any open Mail Drops has been greater than the MailDrop-Check-Minimum, the Mail Drop is checked for new mail as well. Therefore, it is only useful to set this option to a value that is higher than the Mail-Check-Interval.

  If this option is set to zero, automatic Mail Drop new-mail checking is disabled. There is a minimum value, normally 60 seconds. The default value is normally 60 seconds as well. This applies to the INBOX and to the currently open folder if that is different from the INBOX.

max-remote-connections
  This option affects low-level behavior of Alpine. The default value for this option is 2. If your INBOX is accessed using the IMAP protocol from an IMAP server, that connection is kept open throughout the duration of your Alpine session, independent of the value of this option. The same is true of any Stay-Open-Folders you have defined. This option controls Alpine's behavior when connecting to remote IMAP folders other than your INBOX or your Stay-Open-Folders. It specifies the maximum number of remote IMAP connections (other than those mentioned above) that Alpine will use for accessing the rest of your folders. If you set this option to zero, you will turn off most remote connection re-use. It's difficult to understand exactly what this option does, and it is usually fine to leave it set to its default value. It is probably more likely that you will be interested in setting the Stay-Open-Folders option instead of changing the value of this option. A slightly longer explanation of what is going on with this option is given in the next paragraphs.

  There are some time costs involved in opening and closing remote IMAP folders, the main costs being the time you have to wait for the connection to the server and the time for the folder to open. Opening a folder may involve not only the time the server takes to do its processing but time that Alpine uses to do filtering. These times can vary widely. They depend on how loaded the server is, how large the folder being opened is, and how you set up filtering, among other things. Once Alpine has opened a connection to a particular folder, it will attempt to keep that connection open in case you use it again. In order to do this, Alpine will attempt to use the Max-Remote-Connections (the value of this option) IMAP connections you have alloted for this purpose.

  For example, suppose the value of this option is set to "2". If your INBOX is accessed on a remote server using the IMAP protocol, that doesn't count as one of the remote connections but it is always kept open. If you then open another IMAP folder, that would be your first remote connection counted as one of the Max-Remote-Connections connections. If you open a third folder the second will be left open, in case you return to it. You won't be able to tell it has been left open. It will appear to be closed when you leave the folder but the connection will remain in the background. Now suppose you go back to the second folder (the first folder after the INBOX). A connection to that folder is still open so you won't have to wait for the startup time to open it. Meanwhile, the connection to the third folder will be left behind. Now, if you open a fourth folder, you will bump into the Max-Remote-Connections limit, because this will be the third folder other than INBOX and you have the option set to "2". The connection that is being used for the third folder will be re-used for this new fourth folder. If you go back to the third folder after this, it is no longer already connected when you get there. You'll still save some time since Alpine will re-use the connection to the fourth folder and you have already logged in on that connection, but the folder will have to be re-opened from scratch.

  If a folder is large and the startup cost is dominated by the time it takes to open that folder or to run filters on it, then it will pay to make the value of this option large enough to keep it open. On the other hand, if you only revisit a handful of folders or if the folders are small, then it might make more sense to keep this number small so that the reconnect time (the time to start up a new connection and authenticate) is eliminated instead.

  You may also need to consider the impact on the server. On the surface, a larger number here may cause a larger impact on the server, since you will have more connections open to the server. On the other hand, not only will you be avoiding the startup costs associated with reopening a folder, but the server will be avoiding those costs as well.

  When twenty five minutes pass without any active use of an IMAP connection being saved for possible re-use, that connection will be shut down,

  This option is displayed as "Maximum Remote Connections".

meta-message-background-color
meta-message-foreground-color
  Meta-message Color.

mimetype-search-path
  This variable is used to replace Alpine's default mime.types file search path. It takes one or more file names (full paths must be specified) in which to look for file-name-extension to MIME type mapping data. See the Config Notes for details on Alpine's usage of the MIME.Types File.

new-version-threshold
  When a new version of Alpine is run for the first time it offers a special explanatory screen to the user upon startup. This option helps control when and if that special screen appears for users that have previously run Alpine. It takes as its value a Alpine version number. Alpine versions less than the specified value will supress this special screen while versions equal to or greater than that specified will behave normally.

newmail-fifo-path
  This option is only available in UNIX Alpine. However, there is a very similar feature built in to PC-Alpine. In PC-Alpine's Config menu at the top of the screen is an option called "New Mail Window".

  You may have Alpine create a FIFO special file (also called a named pipe, see mkfifo(3) and fifo(4)) where it will send a one-line message each time a new message is received in the current folder, the INBOX, or any open Stay-Open-Folders. To protect against two different Alpines both writing to the same FIFO, Alpine will only create the FIFO and write to it if it doesn't already exist.

  A possible way to use this option would be to have a separate window on your screen running the command

  `cat filename`

  where "filename" is the name of the file given for this option. Because the file won't exist until after you start Alpine, you must first start Alpine and then run the "cat" command. You may be tempted to use "tail -f filename" to view the new mail log. However, the common implementations of the tail command will not do what you are hoping.

  The width of the messages produced for the FIFO may be altered with the NewMail-Window-Width option.

  On some systems, fifos may only be created in a local filesystem. In other words, they may not be in NFS filesystems. This requirement is not universal. If the system you are using supports it, it should work. (It is often the case that your home directory is in an NFS filesystem. If that is the case, you might try using a file in the "/tmp" filesystem, which is usually a local filesytem.) Even when it is possible to use an NFS-mounted filesystem as a place to name the fifo (for example, your home directory), it will still be the case that the reader (probably the "cat" command) and the writer (Alpine) of the fifo must be running on the same system.

newmail-window-width
  UNIX Alpine only.

  This option is only useful if you have turned on the NewMail-FIFO-Path option. That option causes new mail messages to be sent to a fifo file. Those messages will be 80 characters wide by default. You can change the width of the messages by changing this option. For example, if you are reading those messages in another window you might want to set this width to the width of that other window.

  For UNIX Alpine, this option is only useful if you have turned on the NewMail-FIFO-Path option. That option causes new mail messages to be sent to a fifo file. Those messages will be 80 characters wide by default. You can change the width of those messages by changing this option. For example, if you are reading those messages in another window you might want to set this width to the width of that other window.

  If you are using PC-Alpine, it has an option in the Config menu to turn on the "New Mail Window". The present option also controls the width of that window.

news-active-file-path
  This option tells Alpine where to look for the "active file" for newsgroups when accessing news locally, rather than via NNTP. The default path is usually `/usr/lib/news/active`.

news-collections
  This is a list of collections where news folders are located. See the section describing collections for more information.

news-spool-directory
  This option tells Alpine where to look for the "news spool" for newsgroups when accessing news locally, rather than via NNTP. The default path is usually `/usr/spool/news`.

newsrc-path
  This option overrides the default name Alpine uses for your "newsrc" news status and subscription file. If set, Alpine will take this value as the full pathname for the desired newsrc file.

nntp-range
  This option applies only to newsgroups accessed using the NNTP protocol. It does not, for example, apply to newsgroups accessed using an IMAP-to-NNTP proxy.

  When you open a connection to a News server using the NNTP protocol, you normally have access to all of the articles in each newsgroup. If a server keeps a large backlog of messages it may speed performance some to restrict attention to only the newer messages in a group. This option allows you to set how many article numbers should be checked when opening a newsgroup. You can think of "nntp-range" as specifying the maximum number of messages you ever want to see. For example, if you only ever wanted to look at the last 500 messages in each newsgroup you could set this option to 500. In actuality, it isn't quite that. Instead, for performance reasons, it specifies the range of article numbers to be checked, beginning with the highest numbered article and going backwards from there. If there are messages that have been canceled or deleted their article numbers are still counted as part of the range.

  So, more precisely, setting the "nntp-range" will cause article numbers

  last_article_number - nntp-range + 1 through last_article_number

  to be considered when reading a newsgroup. The number of messages that show up in your index will be less than or equal to the value of "nntp-range".

  The purpose of this option is simply to speed up access when reading news. The speedup comes because Alpine can ignore all but the last nntp-range article numbers, and can avoid downloading any information about the ignored articles. There is a cost you pay for this speedup. That cost is that there is no way for you to see those ignored articles. The articles that come before the range you specify are invisible to you and to Alpine, as if they did not exist at all. There is no way to see those messages using, for example, an unexclude command or something similar. The only way to see those articles is to set this option high enough (or set it to zero) and then to reopen the newsgroup.

  If this option is set to 0 (which is also the default), then the range is unlimited. This option applies globally to all NNTP servers and to all newsgroups on those servers. There is no way to set different values for different newsgroups or servers.

nntp-server
  One or more NNTP servers (host name or IP address) which Alpine will use for reading and posting news. If you read and post news to and from a single NNTP server, you can get away with only setting the nntp-server variable and leaving the news-collections variable unset.

  When you define an NNTP server, Alpine implicitly defines a news collection for you, assuming that server as the news server and assuming that you will use the NNTP protocol and a local newsrc configuration file for reading news. See also Configuring News.

  Your NNTP server may offer NNTP "AUTHINFO SASL" or "AUTHINFO USER" authentication. It may even require it. If your NNTP server does offer such authentication you may specify a user name parameter to cause Alpine to attempt to authenticate. The same is true for the server name in a folder collection which uses NNTP. This parameter requires an associated value, the username identifier with which to establish the server connection. An example might be:

  `nntpserver.example.com/user=katie`

  If authentication is offered by the server, this will cause Alpine to attempt to use it. If authentication is not offered by the server, this will cause Alpine to fail with an error similar to:

  `Error: NNTP authentication not available`

  For more details about the server name possibilities see Server Name Syntax.

normal-background-color
normal-foreground-color
  Normal Color.

opening-text-separator-chars
  This option controls a minor aspect of Alpine's MESSAGE INDEX screen. With some setups the text of the subject is followed by the opening text of the message if there is any room available in the index line. If you have configured your Index-Format option to include one of the Subject tokens which causes this behavior (SUBJECTTEXT, SUBJKEYTEXT, or SUBJKEYINITTEXT), then this option may be used to modify what is displayed slightly. By default, the Subject is separated from the opening text of the message by the three characters space dash space;

  `" - "`

  Use this option to set it to something different. The value must be quoted if it includes any space characters. For example, the default value could be specified explicitly by setting this option to

  `Opening-Text-Separator-Chars=" - "`

  This option is displayed as "Opening Text Separator Characters".

operating-dir
  System-wide Alpine configuration files only. This names the root of the tree to which the user is restricted when reading and writing folders and files. It is usually used in the fixed configuration file.

patterns-filters2
  Matching patterns and their corresponding actions are stored in this variable. These patterns are used with Filtering. This variable is normally maintained through the Setup/Rules/Filters configuration screen. It is a list variable. Each member of the list is a single pattern/action pair, or it can be a file which contains zero or more lines of pattern/action pairs. The only way to create a filters file is to use the InsertFile command in the Setup/Rules/Filters screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing filter patterns into the file. This isn't very convenient but it isn't thought that many users will need this functionality. The purpose of filter files is for sharing filters.

  This option is displayed as "Patterns Filters".

patterns-indexcolors
  Matching patterns and their corresponding actions are stored in this variable. These patterns are used for Index Line Colors. This variable is normally maintained through the Setup/Rules/Indexcolor configuration screen. It is a list variable. Each member of the list is a single pattern/action pair, or it can be a file which contains zero or more lines of pattern/action pairs. The only way to create a indexcolor file is to use the InsertFile command in the Setup/Rules/Indexcolor screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing patterns into the file. This isn't very convenient but it isn't thought that many users will need this functionality. The purpose of indexcolor files is for sharing indexcolors.

patterns-other
  Matching patterns and their corresponding actions are stored in this variable. These patterns are used with Miscellaneous Rules configuration. This variable is normally maintained through the Setup/Rules/Other configuration screen. It is a list variable. Each member of the list is a single pattern/action pair, or it can be a file which contains zero or more lines of pattern/action pairs. The only way to create a rules file is to use the InsertFile command in the Setup/Rules/Other screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing rules into the file. This isn't very convenient but it isn't thought that many users will need this functionality.

patterns-roles
  Matching patterns and their corresponding actions are stored in this variable. These patterns are used with Roles. This variable is normally maintained through the Setup/Rules/Roles configuration screen. It is a list variable. Each member of the list is a single pattern/action pair, or it can be a file which contains zero or more lines of pattern/action pairs. The only way to create a roles file is to use the InsertFile command in the Setup/Rules/Roles screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing roles into the file. This isn't very convenient but it isn't thought that many users will need this functionality. The purpose of role files is for sharing roles.

patterns-scores2
  Matching patterns and their corresponding actions are stored in this variable. These patterns are used with Scoring. This variable is normally maintained through the Setup/Rules/SetScores configuration screen. It is a list variable. Each member of the list is a single pattern/action pair, or it can be a file which contains zero or more lines of pattern/action pairs. The only way to create a scores file is to use the InsertFile command in the Setup/Rules/SetScores screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing scoring patterns into the file. This isn't very convenient but it isn't thought that many users will need this functionality. The purpose of scoring files is for sharing scoring rules.

  This option is displayed as "Patterns Scores".

patterns-search
  Matching patterns for use with the Select command are stored in this variable. These patterns are used with Search Rules configuration. This variable is normally maintained through the Setup/Rules/searCh configuration screen. It is a list variable. Each member of the list is a single pattern, or it can be a file which contains zero or more lines of patterns. The only way to create a rules file is to use the InsertFile command in the Setup/Rules/searCh screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing rules into the file. This isn't very convenient but it isn't thought that many users will need this functionality.

personal-name
  Personal configuration file only. User's full personal name. On UNIX systems, the default is taken from the accounts data base (`/etc/passwd`). The easiest way to change the full From address is with the customized-hdrs variable.

personal-print-category
  Personal configuration file only. This is the category that the default print command belongs to. There are three categories. Category 1 is an attached printer which uses the ANSI escape sequence, category 2 is the standard system print command, and category 3 is the set of custom printer commands defined by the user. This just helps Alpine figure out where to put the cursor when the user runs the Setup/Printer command. This is not used by PC-Alpine.

personal-print-command
  Personal configuration file only. This corresponds to the third category in the printer menu, the personally selected print commands. This variable contains the list of custom commands that the user has entered in the Setup/Printer screen. This is not used by PC-Alpine.

posting-character-set
  See the discussion in International Character Sets for details.

postponed-folder
  The folder where postponed messages are stored. The default is postponed-msgs (Unix) or POSTPOND (PC).

print-font-name
  Winsock version of PC-Alpine only.

print-font-size
  Winsock version of PC-Alpine only.

print-font-style
  Winsock version of PC-Alpine only.

printer
  Personal configuration file only. This is the current setting for a user's printer. This variable is set from Alpine's Setup/Printer screen.

prompt-background-color
prompt-foreground-color
  Prompt Color.

pruned-folders
  This variable allows you to define a list of one or more folders that Alpine will offer to prune for you in the same way it automatically offers to prune your "sent-mail" folder each month. Each folder in this list must be a folder in your default folder collection (the first folder collection if you have more than one), and it is just the relative name of the folder in the collection, not the fully-qualified name. It is similar to sent-mail. Instead of something like

  `pruned-folders={servername}mail/folder`

  the correct value to use would be

  `folder`

  There is an assumption here that your first collection is the folders in

  `{servername}mail`

  Once a month, for each folder listed, Alpine will offer to move the contents of the folder to a new folder of the same name but with the previous month's date appended. Alpine will then look for any such date-appended folder names created for a previous month, and offer each one it finds for deletion.

  If you decline the first offer, no mail is moved and no new folder is created.

  The new folders will be created in your default folder collection.

pruning-rule
  By default, Alpine will ask at the beginning of each month whether or not you want to rename your sent-mail folder to a name like sent-mail-month-year. (See the feature prune-uses-yyyy-mm to change the format of the folder to sent-mail-yyyy-mm.) It will also ask whether you would like to delete old sent-mail folders. If you have defined read-message-folder or pruned-folders Alpine will also ask about pruning those folders. With this option you may provide an automatic answer to the rename questions and you may tell Alpine to not ask about deleting old folders.

quote1-background-color
quote1-foreground-color
quote2-background-color
quote2-foreground-color
quote3-background-color
quote3-foreground-color
  Quote Colors.

quote-replace-string
  This option specifies what string to use as a quote when viewing a message. The standard way of quoting messages when replying is the string "> " (quote space). With this variable set, viewing a message will replace occurrences of "> " with the replacement string. This setting works best when Reply-Indent-String or the equivalent setting in your correspondents' mail programs is set to the default "> ", but it will also work fine with the Reply-Indent-String set to ">".

  Enable the feature Quote-Replace-Nonflowed to also have quote-replacement performed on non-flowed messages.

  Setting this option will replace ">" and "> " with the new setting. This string may include trailing spaces. To preserve those spaces enclose the full string in double quotes.

  No padding to separate the text of the message from the quote string is added. This means that if you do not add trailing spaces to the value of this variable, text will be displayed right next to the quote string, which may be undesirable. This can be avoided by adding a new string separated by a space from your selection of quote string replacement. This last string will be used for padding. For example, setting this variable to ">" " " has the effect of setting ">" as the quote-replace-string, with the text padded by a space from the last quote string to make it more readable.

  One possible setting for this variable could be " " (four spaces wrapped in quotes), which would have the effect of indenting each level of quoting four spaces and removing the ">"'s. Different levels of quoting could be made more discernible by setting colors for quoted text.

  Replying to or forwarding the viewed message will preserve the original formatting of the message, so quote-replacement will not be performed on messages that are being composed.

quote-suppression-threshold
  This option should be used with care. It will cause some of the quoted text to be eliminated from the display when viewing a message in the MESSAGE TEXT screen. For example, if you set the Quote-Suppression-Threshold to the value "5", this will cause quoted text that is longer than five lines to be truncated. Quoted text of five or fewer consecutive lines will be displayed in its entirety. Quoted text of more than six lines will have the first five lines displayed followed by a line that looks something like

  `[ 12 lines of quoted text hidden from view ]`

  As a special case, if exactly one line of quoted text would be hidden, the entire quote will be shown instead. So for the above example, quoted text which is exactly six lines long will will be shown in its entirety. (In other words, instead of hiding a single line and adding a line that announces that one line was hidden, the line is just shown.)

  If the sender of a message has carefully chosen the quotes that he or she includes, hiding those quotes may change the meaning of the message. For that reason, Alpine requires that when you want to set the value of this variable to something less than four lines, you actually have to set it to the negative of that number. So if you want to set this option to "3", you actually have to set it to "-3". The only purpose of this is to get you to think about whether or not you really want to do this! If you want to delete all quoted text you set the value of this option to the special value "-10".

  The legal values for this option are

  0 | Default, don't hide anything
  -1,-2,-3 | Suppress quote lines past 1, 2, or 3 lines
  4,5,6,... | Suppress if more than that many lines
  -10 | Suppress all quoted lines

  If you set this option to a non-default value you may sometimes wish to view the quoted text that is not shown. When this is the case, the HdrMode (Header Mode) command may be used to show the hidden text. Typing the "H" command once will show the hidden text. Typing a second "H" will also turn on Full Header mode. The presence or absence of the HdrMode command is determined by the "Enable-Full-Header-Cmd" Feature-List option in your Alpine configuration, so you will want to be sure that is turned on if you use quote suppression.

  For the purposes of this option, a quote is a line that begins with the character ">".

  Quotes are only suppressed when displaying a message on the screen. The entire quote will be left intact when printing or forwarding or something similar.

read-message-folder
  If set, mail in the INBOX that has been read but not deleted is moved here, or rather, the user is asked whether or not he or she wants to move it here upon quitting Alpine.

remote-abook-history
  Sets how many extra copies of remote address book data will be kept in each remote address book folder. The default is three. These extra copies are simply old versions of the data. Each time a change is made a new copy of the address book data is appended to the folder. Old copies are trimmed, if possible, when Alpine exits. An old copy can be put back into use by deleting and expunging newer versions of the data from the folder. Don't delete the first message from the folder. It is a special header message for the remote address book and it must be there. This is to prevent regular folders from being used as remote address book folders and having their data destroyed.

remote-abook-metafile
  Personal configuration file only. This is usually set by Alpine and is the name of a file that contains data about remote address books and remote configuration files.

remote-abook-validity
  Sets the minimum number of minutes that a remote address book will be considered up to date. Whenever an entry contained in a remote address book is used, if more than this many minutes have passed since the last check the remote server will be queried to see if the address book has changed. If it has changed, the local copy is updated. The default value is five minutes. The special value of -1 means never check. The special value of zero means only check when the address book is first opened.

  No matter what the value, the validity check is always done when the address book is about to be changed by the user. The check can be initiated manually by typing ^L (Ctrl-L) while in the address book maintenance screen for the remote address book.

reply-indent-string
  This variable specifies an aspect of Alpine's Reply command. When a message is replied to and the text of the message is included, the included text usually has the string "> " prepended to each line indicating it is quoted text.

  This option specifies a different value for that string. If you wish to use a string which begins or ends with a space, enclose the string in double quotes.

  Besides simple text, the prepended string can be based on the message being replied to. The following tokens are substituted for the message's corresponding value:

  _FROM_
    This token gets replaced with the message sender's "username". At most six characters are used.
  _NICK_
    This token gets replaced with the nickname of the message sender's address as found in your addressbook. If no addressbook entry is found, Pine replaces the characters "_NICK_" with nothing. At most six characters are used.
  _INIT_
    This token gets replaced with the initials of the sender of the message.
  When the enable-reply-indent-string-editing feature is enabled, you are given the opportunity to edit the string, whether it is the default or one automatically generated using the above tokens.

reply-leadin
  This option is used to customize the content of the introduction line that is included when replying to a message and including the original message in the reply. The normal default (what you will get if you delete this variable) looks something like:

  `On Sat, 24 Oct 1998, Fred Flintstone wrote:`

  where the day of the week is only included if it is available in the original message. You can replace this default with text of your own. The text may contain tokens that are replaced with text that depends on the message you are replying to. For example, the default is equivalent to:

  `On _DAYDATE_, _FROM_ wrote:`

  Since this variable includes regular text mixed with special tokens the tokens have to be surrounded by underscore characters. For example, to use the token "`PREFDATE`" you would need to use "`_PREFDATE_`", not "`PREFDATE`".

  The list of available tokens is here.

  By default, the text is all on a single line and is followed by a blank line. If your Reply-Leadin turns out to be longer than 80 characters when replying to a particular message, it is shortened. However, if you use the token

  `_NEWLINE_`

  anywhere in the value, no end of line or blank line is appended, and no shortening is done. The _NEWLINE_ token may be used to get rid of the blank line following the text, to add more blank lines, or to form a multi-line Reply-Leadin. To clarify how _NEWLINE_ works recall that the default value is:

  `On _DAYDATE_, _FROM_ wrote:`

  That is equivalent to

  `On _DAYDATE_, _FROM_ wrote:_NEWLINE__NEWLINE_`

  In the former case, two newlines are added automatically because no _NEWLINE_ token appears in the value of the option (for backwards compatibility). In the latter case, the newlines are explicit. If you want to remove the blank line that follows the Reply-Leadin text use a single _NEWLINE_ token like

  `On _DAYDATE_, _FROM_ wrote:_NEWLINE_`

  Because of the backwards compatibility problem, it is not possible to remove all of the ends of lines, because then there will be no _NEWLINE_ tokens and that will cause the automatic adding of two newlines! If you want, you may embed newlines in the middle of the text, as well, producing a multi-line Reply-Leadin.

  By default, no attempt is made to localize the date. If you prefer a localized form you may find that one of the tokens _PREFDATE_ or _PREFDATETIME_ is a satisfactory substitute. If you want more control one of the many other date tokens, such as _DATEISO_, might be better.

  For the adventurous, there is a way to conditionally include text based on whether or not a token would result in specific replacement text. For example, you could include some text based on whether or not the _NEWS_ token would result in any newsgroups if it was used. It's explained in detail here.

  In the very unlikely event that you want to include a literal token in the introduction line you must precede it with a backslash character. For example,

  `\_DAYDATE_ = _DAYDATE_`

  would produce something like

  `_DAYDATE_ = Sat, 24 Oct 1998`

  It is not possible to have a literal backslash followed by an expanded token.

reverse-background-color
reverse-foreground-color
  Reverse Color.

rsh-command
  Sets the format of the command used to open a UNIX remote shell connection. The default is "%s %s -l %s exec /etc/r%sd". All four "%s" entries MUST exist in the provided command. The first is for the command's pathname, the second is for the host to connnect to, the third is for the user to connect as, and the fourth is for the connection method (typically `imap`).

rsh-open-timeout
  Sets the time in seconds that Alpine will attempt to open a UNIX remote shell connection. The default is 15, the minimum non-zero value is 5, and the maximum is unlimited. If this is set to zero rsh connections will be completely disabled.

rsh-path
  Sets the name of the command used to open a UNIX remote shell connection. The default is typically `/usr/ucb/rsh`.

saved-msg-name-rule
  Determines default folder name when Saving. If set to default-folder (which is the default setting), then Alpine will offer the folder "saved-messages" (UNIX) or "SAVEMAIL" (PC) for Saving messages. The default folder offered in this way may be changed by using the configuration variable default-saved-msg-folder.

  If this rule is set to last-folder-used, Alpine offers to Save to the folder you last successfully Saved a message to (this session). The first time you Save a message in a session, Alpine offers to Save the message to the default folder.

  Choosing any of the by- options causes Alpine to attempt to get the chosen option's value for the message being Saved (or for the first message being Saved if using an aggregate Save). For example, if by-from is chosen, Alpine attempts to get the value of who the message came from (i.e. the from address). Alpine then attempts to Save the message to a folder matching that value. If by-from is chosen and no value is obtained, Alpine uses by-sender. The opposite is also true. If by-recipient was chosen and the message was posted to a newsgroup, Alpine will use the newsgroup name. If by-replyto is chosen and no value is obtained, Alpine uses by-from.

  If any of the "by-realname" options are chosen, Alpine will attempt to use the personal name part of the address instead of the mailbox part. If any of the "by-nick" options are chosen, the address is looked up in your address book and if found, the nickname for that entry is used. Only simple address book entries are checked, not distribution lists. Similarly, if any of the "by-fcc" options are chosen, the fcc from the corresponding address book entry is used. If by-realname, or the by-nick or by-fcc lookups result in no value, then if the chosen option ends with the "then-from", "then-sender", "then-replyto", or "then-recip" suffix, Alpine reverts to the same behavior as "by-from", "by-sender", "by-replyto", or "by-recip" depending on which option was specified. If the chosen option doesn't end with one of the "then-" suffixes, then Alpine reverts to the default folder when no match is found in the address book.

  Here is an example to make some of the options clearer. If the message is From

  `Fred Flintstone <flint@bedrock.org>`

  and this rule is set to "by-from", then the default folder offered in the save dialog would be "flint".

  If this rule is set to "by-realname-of-from" then the default would be "Fred Flintstone".

  If this rule is set to "by-nick-of-from" then Alpine will search for the address "flint@bedrock.org" in your address book. If an entry is found and it has a nickname associated with it, that nickname will be offered as the default folder. If not, the default saved message folder will be offered as the default.

  If this rule is set to "by-fcc-of-from" then Alpine will search for the address "flint@bedrock.org" in your address book. If an entry is found and it has an Fcc associated with it, that Fcc will be offered as the default folder. If not, the default saved message folder will be offered as the default.

  If this rule is set to "by-nick-of-from-then-from" then Alpine will search for the address "flint@bedrock.org" in your address book. If an entry is found and it has a nickname associated with it, that nickname will be offered as the default folder. If it is not found (or has no nickname) then the default offered will be the same as it would be for the "by-from" rule. That is, it would be "flint"

  This option is displayed as "Saved Message Name Rule".

scroll-margin
  This option controls when Alpine's line-by-line scrolling occurs. Typically, when a selected item is at the top or bottom screen edge and the UP or DOWN (and Ctrl-P or Ctrl-N) keys are pressed, the displayed items are scrolled down or up by a single line.

  This option allows you to tell Alpine the number of lines from the top and bottom screen edge that line-by-line scrolling should occur. For example, setting this value to one (1) will cause Alpine to scroll the display when you move to select an item on the display's top or bottom edge (instead of moving when you move off the edge of the screen).

  By default, this variable is zero (0), indicating that scrolling happens when you move up or down to select an item immediately off the display's top or bottom edge.

selectable-item-background-color
selectable-item-foreground-color
  Selectable-item Color.

sending-filters
  This option defines a list of text-filtering commands (programs and scripts) that may be selectively invoked to process a message just before it is sent. If set, the Composer's ^X Send command will allow you to select which filter (or none) to apply to the message before it is sent. For security reasons, the full path of the filter program must be specified.

  Sending filters do not work with PC-Alpine and sending filters are not used if the feature send-without-confirm is set.

  Command Modifying Tokens:

  _RECIPIENTS_
    When the command is executed, this token is replaced with the space delimited list of recipients of the message being sent.
  _TMPFILE_
    When the command is executed, this token is replaced with the path and name of the temporary file containing the text to be filtered. Alpine expects the filter to replace this data with the filter's result. NOTE: Use of this token implies that the text to be filtered is not piped into standard input of the executed command and its standard output is ignored. Alpine restores the tty modes before invoking the filter in case the filter interacts with the user via its own standard input and output.
  _RESULTFILE_
    When the command is executed, this token is replaced with the path and name of a temporary file intended to contain a status message from the filter. Alpine displays this in the message status field.
  _DATAFILE_
    When the command is executed, this token is replaced in the command line with the path and name of a temporary file that Alpine creates once per session and deletes upon exit. The file is intended to be used by the filter to store state information between instances of the filter.
  _PREPENDKEY_
    When the command is executed, this token indicates that a random number will be passed down the input stream before the message text. It is not included as a command-line argument. This number could be used as a session key. It is sent in this way to improve security. The number is unique to the current Alpine session and is only generated once per session.
  _INCLUDEALLHDRS_
    When the command is executed, this token indicates that the headers of the message will be passed down the input stream before the message text. It is not included as a command-line argument. The filter should, of course, remove the headers before returning control to Alpine.
  _MIMETYPE_
    When the command is executed, this token is replaced in the command name with a temporary file name used to accept any new MIME Content-Type information necessitated by the output of the filter. Upon the filter's exit, if the file contains new MIME type information, Alpine verifies its format and replaces the outgoing message's MIME type information with that contained in the file. This is basically a cheap way of sending something other than Text/Plain.

sendmail-path
  This names the path to an alternative program, and any necessary arguments, to be used in posting mail messages. See the section on SMTP and Sendmail for more details.

signature-file
  This is the name of a file which will be automatically inserted into outgoing messages. It typically contains information such as your name, email address and organizational affiliation. Alpine adds the signature into the message as soon as you enter the composer so you can choose to remove it or edit it on a message by message basis. Signature file placement in message replies is controlled by the signature-at-bottom setting in the feature list.

  This defaults to `~/.signature` on UNIX and <PINERC directory>`\PINE.SIG` on a PC.

  To create or edit your signature file choose Setup from the Main Menu and then select S for Signature (Main/Setup/Signature). This puts you into the Signature Editor where you can enter a few lines of text containing your identity and affiliation.

  If the filename is followed by a vertical bar (|) then instead of reading the contents of the file the file is assumed to be a program which will produce the text to be used on its standard output. The program can't have any arguments and doesn't receive any input from Alpine, but the rest of the processing works as if the contents came from a file.

  Instead of storing the data in a local file, the signature data may be stored remotely in an IMAP folder. In order to do this, you must use a remote name for the file. A remote signature-file name might look like:

  `{myimaphost.myschool.k12.wa.us}mail/signature`

  or, if you have an SSL-capable version of Alpine, you might try

  `{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/signature`

  The syntax used here is the same as the syntax used for remote configuration files from the command line. Note that you may not access an existing signature file remotely, you have to create a new folder which contains the signature data. If the name you use here for the signature file is a remote name, then when you edit the file from the Setup/Signature command the data will be stored remotely in the folder. You aren't required to do anything special to create the folder, it gets created automatically if you use a remote name.

  Besides regular text, the signature file may also contain (or a signature program may produce) tokens which are replaced with text which usually depends on the message you are replying to or forwarding. For example, if the signature file contains the token

  `_DATE_`

  anywhere in the text, then that token is replaced by the date the message you are replying to or forwarding was sent. If it contains

  `_CURDATE_`

  that is replaced with the current date. The first is an example of a token which depends on the message you are replying to (or forwarding) and the second is an example which doesn't depend on anything other than the current date. You have to be a little careful with this facility since tokens which depend on the message you are replying to or forwarding will be replaced by nothing in the case where you are composing a new message from scratch. The use of roles may help you in this respect. It allows you to use different signature files in different cases.

  The list of tokens available for use in the signature file is here.

  Instead of, or along with the use of roles to give you different signature files in different situations, there is also a way to conditionally include text based on whether or not a token would result in specific replacement text. For example, you could include some text based on whether or not the _NEWS_ token would result in any newsgroups if it was used. This is explained in detail here. This isn't for the faint of heart.

  In the very unlikely event that you want to include a literal token in the signature you must precede it with a backslash character. For example,

  `\_DAYDATE_ = _DAYDATE_`

  would produce something like

  `_DAYDATE_ = Sat, 24 Oct 1998`

  It is not possible to have a literal backslash followed by an expanded token.

signature-background-color
signature-foreground-color
  Signature Color.

smime-public-cert-directory
  UNIX Alpine only.

  If the option smime-public-cert-container is set then this option will have no effect.

  Normally, Public Certificates for use with S/MIME will be stored in the directory which is the value of this option. Those certificates will be stored in PEM format, one certificate per file. The name of the file for the certificate corresponding to

  `emailaddress`

  should be

  `emailaddress.crt`

  For example, a file for user@example.com would be in the file

  `user@example.com.crt`

  in this directory.

  Use the Setup/SMIME screen to modify this variable.

  Typically, the public certificates that you have will come from S/MIME signed messages that are sent to you. Alpine will extract the public certificate from the signed message and store it in the certificates directory. These PEM format public certificates look something like:

      -----BEGIN CERTIFICATE-----
      MIIFvTCCBKWgAwIBAgIQD4fYFHVI8T20yN4nus097DANBgkqhkiG9w0BAQUFADCB
      rjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
      Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
      ...
      2b9KGqDyMWW/rjNnmpjzjT2ObGM7lRA8lke4FLOLajhrz4ogO3b4DFfAAM1VSZH8
      D6sOwOLJZkLY8FRsfk63K+2EMzA2+qAzMKupgeTLqXIf
      -----END CERTIFICATE-----

  - General S/MIME Overview

  This option is displayed as "S/MIME - Public Cert Directory".

smime-public-cert-container
  UNIX Alpine only.

  If this option is set it will be used instead of smime-public-cert-directory

  This option gives you a way to store certificates remotely on an IMAP server instead of storing the certificates one per file locally. In order to do that you just give this option a remote folder name for a folder which does not yet exist. The name is similar to the name you might use for a remote configuration file. A remote folder name might look something like:

  `{myimaphost.myschool.k12.wa.us}mail/publiccerts`

  Use the Setup/SMIME screen to modify this variable.

  - General S/MIME Overview

  This option is displayed as "S/MIME - Public Cert Container".

smime-private-key-directory
  UNIX Alpine only.

  In order to sign outgoing S/MIME messages you will need a personal digital ID certificate. You will usually get such a certificate from a certificate authority such as Thawte or CAcert. (In order to encrypt outgoing messages you don't need a personal digital ID, you need the public certificate of the recipient instead.) If the option smime-private-key-container is set then this option will have no effect.

  Normally, Private Keys for use with S/MIME will be stored in the directory which is the value of this option. Those certificates will be stored in PEM format, one certificate per file. The name of the file for the certificate corresponding to your

  `emailaddress`

  should be

  `emailaddress.key`

  For example, if your address is user@example.com the name of the file would be

  `user@example.com.key`

  in this directory.

  Use the Setup/SMIME screen to modify this variable.

  Typically, the private key that you have will come from a Certificate Authority. The private key should be stored in a PEM format file that looks something like:

      -----BEGIN RSA PRIVATE KEY-----
      Proc-Type: 4,ENCRYPTED
      DEK-Info: DES-EDE3-CBC,2CBD328FD84CF5C6

      YBEXYLgLU9NJoc1V+vJ6UvcF08RX54S6jXsmgL0b5HGkudG6fhnmHkH7+UCvM5NI
      SXO/F8iuZDfs1VGG0NyitkFZ0Zn2vfaGovBvm15gx24b2xnZDLRB7/bNZkurnK5k
      VjAjZ2xXn2hFp2GJwqRdmxYNqsKGu52B99oti5HUWuZ2GFRaWjn5hYOqeApZE2uA
      ...
      oSRqfI51UdSRt0tmGhHeTvybUVrHm9eKft8TTGf+qSBqzSc55CsmoVbRzw4Nfhix
      m+4TJybNGNfAgOctSkEyY/OCb49fRRQTCBZVIhzLGGmpYmkO55HbIA==
      -----END RSA PRIVATE KEY-----

  - General S/MIME Overview

  This option is displayed as "S/MIME - Private Key Directory".

smime-private-key-container
  UNIX Alpine only.

  If this option is set it will be used instead of smime-private-key-directory.

  This option gives you a way to store keys remotely on an IMAP server instead of storing the keys one per file locally. In order to do that you just give this option a remote folder name for a folder which does not yet exist. The name is similar to the name you might use for a remote configuration file. A remote folder name might look something like:

  `{myimaphost.myschool.k12.wa.us}mail/privatekeys`

  Use the Setup/SMIME screen to modify this variable.

  - General S/MIME Overview

  This option is displayed as "S/MIME - Private Key Container".

smime-cacert-directory
  UNIX Alpine only.

  If the option smime-cacert-container is set then this option will have no effect.

  CACert is a shorthand name for certification authority certificate. Normally Alpine will use the CACerts that are located in the standard system location for CACerts. It may be the case that one of your correspondents has a Digital ID which has been signed by a certificate authority that is not in the regular set of system certificate authorities. You may supplement the system list by adding further certificates of your own. These should be stored in the directory which is the value of this option. The certificates will be stored in PEM format, one certificate per file. The names of the files can be anything ending in ".crt".

  Use the Setup/SMIME screen to modify this variable.

  These PEM format CA certificates look very similar to your public certificates for particular email addresses (smime-public-cert-directory).

  - General S/MIME Overview

  This option is displayed as "S/MIME - Cert Authority Directory".

smime-cacert-container
  UNIX Alpine only.

  If this option is set it will be used instead of smime-cacert-directory.

  This option gives you a way to store certificates remotely on an IMAP server instead of storing the certificates one per file locally. In order to do that you just give this option a remote folder name for a folder which does not yet exist. The name is similar to the name you might use for a remote configuration file. A remote folder name might look something like:

  `{myimaphost.myschool.k12.wa.us}mail/cacerts`

  Use the Setup/SMIME screen to modify this variable.

  - General S/MIME Overview

  This option is displayed as "S/MIME - Cert Authority Container".

smtp-server
  One or more SMTP servers (host name or IP address) which Alpine will use for outgoing mail. If not set, Alpine passes outgoing email to the sendmail program on the local machine. PC-Alpine users must have this variable set in order to send mail as they have no sendmail program.

  Your SMTP server may offer SMTP AUTH authentication. It may even require it. If your SMTP server offers SMTP AUTH authentication you may specify a "user" name parameter to cause Alpine to attempt to authenticate. This parameter requires an associated value, the username identifier with which to establish the server connection. An example might be:

  `smtpserver.example.com/user=katie`

  If AUTH authentication is offered by the server, this will cause Alpine to attempt to use it. If AUTH authentication is not offered by the server, this will cause Alpine to fail sending with an error similar to:

  `Error: SMTP authentication not available`

  Another type of authentication that is used by some ISPs is called "POP before SMTP" or "IMAP before SMTP", which means that you have to authenticate yourself to the POP or IMAP server by opening a mailbox before you can send mail. To do this, you usually only have to open your INBOX.

  You may tell Alpine to use the Message Submission port (587) instead of the SMTP port (25) by including the "submit" parameter in this option. At this time "/submit" is simply equivalent to specifying port 587, though it may imply more than that at some point in the future. Some ISPs are blocking port 25 in order to reduce the amount of spam being sent to their users. You may find that the submit option allows you to get around such a block.

  `smtpserver.example.com/submit`

  To specify any non-standard port number on the SMTP server you may follow the hostname with a colon followed by the portnumber.

  `smtpserver.example.com:12345`

  Normally, when a connection is made to the Smtp-Server Alpine will attempt to negotiate a secure (encrypted) session using Transport Layer Security (TLS). If that fails then a non-encrypted connection will be attempted instead. You may specify that a TLS connection is required if you wish. If you append "/tls" to the name then the connection will fail instead of falling back to a non-secure connection.

  `smtpserver.example.com/tls`

  See the SMTP Servers section or the Server Name Syntax section for some more details.

  This option is displayed as "SMTP Server (for sending)".

sort-key
  This variable sets up the default Message Index sorting. The default is to sort by arrival order (the order the messages arrived in the folder). It has the same functionality as the -sort command line argument and the $ command in the "Folder Index". If a sort-key is set, then all folders open during the session will have that as the default sort order.

speller
  UNIX Alpine only.

  For PC-Alpine, you must install the aspell library code that you may get from http://aspell.net/win32/.

  This option affects the behavior of the ^T (spell check) command in the Composer. It specifies the program invoked by ^T in the Composer. By default, Alpine uses the system's "spell" command. Alpine will use the command defined by this option (if any) instead. When invoking the spell-checking program, Alpine appends a tempfile name (where the message is passed) to the command line. Alpine expects the speller to correct the spelling in that file. When you exit from the speller program Alpine will read the tmpfile back into the composer.

  For Unix Alpine the program ispell works well as an alternate spell checker. If your Unix system has ispell it is probably reasonable to make it the default speller by configuring it as the default in the system configuration file, `/usr/local/lib/pine.conf`.

  If this option is not set, then the system's spell command is used. The spell command does not work the same as the alternate speller. It produces a list of misspelled words on its standard output, instead, and doesn't take a tempfile as an argument. Don't set this speller option to the standard Unix spell command. That won't work. If you want to use the standard Unix spell command, set the speller option to nothing.

ssh-command
  Sets the format of the command used to open a UNIX secure shell connection. The default is "%s %s -l %s exec /etc/r%sd". All four "%s" entries MUST exist in the provided command. The first is for the command's pathname, the second is for the host to connnect to, the third is for the user to connect as, and the fourth is for the connection method (typically `imap`).

ssh-open-timeout
  Sets the time in seconds that Alpine will attempt to open a UNIX secure shell connection. The default is 15, the minimum non-zero value is 5, and the maximum is unlimited. If this is set to zero ssh connections will be completely disabled.

ssh-path
  Sets the name of the command used to open a UNIX secure shell connection. The default is typically `/usr/bin/ssh`.

standard-printer
  System-wide configuration file only. Specifies a list of commands for category 2 of the Setup/Printer screen, the standard print command section. This is not used by PC-Alpine.

status-background-color
status-foreground-color
  Status Color.

status-message-delay
  This option has evolved over time, causing the possible values to be counter-intuitive. Read carefully before you set this option. First we explain what the option does, then there is a longer discussion following that.

  If this is set to zero, the default value, it has no effect. Positive and negative values serve two similar, but different purposes.

  If it is set to a positive number, it causes the cursor to move to the status line whenever a status message is printed and pause there for this many seconds. It will probably only be useful if the show-cursor feature is also turned on. Setting this option to a postive number can only be used to increase the status message delay. This may be useful for Braille displays, or other non-traditional displays.

  If it is set to a negative number the interpretation is a bit complicated. Negative numbers are used to decrease the amount of delay Alpine uses to allow you to read important status messages. Of course, this may cause you to miss some important messages. If you see a message flash by but miss what it says you can use the Journal command from the Main menu to read it. If you set this option to a negative value, the delay will be no more than one second less than the absolute value of the value you set. So if you set it to -1, the delay will be no more than zero seconds, no delay at all. If you set it to -2, the delay will be no more than 1 second. And so on, -3 is 2 seconds, -4 is 3 seconds, ... If the delay that Alpine would have used by default is less than this delay, then the smaller delay set by Alpine will be used. Setting this option to a negative value can only reduce the amount of delay, never increase it.

  Here is a more detailed explanation. Status messages are the messages which show up spontaneously in the status message line, the third line from the bottom of the screen. By default, Alpine assigns each status message it produces a minimum display time. Some status messages have a minimum display time of zero. You can see an example of such a message by paging up in this help text until you reach the top of the screen. If you try to page past the top you will see the message

  `[Already at start of help text]`

  in the status line. If there is another more important use of the status message line this message might be replaced quickly, or it even might not be shown at all. However, if there is no reason to get rid of the message, it might stay there for several seconds while you read the help. An example where it is replaced immediately happens when you page up in the help text past the top of the screen, but then type the "WhereIs" command right after paging up. The message will disappear immediately without causing a delay (unless you have set this option to a positive value) to allow you to type input for the "WhereIs" command. Since it isn't a very important message, Alpine has set its minimum display time to zero seconds.

  Other messages have minimum display times of three or more seconds. These are usually error messages that Alpine thinks you ought to see. For example, it might be a message about a failed Save or a failed folder open. It is often the case that this minimum display time won't delay you in any way because the status message line is not needed for another reason. However, there are times when Alpine has to delay what it is doing in order to display a status message for the minimum display time. This happens when a message is being displayed and Alpine wants to ask for input from the keyboard. For example, when you Save a message you use the status message line. You get a prompt there asking for the name of the folder to save to. If there is a status message being displayed that has not yet displayed for its minimum time Alpine will display that status message surrounded with the characters > and < to show you that it is delaying. That might happen, for example, if you tried to save to a folder that caused an error, then followed that immediately with another Save command. You might find yourself waiting for a status message like

  `[>Can't get write access to mailbox, access is readonly<]`

  to finish displaying for three seconds. If that is something you find happening to you frequently, you may use negative values of this option to decrease or eliminate that delay, at the risk of missing the message.

stay-open-folders
  This option affects low-level behavior of Alpine. There is no default value for this option. It is related to the options Preopen-Stayopen-Folders, Max-Remote-Connections, and offer-expunge-of-Stayopen-Folders.

  Note: changes made to this list take effect the next time you open a folder in the list.

  This is a list of folders that will be permanently kept open once they are first opened. The names in this list may be either the nickname of an Incoming folder or the full technical specification of a folder. The folders in this list need not be remote IMAP folders, they could usefully be local folders, as well. If a folder in the list is a newsgroup or is not accessed either locally or via IMAP, then the entry will be ignored. For example, folders accessed via NNTP or POP3 will not be kept open, since the way that new mail is found with those protocols involves closing and reopening the connection.

  Once a Stay Open folder has been opened, new-mail checking will continue to happen on that folder for the rest of the Alpine session. Your INBOX is always implicitly included in this Stay-Open list and doesn't need to be added explicitly.

  Another difference that you may notice between a Stay Open folder and a non-Stay Open folder is which message is selected as the current message when you enter the folder index. Normally, the starting position for an incoming folder (which most Stay Open folders will likely be) is controlled by the Incoming-Startup-Rule. However, if a folder is a Stay Open folder, when you re-enter the folder after the first time the current message will be the same as it was when you left the folder. An exception is made if you use the TAB command to get to the folder. In that case, the message number will be incremented by one from what it was when you left the folder.

  The above special behavior is thought to be useful. However, it is special and different from what you might at first expect. The feature Use-Regular-Startup-Rule-for-Stayopen-Folders may be used to turn off this special treatment.

  If the message that was current when you left the folder no longer exists, then the regular startup rule will be used instead.

  This option is displayed as "Stayopen Folders".

tcp-open-timeout
  Sets the time in seconds that Alpine will attempt to open a network connection. The default is 30, the minimum is 5, and the maximum is system defined (typically 75). If a connection has not completed within this many seconds Alpine will give up and consider it a failed connection.

tcp-query-timeout
  When Alpine times out a network read or write it will normally just display a message saying "Still waiting". However, if enough time has elapsed since it started waiting it will offer to let you break the connection. That amount of time is set by this option, which defaults to 60 seconds, has a minimum of 5 seconds, and a maximum of 1000 seconds.

tcp-read-warning-timeout
  Sets the time in seconds that Alpine will wait for a network read before warning you that things are moving slowly and possibly giving you the option to break the connection. The default is 15 seconds. The minimum is 5 seconds and the maximumn is 1000 seconds.

tcp-write-warning-timeout
  Sets the time in seconds that Alpine will wait for a network write before warning you that things are moving slowly and possibly giving you the option to break the connection. The default is 0 which means it is unset. If set to a non-zero value, the minimum is 5 and the maximum is 1000.
threading-display-style
  When a folder is sorted by Threads or OrderedSubject, this option will affect the MESSAGE INDEX display. By default, Alpine will display the MESSAGE INDEX in the "show-thread-structure" style if a folder is sorted by Threads or OrderedSubject. The possible values are:

  none
    Regular index display. The same index line as would be displayed without threading is used. The only difference will be in the order of the messages.
  show-thread-structure
    Threaded Subjects will be indented and vertical bars and horizontal lines will be added to make it easier to see the relationships among the messages in a thread (a conversation).
  mutt-like
    This is the same as the option above except that the Subject is suppressed (is blank) if it matches the previous Subject in the thread. The name comes from the email client Mutt. Here is an example of what a mutt-like index might look like. In this example, the first column represents the message number, the threading-index-style is set to "regular-index-with-expanded-threads", and the Threading-Lastreply-Character is set to a backslash:

            1    Some topic
            2  . Subject           original message in thread
            3    |->               reply to 2
            4  . |->               another reply to 2
            5  . | \->             reply to 4
            6  . |   \->           reply to 5
            7    |     \->         reply to 6
            8    |->               another reply to 2
            9  . |->New subject    another reply to 2 but with a New subject
           10    | |->             reply to 9
           11    | \->             another reply to 9
           12    |   \->           reply to 11
           13    \->               final reply to 2
           14    Next topic

  indent-subject-1
    Threaded Subjects will be indented one space per level of the conversation. The bars and lines that show up in the show-thread-structure display will not be there with this style.
  indent-subject-2
    Same as above but indent two spaces per level instead of one space.
  indent-from-1
    Similar to indent-subject-1, except that instead of indenting the Subject field one space the From field of a thread will be indented one space per level of the conversation.
  indent-from-2
    Same as above but indent two spaces per level instead of one space.
  show-structure-in-from
    The structure of the thread is illustrated with indenting, vertical bars, and horizontal lines just like with the show-thread-structure option, but the From field is used to show the relationships instead of the Subject field.

threading-expanded-character
  The Threading-Expanded-Character option has a small effect on the MESSAGE INDEX display when using a threading-display-style other than none. The value of this option is a single character. This character is used to indicate that part of a thread has been expanded and could be collapsed if desired with the "/" Collapse/Expand command. By default, the value of this option is a dot (.).

  If this option is set to the Empty Value, then the column (and the following blank column) will be deleted from the display.

  This option is closely related to the threading-indicator-character option. Another similar option which affects the thread display is the threading-lastreply-character option.

threading-index-style
  When a folder is sorted by Threads or OrderedSubject, this option will affect the INDEX displays. The possible values are:

  regular-index-with-expanded-threads
    This is the default display. If the configuration option threading-display-style is set to something other than "none", then this setting will cause Alpine to start off with a MESSAGE INDEX with all of the threads expanded. That is, each message will have a line in the MESSAGE INDEX display. The Collapse/Expand command (/) may be used to manually collapse or expand a thread or subthread (see also slash-collapses-entire-thread).

    This setting affects the display when the folder is first threaded. The collapsed state may also be re-initialized by re-sorting the folder manually using the SortIndex command ($). After re-sorting the threads will once again all be expanded, even if you have previously collapsed some of them.

    If "threading-display-style" is set to "none", then the display will be the regular default Alpine MESSAGE INDEX, but sorted in a different order.

  regular-index-with-collapsed-threads
    If the configuration option threading-display-style is set to something other than "none", then this setting will cause Alpine to start out with all of the threads collapsed instead of starting out with all of the threads expanded. The Collapse/Expand command (/) may be used to manually collapse or expand a thread or subthread (see also slash-collapses-entire-thread).

    This setting affects the display when the folder is first threaded. The collapsed state may also be re-initialized by re-sorting the folder manually using the SortIndex command ($). After re-sorting the threads will once again all be collapsed, even if you have previously expanded some of them.

  separate-index-screen-always
    With this setting and the next, you will see an index of threads instead of an index of messages, provided you have sorted by Threads or OrderedSubject.

    The THREAD INDEX contains a '*' in the first column if any message in the thread is marked Important. If not, it contains a '+' if any message in the thread is to you. The second column is blank. The third column contains a 'D' if all of the messages in the thread are deleted. Otherwise, it contains an 'N' if any of the messages in the thread are New.

    When you view a particular thread from the THREAD INDEX you will be in the MESSAGE INDEX display but the index will only contain messages from the thread you are viewing.

  separate-index-screen-except-for-single-messages
    This is very similar to the option above. When you are in the THREAD INDEX, one of the available commands is "ViewThd". With the setting "separate-index-screen-always" (the option above) when you view a particular thread you will be in the MESSAGE INDEX display and the index will only contain messages from the thread you are viewing. If the thread you are viewing consists of a single message, the MESSAGE INDEX will be an index with only one message in it. If you use this "separate-index-screen-except-for-single-messages" setting instead, then that index which contains a single message will be skipped and you will go directly from the THREAD INDEX into the MESSAGE TEXT screen.

threading-indicator-character
  The Threading-Indicator-Character option has a small effect on the MESSAGE INDEX display when using a threading-display-style other than none and sorting by Threads or OrderedSubject. The value of this option is a single character. This character is used to indicate that part of a thread (a conversation) is hidden beneath a message. The message could be expanded if desired with the "/" Collapse/Expand command. By default, the value of this option is the greater than sign (>).

  If this option is set to the Empty Value, then the column (and the following blank column) will be deleted from the display.

  This option is closely related to the threading-expanded-character option. Another similar option which affects the thread display is the threading-lastreply-character option.

threading-lastreply-character
  The Threading-Lastreply-Character option has a small effect on the MESSAGE INDEX display when using a threading-display-style of show-thread-structure, mutt-like, or show-structure-in-from; and sorting by Threads or OrderedSubject. The value of this option is a single character. This character is used instead of the vertical line character when there are no more replies directly to the parent of the current message. It can be used to "round-off" the bottom of the vertical line by setting it to a character such as a backslash (\) or a backquote (`). The default value of this option is the backslash character (\). This option may not be set to the Empty Value. In that case, the default will be used instead.

  This option is displayed as "Threading Last Reply Character".

title-background-color
title-foreground-color
  Title Color.

title-closed-background-color
title-closed-foreground-color
  Title-closed Color.

titlebar-color-style
  titlebar-color-style.

unknown-character-set
  A text message should either be made up of all US-ASCII characters or it should contain a charset label which tells the software which character set encoding to use to interpret the message. Sometimes a malformed message may be unlabeled but contain non-ascii text. This message is outside of the standards so any attempt to read it could fail. When Alpine attempts to read such a message it will try to interpret the text in the character set you specify here. For example, if you have correspondents who send you unlabeled messages that are usually made up of characters from the WINDOWS-1251 character set, setting this unknown-character-set to `WINDOWS-1251` will allow you to read those messages. Of course, if the unlabeled message is actually in some other character set, then you may see garbage on your screen.

  In the Setup/Config screen you may choose from a list of all the character sets Alpine knows about by using the "T" ToCharsets command.

upload-command
  This option affects the behavior of the Composer's ^R (Read File) and ^J (Attach File, in the header) commands. It specifies a Unix program name, and any necessary command line arguments, that Alpine can use to transfer files from your personal computer into messages that you are composing.

upload-command-prefix
  This option is used in conjunction with the upload-command option. It defines text to be written to the terminal emulator (via standard output) immediately prior to starting the upload command. This is useful for integrated serial line file transfer agents that permit command passing (e.g., Kermit's APC method).

url-viewers
  List of programs to use to open Internet URLs. This value affects Alpine's handling of URLs that are found in the text of messages you read. Normally, only URLs Alpine can handle directly are automatically offered for selection in the "Message Text" screen. When one or more comma delimited Web browsers capable of deciphering URLs on their command line are added here, Alpine will choose the first available browser to display URLs it doesn't recognize.

  Additionally, to support various connection methods and browsers, each entry in this list can begin with the special token `_TEST(test-string)_`. The `test-string` is a shell command that Alpine will run and which must exit with a status of zero for Alpine to consider that browser for use (the other criteria is that the browser must exist as a full path or a path relative to your home directory).

  Now for an example:

  > `url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape, /usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT`

  This example shows that for the first browser in the list to be used the environment variable `DISPLAY` must be defined. If it is, then the file `/usr/local/bin/netscape` must exist. If either condition is not met, then the file `/usr/local/bin/lynx` must exist. If it doesn't, then the final path and file must exist. Note that the last entry is a DOS/Windows path. This is one way to support Alpine running on more than one architecture with the same configuration file.

use-only-domain-name
  Can be set to yes or no. Anything but yes means no. If set to yes the first label in the host name will be lopped off to get the domain name and the domain name will be used for outgoing mail and such. That is, if the host name is carson.u.example.edu and this variable is set to yes, then u.example.edu will be used on outgoing mail. Only meaningful if user-domain is NOT set.

user-domain
  Sets the domain or host name for the user, overriding the system host or domain name. See the domain name section. The easiest way to change the full From address is with the customized-hdrs variable.

user-id
  PC-Alpine only and personal configuration file only. Sets the username that is placed on all outgoing messages. The username is the part of the address that comes before the "@". The easiest way to change the full From address is with the customized-hdrs variable.

user-input-timeout
  If this is set to an integer greater than zero, then this is the number of hours to wait for user input before Alpine times out. If Alpine is in the midst of composing a message or is waiting for user response to a question, then it will not timeout. However, if Alpine is sitting idle waiting for the user to tell it what to do next and the user does not give any input for this many hours, Alpine will exit. No expunging or moving of read messages will take place. It will exit similarly to the way it would exit if it received a hangup signal. This may be useful for cleaning up unused Alpine sessions which have been forgotten by their owners. The Alpine developers envision system administrators setting this to a value of several hours (24?) so that it won't surprise a user who didn't want to be disconnected.

viewer-hdr-colors
  This variable holds the optional Header Colors and patterns which have been defined by the user. This is usually modified by using the Header Colors section of the Setup Color screen.

viewer-hdrs
  You may change the default list of headers that are viewed by listing the headers you want to view here. If the headers in your viewer-hdrs list are present in the message, then they will be shown. The order of the headers you list will also be honored. If the special value all-except is included as the first header in the viewer-hdrs list, then all headers in the message except those in the list will be shown. The values are all case insensitive.

  This option is displayed as "Viewer Headers".

viewer-margin-left
  This variable controls the left-hand vertical margin's width in Alpine's Message Viewing screen. Its value is the number of space characters preceding each displayed line. For consistency with Viewer-Margin-Right, you may specify the column number to start in (column numbering begins with number 1) instead of the width of the margin by appending a lower case letter "c" to the number. For example, a value of "2c" means to start the text in column two, which is entirely equivalent to a value of "1", which means to leave a margin of 1 space.

  The default is a left margin of 0 (zero). Misconfigurations (for example, negative values or values with starting left columns greater than the ending right column) are silently ignored. If the number of columns for text between the Viewer-Margin-Left and the Viewer-Margin-Right is fewer than 8, then margins of zero will be used instead.

viewer-margin-right
  This variable controls the right-hand vertical margin's width in Alpine's Message Viewing screen. Its value is the number of space characters following each displayed line. You may specify the column number to end the text in (column numbering begins with number 1) instead of the width of the margin by appending a lower case letter "c" to the number. For example, a value of "76c" means to end the text in column 76. If the screen is 80 characters wide, this is equivalent to a value of "4", which means to leave a margin of 4 spaces. However, if you use different size screens at different times, then these two values are not equivalent.

  The default right margin is 4. Misconfigurations (for example, negative values or values with starting left columns greater than the ending right column) are silently ignored. If the number of columns for text between the Viewer-Margin-Left and the Viewer-Margin-Right is fewer than 8, then margins of zero will be used instead.

viewer-overlap
  This option specifies an aspect of Alpine's Message Viewing screen. When the space bar is used to page forward in a message, the number of lines specified by the viewer-overlap variable will be repeated from the bottom of the screen. That is, if this was set to two lines, then the bottom two lines of the screen would be repeated on the top of the next screen. The normal default value is "2".

window-position
  Winsock version of PC-Alpine only. Window position in the format: CxR+X+Yn Where C and R are the window size in characters and X and Y are the screen position of the top left corner of the window.

## Configuration Features

There are several features (options) which may be turned off or on. The configuration variable feature-list is a list of all the features that are turned on or off. If the name of a feature is in the list it will be turned on. If the name of a feature with the characters `no-` prepended is in the list, it will turn the feature off. This is useful for overriding system-wide defaults. This is because, unlike all the other configuration variables, the feature-list is additive. That is, first the system-wide feature-list is read and then the user's feature-list is read. This makes it possible for the system manager to turn some of the features on by default while still allowing the user to cancel that default. For example, if the system manager has turned on the allow-talk feature by default then a user may turn it back off by including the feature no-allow-talk in his or her personal configuration file. Of course, these details are usually handled by Alpine when the user turns an option on or off from inside the Setup/Config screen.

System managers should take some care when turning on features by default. Some of the documentation assumes that all of the features are off by default, so it could be confusing for a user if some are on by default instead. Feature names are case-independent.

Here is an alphabetical list of possible features.

allow-changing-from
  Prior to Pine 4.00 there was a compile-time option called ALLOW_CHANGING_FROM. That has been replaced by a runtime feature. If this feature is turned on then the From line can be changed just like all the other header fields that can be changed. See the configuration variables customized-hdrs and default-composer-hdrs for more information on editing headers.

  The default value for this feature is ON, so that editing of From headers is allowed by default.

allow-talk
  Unix Alpine only. By default, permission for others to talk to your terminal is turned off when you are running Alpine. When this feature is set, permission is instead turned on.

  Note: The talk program has nothing to do with Alpine or email. The talk daemon on your system will attempt to print a message on your screen when someone else is trying to contact you. If you wish to see these messages while you are running Alpine, you should enable this feature.

  If you do enable this feature and see a talk message, you must suspend or quit Alpine before you can respond.

alternate-compose-menu
  This feature controls the menu that is displayed when Compose is selected. If set, a list of options will be presented, with each option representing the type of composition that could be used. This feature is most useful for users who want to avoid being prompted with each option separately, or who want to avoid the checking of remote postponed or form letter folders. The possible types of composition are:

  New, for starting a new composition. Note that if New is selected and roles are set, roles are checked for matches and applied according to the setting of the matching role.

  Interrupted, for continuing an interrupted composition. This option is only offered if an interrupted message folder is detected.

  Postponed, for continuing postponed compositions. This option is offered if a postponed-folder is set in the config REGARDLESS OF whether or not the postponed folder actually exists. This option is especially handy for avoiding having to check for the existence of a remote postponed folder.

  Form, for using form letters. This option is offered if the form-letter-folder is set in the config, and is not checked for existence for reasons similar to those explained by the postponed option.

  setRole, for selecting a role to apply to a composition.

alternate-role-menu
  Normally the Role Command allows you to choose a role and compose a new message using that role. When this feature is set, the role command will first ask whether you want to Compose a new message, Forward the current message, Reply to the current message, or Bounce the current message. If you are not in the MESSAGE INDEX and are not viewing a message, then there is no current message and the question will be skipped. After you have chosen to Compose, Forward, Reply or Bounce you will then choose the role to be used.

  When Bouncing the "Set From" address is used for the Resent-From header, the "Set Fcc" value is used for the Fcc provided that the option "Fcc-On-Bounce" is turned on, and the "Use SMTP Server" value is used for the SMTP server, if set. Other actions of the role are ignored when Bouncing.

  This feature is displayed as "Alternate Role (#) Menu".

assume-slow-link
  UNIX Alpine only.

  This feature affects Alpine's display routines. If set, the normal inverse-video cursor (used to highlight the current item in a list) will be replaced by an arrow cursor and other screen update optimizations for low-speed links (e.g. 2400 bps dialup connections) will be activated. One of the optimizations is that colored index lines (set up with Indexcolor Rules) will not be colored. This might be useful if you know you have a slow speed link but for some reason Alpine doesn't know.

auto-move-read-msgs
  This feature controls an aspect of Alpine's behavior upon quitting. If set, and the read-message-folder variable is also set, then Alpine will automatically transfer all read messages from the INBOX to the designated folder and mark them as deleted in the INBOX. Messages in the INBOX marked with an N (meaning New, or unseen) are not affected.

  This feature is displayed as "Auto Move Read Messages".

auto-open-next-unread
  This feature controls the behavior of the TAB key when traversing folders in the optional incoming-folders collection or in optional news-collections.

  When the TAB (Next New) key is pressed, and there are no more unseen messages in the current (incoming message or news) folder, Alpine will search the list of folders in the current collection for one containing New or Recent (new since the last time the folder was opened) messages. This behavior may be modified slightly with the Tab-Uses-Unseen-For-Next-Folder feature which causes Alpine to look for Unseen messages instead of Recent messages. By default, when such a folder is found, Alpine will ask whether you wish to open the folder. If this feature is set, Alpine will automatically open the folder without prompting.

auto-unselect-after-apply
  This feature affects the behavior of the Apply command. If set, the Apply command will do the operation you specify, but then will implicitly do an "UnSelect All", so that you will automatically be back in the normal Index view after the Apply.

auto-unzoom-after-apply
  If set, and if you are currently looking at a Zoomed Index view of selected messages, the Apply command will do the operation you specify, but then will implicitly do an UnZoom, so that you will automatically be back in the normal Index view after the Apply. This feature is set by default.

auto-zoom-after-select
  If set, the ; select command will automatically perform a Zoom after the select is complete. This feature is set by default.

busy-cue-spinner-only
  When Alpine is delayed for some reason it usually shows that something is happening with a small animated display in the status message line near the bottom of the screen. Setting this feature will cause that animation to be the same each time instead of having Alpine choose a random animation. You may turn the animation off altogether by setting the busy-cue-rate option to zero.

check-newmail-when-quitting
  If set, Alpine will check for new mail after you give the Quit command. If new mail has arrived since the previous check, you will be notified and given the choice of quitting or not quitting.

combined-addrbook-display
  This feature affects the address book display screens. Normally, expanding an address book from the ADDRESS BOOK LIST screen will cause the remaining address books and directory servers to disappear from the screen, leaving only the entries of the expanded address book. If this feature is set, then the other address books will remain on the screen, so that all of the address books can be present at once.

  The way that commands work won't be changed. For example, the Select All command will select all of the entries in the current address book, not all of the entries in all of the address books. The WhereIs command will change a little. It will search through all of the text on the screen plus all of the entries from expanded address books.

  When this feature is set, the setting of the feature expanded-view-of-addressbooks has an effect.

  This feature is displayed as "Combined Addressbook Display".

combined-folder-display
  This feature affects the folder list display screens. Normally, each folder list is viewed within its collection only. This command allows folder lists to be viewed within a single screen that combines the contents of all collections.

  The way that commands work won't be changed. For example, the Select All command will select all of the folders in the current collection, not all of the entries in all of the collections. The WhereIs command will change a little. It will search through all of the folders in the current collection as well as all the folder in any other expanded collection.

  When this feature is set, the setting of the feature expanded-view-of-folders has an effect.

combined-subdirectory-display
  This feature affects the Folder List screen when the combined-folder-display feature is enabled. Normally, selecting a directory from the Folder List takes you into a new screen displaying only the contents of that directory.

  Enabling this feature will cause the contents of the selected directory to be displayed within the boundaries of the Collection it is a part of. All previously displayed collections will remain in the screen.

  The way that commands work won't be changed. For example, the Select All command will select all of the folders in the directory, as opposed to all of the entries in all of the collections. The WhereIs command will change a little. It will search through all of the folders in the current collection as well as all the folder in any other expanded collection.

compose-cancel-confirm-uses-yes
  This feature affects what happens when you type ^C to cancel a composition. By default, if you attempt to cancel a composition by typing ^C, you will be asked to confirm the cancellation by typing a "C" for Confirm. It logically ought to be a "Y" for Yes, but that is risky because the "^C Y" needed to cancel a message is close (on the keyboard) to the "^X Y" needed to send a message.

  If this feature is set the confirmation asked for will be a "Yes" instead of a "Confirm" response.

compose-cut-from-cursor
  If set, the ^K command in the composer will cut from the current cursor position to the end of the line, rather than cutting the entire line.

  This feature is displayed as "Ctrl-K Cuts From Cursor".

compose-maps-delete-key-to-ctrl-d
  If set, Delete will be equivalent to ^D, and delete the current character. Normally Alpine defines the Delete key to be equivalent to ^H, which deletes the previous character.

  This feature is displayed as "Delete Key Maps to Ctrl-D".

compose-rejects-unqualified-addrs
  If set, unqualified names entered as addresses will be treated as errors unless they match an addressbook nickname or are looked up successfully on an LDAP server. Alpine will not attempt to turn them into complete addresses by adding your local domain (which Alpine normally does by default).

  A complete (fully-qualified) address is one containing a username followed by an @ symbol, followed by a host or domain name (e.g. jsmith@example.com). An unqualified name is one without the @ symbol and host or domain name (e.g. jsmith).

  This feature is displayed as "Compose Rejects Unqualified Addresses".

compose-send-offers-first-filter
  If you have sending-filters configured, setting this feature will cause the first filter in the sending-filters list to be offered as the default instead of unfiltered, the usual default.

compose-sets-newsgroup-without-confirm
  If you enter the composer while reading a newsgroup, you will normally be prompted to determine whether you intend the new message to be posted to the current newsgroup or not. If this feature is set, Alpine will not prompt you in this situation, and will assume that you do indeed wish to post to the newsgroup you are reading.

  This feature is displayed as "Compose Sets Newsgroup Without Confirming".

confirm-role-even-for-default
  If you have roles, when you Reply to or Forward a message, or Compose a new message, Alpine will search through your roles for one which matches. Normally, if no matches are found you will be placed into the composer with no opportunity to select a role. If this feature is set, then you will be asked to confirm that you don't want a role. This will give you the opportunity to select a role (with the ^T command). If you confirm no role with a Return, you will be placed in the composer with no role. You may also confirm with either an "N" or a "Y". These behave the same as if you pressed the Return. (The "N" and "Y" answers are available because they match what you might type if there was a role match.)

  If you are using the alternate form of the Compose command called "Role", then all of your roles will be available to you, independent of the value of this feauture and of the values set for all of Reply Use, Forward Use, and Compose Use.

continue-tab-without-confirm
  Normally, when you use the TAB NextNew command and there is a problem checking a folder, you are asked whether you want to continue with the search in the following folder or not. This gives you a chance to stop the NextNew processing.

  If this feature is set you will not be asked. It will be assumed that you want to continue.

  This feature is displayed as "Continue NextNew Without Confirming".

convert-dates-to-localtime
  Normally, the message dates that you see in the MESSAGE INDEX and MESSAGE VIEW are displayed in the timezone they were sent from. For example, if a message was sent to you from a few timezones to the east it might appear that it was sent from the future; or if it was sent from somewhere to the west it might appear as if it is from yesterday even though it was sent only a few minutes ago. If this feature is set an attempt will be made to convert the dates to your local timezone to be displayed.

  Note that this does not affect the results of Select by Date or of anything else other than these displayed dates. When viewing the message you may look at the original unconverted value of the Date header by using the HdrMode Command.

copy-to-address-to-from-if-it-is-us
  This feature affects the From address used when Replying to a message. It is probably only useful if you have some alt-addresses defined. When enabled, it checks to see if any of the addresses in the To or Cc fields of the message you are replying to is one of your addresses. If it is, and there is only one of them, then that address is used as the From address in the message you are composing. In other words, you will be using a From address that is the same as the To address that was used to get the mail to you in the first place.

  If a role is being used and it has a From address defined, that From address will be used rather than the one derived from this feature.

delete-skips-deleted
  If set, this feature will cause the Delete command to advance past other messages that are marked deleted. In other words, pressing D will both mark the current message deleted and advance to the next message that is not marked deleted. This feature is set by default.

disable-config-cmd
  If set, the configuration screen Setup/Config will not be available at all.

disable-save-input-history
  Many of the prompts that ask for input in the status line near the bottom of the screen will respond to Up Arrow and Down Arrow with the history of previous entries. For example, in the MESSAGE INDEX screen when you use the WhereIs command the text you entered will be remembered and can be recalled by using the Up Arrow key. Another example, when saving a message the folders saved to will be remembered and can be recalled using the arrow keys.

  In the Save prompt, some users prefer that the Up and Down arrow keys be used for the Previous Collection and Next Collection commands instead of for a history of previous saves. If this option is set the Up and Down arrow keys will become synonyms for the Previous Collection and Next Collection (^P and ^N) commands in the prompt for the name of a folder to Save to or in the prompt for the name of a folder to GoTo. When this feature is not set (the default), ^P and ^N will change the collection and the arrow keys will show the history.

disable-keyboard-lock-cmd
  In the Main Alpine menu there is a Keyboard locking command (KBLock). If this feature is set, that command won't be available to the user.

disable-keymenu
  If set, the command key menu that normally appears on the bottom two lines of the screen will not usually be there. Asking for help with ^G or ? will cause the key menu to appear instead of causing the help message to come up. If you want to actually see the help text, another ^G or ? will show it to you. After the key menu has popped up with the help key it will remain there for an O Other command but will disappear if any other command is typed.

disable-password-caching

  Normally, loginname/password combinations are cached in Alpine so that the user does not have to enter the same password more than once in a session. A disadvantage to this approach is that the password must be stored in the memory image of the running Alpine in order that it can be reused. In the event that Alpine crashes and produces a core dump, and that core dump is readable by others, the loginname and password could possibly be read from the core dump.

  If this feature is set, then the passwords will not be cached and the user will have to retype the password whenever Alpine needs it. Even with this feature set there is still some chance that the core file will contain a password, so care should be taken to make the core files unreadable.

  NOTE: If PASSFILE caching is enabled, this does not disable it. That is a separate and independent feature.

disable-password-cmd
  If set the Newpassword command usually available under the Setup command will not be available.

disable-pipes-in-sigs
  If set it will be an error to append a vertical bar (|) to the name of a signature file. Appending a vertical bar normally causes the signature file to be executed to produce the signature.

disable-pipes-in-templates
  If set it will be an error to append a vertical bar (|) to the name of a template file. Appending a vertical bar normally causes the signature file to be executed to produce the signature.

disable-regular-expression-matching-for-alternate-addresses
  Normally, the alt-addresses option is interpreted as a regular expression. One type of address that might cause trouble is an address that contains a plus sign. If you want to have an address with a plus as one of your alternate addresses and you don't want to use regular expressions, then setting this feature will cause Alpine to treat the addresses you list literally instead.

disable-roles-setup-cmd
  If set the Roles command usually available under the Setup command will not be available.

disable-roles-sig-edit
  If set the roles editor in the Setup/Roles command will not allow editing of signature files with the F subcommand.

disable-roles-template-edit
  If set the roles editor in the Setup/Roles command will not allow editing of template files with the F subcommand.

disable-sender
  If set, Alpine will not generate a "Sender:" or "X-X-Sender" header. This may be desirable on a system which is virtually hosting many domains, and the sysadmin has other methods available for tracking a message to its originator.

  This feature is displayed as "Do Not Generate Sender Header".

disable-setlocale-collate
  This is a hard to understand feature that should only be used in rare cases. Normally, the C function call

  `setlocale(LC_COLLATE, "")`

  is used by Alpine. If you want to try turning it off, setting this feature will turn it off. This part of the locale has to do with the sort order of characters in your locale.

disable-shared-namespaces
  If this hidden feature is set the automatic search for namespaces "ftp", "imapshared", and "imappublic" by the underlying library will be disabled. The reason this feature exists is because there are some implementations of system password lookup routines which are very slow when presented with a long loginname which does not exist. This feature could be set to prevent the delay at startup time when the names above are searched for in the password file.

disable-signature-edit-cmd
  If set the Signature editing command usually available under the Setup command will not be available.

disable-take-fullname-in-addresses
  Normally, when TakeAddr is used to copy an address or addresses from a message into an address book entry, Alpine will try to preserve the full name associated with each address in the list of addresses. The reason for this is so that if the entry is a list or later becomes a list, then information about the individual addresses in the list is preserved. If you would rather just have the simple addresses in the list of addresses, set this feature. For example, with the default setting you might see something like this in the ADDRESS BOOK editor after you type TakeAddr

       Nickname  : nick
       Fullname  : Bedrock Elders
       Fcc       :
       Comment   :
       Addresses : Fred Flintstone <flint@bedrock.org>,
                   Barney Rubble <rubble@bedrock.org>

  but with this feature set it would look like

       Nickname  : nick
       Fullname  : Bedrock Elders
       Fcc       :
       Comment   :
       Addresses : flint@bedrock.org,
                   rubble@bedrock.org

  instead. Note the difference in the Addresses field.

disable-take-last-comma-first
  Normally, when TakeAddr is used to copy an address from a message into an address book, Alpine will attempt to rewrite the full name of the address in the form:

  > Last, First

  instead of

  > First Last

  It does this because many people find it useful to sort by Last name instead of First name. If this feature is set, then the TakeAddr command will not attempt to reverse the name in this manner.

disable-terminal-reset-for-display-filters
  UNIX Alpine only.

  This feature affects Alpine's behavior when using Display-Filters. Normally, before the display filter is run, the terminal mode is reset to what it was before you started Alpine. This may be necessary if the filter requires the use of the terminal. For example, it may need to interact with you. If you set this feature, then the terminal mode will not be reset. One thing that turning on this feature should fix is the coloring of quoted text in the message view, which breaks because the terminal reset resets the color state of the terminal (Color Configuration).

downgrade-multipart-to-text
  This feature affects Alpine's behavior when sending mail. Internet standards require Alpine to translate all non-ASCII characters in messages that it sends using MIME encoding. This encoding can be ostensibly broken for recipients if any agent between Alpine and the recipient, such as an email list expander, appends text to the message, such as list information or advertising. When sending such messages Alpine attempts to protect such encoding by placing extra MIME boundaries around the message text.

  These extra boundaries are invisible to recipients that use MIME-aware email programs (the vast majority). However, if you correspond with users of email programs that are not MIME-aware, or do not handle the extra boundaries gracefully, you can use this feature to prevent Alpine from including the extra MIME information. Of course, it will increase the likelihood that non-ASCII text you send may appear corrupt to the recipient.

enable-8bit-esmtp-negotiation
  This feature affects Alpine's behavior when sending mail. By default, this feature is set. Internet standards require that all electronic mail messages traversing the global Internet consist of 7bit ASCII characters unless a pair of cooperating mail transfer agents explicitly agree to allow 8bit messages. In general, then, exchanging messages in non-ASCII characters requires MIME encoding.

  However, there are now Internet standards that allow for unencoded 8bit exchange of messages between cooperating systems. When this feature is set Alpine will try to negotiate unencoded 8bit transmission during the sending process. Should the negotiation fail, Alpine will fall back to its ordinary encoding rules.

  Note, this feature relies on your system's mail transport agent or configured smtp-server having the negotiation mechanism introduced in "Extended SMTP" (ESMTP) and the specific extension called 8BITMIME.

enable-8bit-nntp-posting
  The Internet standard for exchanging USENET news messages (RFC-1036) specifies that USENET messages should conform to Internet mail standards and contain only 7bit characters, but much of the news transport software in use today is capable of successfully sending messages containing 8bit characters. Hence, many people believe that it is appropriate to send 8bit news messages without any MIME encoding.

  Moreover, there is no Internet standard for explicitly negotiating 8bit transfer, as there is for Internet email. Therefore, Alpine provides the option of posting unencoded 8bit news messages, though not as the default. Setting this feature will turn OFF Alpine's MIME encoding of newsgroup postings that contain 8bit characters.

  Note, articles may cross a path or pass through news transport software that is unsafe or even hostile to 8bit characters. At best this will only cause the posting to become garbled. The safest way to transmit 8bit characters is to leave Alpine's MIME encoding turned on, but recipients who lack MIME-aware tools are often annoyed when they receive MIME-encoded messages.

enable-aggregate-command-set
  When this feature is set you may use the commands and subcommands that relate to performing operations on more than one message at a time. We call these "aggregate operations". In particular, the ; Select, A Apply, and Z Zoom commands are enabled by this feature. Select is used to tag one or more messages meeting the specified criteria. Apply can then be used to apply any message command to all of the selected/tagged messages. Further, the Zoom command allows you to toggle the "Folder Index" view between just those Selected and all messages in the folder.

  This feature also enables the ^X subcommand in the "Folder Index" WhereIs command which causes all messages matching the WhereIs argument to become selected.

  You may also use aggregate operations in the address book screens where you are operating on address book entries instead of on messages.

enable-alternate-editor-cmd
  If this feature is set (the default), and the editor variable is not set, entering the ^_ (Control-underscore) key while composing a message will prompt you for the name of the editor you would like to use.

  If the environment variable `$EDITOR` is set, this value will be offered as a default. If the editor variable is set, the ^_ key will activate the specified editor without prompting, in which case it is not necessary to set the enable-alternate-editor-cmd feature. This feature is not available in PC-Alpine.

  This feature is displayed as "Enable Alternate Editor Command".

enable-alternate-editor-implicitly
  If this feature and the editor variable are both set, Alpine will automatically activate the specified editor when the cursor is moved from the header of the message being composed into the message text. For replies, the alternate editor will be activated immediately. If this feature is set but the editor variable is not set, then Alpine will automatically ask for the name of an alternate editor when the cursor is moved out of the headers, or if a reply is being done. This feature is not available in PC-Alpine.

enable-arrow-navigation
  This feature controls the behavior of the left and right arrow keys. If set, the left and right arrow keys will operate like the usual navigation keys < and >. This feature is set by default.

  If you set this feature, and do not like the changed behavior of the up/down arrow keys when navigating through the FOLDER LIST screen -- first from column to column, if more than one folder is displayed per row, and then from row to row -- you may either also wish to set the feature enable-arrow-navigation-relaxed, single-column-folder-list, or use the ^P/^N (instead of up/down arrow) keys to move up/down the list of folders in each column.

enable-arrow-navigation-relaxed
  This feature controls the behavior of the left and right arrow keys in the FOLDER LIST screen when the enable-arrow-navigation feature is set. This feature is set by default.

  When this feature is set, the left and right arrow keys in the FOLDER LIST screen move the highlight bar to the left or right, and the up and down arrows move it up or down.

  When the "Enable-Arrow-Navigation" feature is set and this feature is not set; the left and right arrow keys in the Folder List screen strictly track the commands bound to the '<' and '>' keys, and the up and down arrow keys move the highlight bar to the previous and next folder or directory name.

enable-background-sending
  If set, this feature enables a subcommand in the composer's Send? confirmation prompt. The subcommand allows you to tell Alpine to handle the actual posting in the background. While this feature usually allows posting to appear to happen very fast, it has no affect on the actual delivery time it takes a message to arrive at its destination.

  This feature isn't supported on all systems. All DOS and Windows, as well as several Unix ports, do not recognize this feature. It is not possible to use background sending if the feature send-without-confirm is set.

  Error handling is significantly different when this feature is enabled. Any message posting failure results in the message being appended to your Interrupted mail folder. When you type the Compose command, Alpine will notice this folder and offer to extract any messages contained. Upon continuing a failed message, Alpine will display the nature of the failure in the status message line.

  Under extreme conditions, it is possible for message data to get lost. Do not enable this feature if you typically run close to any sort of disk-space limits or quotas.

enable-bounce-cmd
  Setting this feature enables the B Bounce command, which will prompt for an address and remail the message to the new recipient. This command is used to re-direct messages that you have received in error, or need to be redirected for some other reason (e.g. list moderation). The final recipient will see a header indicating that you have Resent the msg, but the message's From: header will show the original author of the message, and replies to it will go back to that author, and not to you.

  This feature is displayed as "Enable Bounce Command".

enable-cruise-mode
  This feature affects Alpine's behavior when you hit the "Space Bar" at the end of a displayed message. Typically, Alpine complains that the end of the text has already been reached. Setting this feature causes such keystrokes to be interpreted as if the Tab key had been hit, thus taking you to the next interesting message, or scanning ahead to the next incoming folder with interesting messages.

enable-cruise-mode-delete
  This feature modifies the behavior of Alpine's enable-cruise-mode feature. Setting this feature causes Alpine to implicitly delete read messages when it moves on to display the next interesting message.

  NOTE: Beware when enabling this feature and the expunge-without-confirm feature.

  This feature is displayed as "Enable Cruise Mode With Deleting".

enable-delivery-status-notification
  If set, this feature enables a subcommand in the composer's "Send?" confirmation prompt. The subcommand allows you to tell Alpine to request the type of Delivery Status Notification (DSN) which you would like. Most users will be happy with the default, and need not enable this feature. See the online help for more details.

  It is not possible to use delivery status notifications if the feature send-without-confirm is set.

  Note that this is not a method to request READ receipts, which tells the sender when the receiver has read the message. In this case we're talking about notification of delivery to the mailbox, not notification that the message has been seen.

enable-dot-files
  If set, files beginning with dot (".") will be visible in the file browser. For example, you'll be able to select them when using the browser to add an attachment to a message.

enable-dot-folders
  If set, folders beginning with dot (".") may be added and viewed. This feature is displayed as "Enable Hidden Folders".

enable-exit-via-lessthan-command
  If set, then on screens where there is an Exit command but no < command, the < key will perform the same function as the Exit command. This feature is set by default.

enable-fast-recent-test
  This feature controls the behavior of the TAB key when traversing folders in the optional Incoming-Folders collection or in optional News-Collections.

  When the TAB (NextNew) key is pressed, the default behavior is to explicitly examine the status of the folder for the number of recent messages (messages delivered since the last time it was viewed). Depending on the size and number of messages in the folder, this test can be time consuming.

  Enabling this feature will cause Alpine to only test for the existence of any recent messages rather than to obtain the count. This is much faster in many cases. The downside is that you're not given the number of recent messages when prompted to view the next folder. If the feature Tab-Uses-Unseen-For-Next-Folder is turned on, then the present feature will have no effect.

enable-flag-cmd
  Setting this feature enables the * Flag command, which allows you to manipulate the status flags associated with a message. By default, Flag will set the Important flag, which results in an asterisk being displayed in column one of the "Folder Index" for such messages.

  This feature is displayed as "Enable Flag Command".

enable-flag-screen-implicitly
  This feature modifies the behavior of the * Flag command (provided it too is enabled). By default, when the * Flag command is selected, Alpine offers a prompt to set one of several flags and also offers the option of entering the detailed flag manipulation screen via the ^T key. Enabling this feature causes Alpine to immediately enter the detailed flag screen rather than first offer the simple prompt. The Enable-Flag-Screen-Keyword-Shortcut option offers a slightly different way of setting keywords.

enable-flag-screen-keyword-shortcut
  This feature modifies the behavior of the Flag command and the Select command. By default, when the "* Flag" command is selected, Alpine offers a prompt to set one of several flags and also offers the option of entering the detailed flag manipulation screen via the "^T" key. If you have keywords defined, then enabling this feature adds a shortcut way to set or unset keywords. You use "*" followed by the first letter of a keyword (or the nickname of a keyword if you've given it a nickname) and that will set the keyword.

  An example is easier to understand than the explanation. The flag command can always be used to set the system flags. For example, to set the Answered flag you would type

  `* A`

  Now suppose you have defined a keyword "Work" using the Keywords option in the Config screen. By default, to set a keyword like "Work" you would usually have to go to the Flag Details screen using the "^T To Flag Details" command. Instead, if you have enabled this feature, you may type

  `* W`

  to set the Work flag, or

  `* ! W`

  to unset it. Just like for the other flag setting commands, the case of the letter does not matter, so "w" or "W" both set the "Work" keyword.

  Notice that you can only use this trick for one keyword that begins with "W". If you happen to have a "Work" keyword and another keyword that is "WIFI" the "* W" command will set the first one in your list of keywords. Also, there are five letters which are reserved for system flags and the NOT command. If you type "* A" it will always set the Answered flag, not your "Aardvark" keyword. In order to set the "Aardvark" keyword you'll still have to use the Flag Details screen.

  Because enabling the Enable-Flag-Screen-Implicitly option causes Alpine to skip directly to the Flag Details screen when the Flag command is used, setting it will cause this feature to have no effect at all.

  Similarly, when Selecting by Keyword, setting this option will allow you to use Keyword initials instead of full keywords.

enable-full-header-cmd
  This feature enables the H Full Headers command which toggles between the display of all headers in the message and the normal edited view of headers. The Full Header command also controls which headers are included for Export, Pipe, Print, Forward, and Reply functions. (For Reply, the Full Header mode will respect the include-headers-in-reply feature setting.)

  If Full Header mode is turned on and you Forward a message, you will be asked if you'd like to forward the message as an attachment, as opposed to including the text of the message in the body of your new message.

  If you have also turned on the "Quote Suppression" option then the Full Headers command actually rotates through three states instead of just two. The first is the normal view with long quotes suppressed. The second is the normal view but with the long quotes included. The last enables the display of all headers in the message. When using Export, Pipe, Print, Forward, or Reply the quotes are never suppressed, so the first two states are identical.

  Normally, the Header Mode will reset to the default behavior when moving to a new message. The mode can be made to persist from message to message by setting the feature Quell-Full-Header-Auto-Reset.

  This feature is displayed as "Enable Full Header Command".

enable-full-header-and-text

  This feature affects how the H Full Headers command displays message text. If set, the raw message text will be displayed. This especially affects MIME formatted email, where the entire MIME format will be displayed. This feature similarly affects how messages are included for the Export, Pipe, Print, Forward, and Reply functions.

enable-goto-in-file-browser
  Setting this causes Alpine to offer the G Goto command in the file browser. The Goto command allows you to explicitly type in the desired directory. That is the default.

enable-incoming-folders
  If set, this feature defines a pseudo-folder collection called INCOMING MESSAGE FOLDERS. Initially, the only folder included in this collection will be your INBOX, which will no longer show up in your default saved-message folder collection.

  This feature is displayed as "Enable Incoming Folders Collection".

enable-incoming-folders-checking
  This feature is only operational if you have enabled the optional incoming-folders If you do have Incoming Message Folders and you also set this feature, then the number of Unseen messages in each folder will be displayed in the FOLDER LIST screen for the Incoming Message Folders. The number of Unseen messages in a folder will be displayed in parentheses to the right of the name of each folder. If there are no Unseen messages in a folder then only the name is displayed, not a set of parentheses with zero inside them. A redraw command, Ctrl-L, can be used in the FOLDER LIST screen for the Incoming Message Folders to cause an immediate update.

  If a check for Unseen messages fails for a particular folder then Alpine will no longer attempt to check that folder for the duration of the session and this will be indicated by a question mark inside the parentheses.

  The features incoming-checking-includes-total, incoming-checking-uses-recent, incoming-check-list, incoming-check-interval, incoming-check-interval-secondary, and incoming-check-timeout all affect how this feature behaves.

Disable-Index-Locale-Dates
  This feature affects the display of dates in the MESSAGE INDEX. Normally an attempt is made to localize the dates used in the MESSAGE INDEX display to your locale. This is controlled with the LC_TIME locale setting on a UNIX system. On Windows the Regional Options control panel may be used to set the date format. At the programming level, Alpine is using the strftime routine to print the parts of a date.

  If this feature is set, dates are displayed in English and with the conventions of the United States.

enable-jump-shortcut
  When this feature is set you may enter a number (followed by RETURN) and jump to that message number, when in the MESSAGE INDEX or MESSAGE TEXT screens. In other words, it obviates the need for typing the J for the Jump command.

enable-lame-list-mode
  This feature modifies the method Alpine uses to ask your IMAP server for folder names to display in the the FOLDER LIST screen. It is intended to compensate for a small set of IMAP servers that are programmed to ignore a part of the request, and thus respond to Alpine's query with nonsensical results.

  If you find that Alpine is erroneously displaying blank folder lists, try enabling this feature.

  NOTE: Enabling this feature has consequences for the Goto and Save commands. Many servers allow access to folders outside the area reserved for your personal folders via some reserved character, typically '#' (sharp), '~' (tilde) or '/' (slash). This mechanism allows, at the Goto and Save prompts, quick access to folders outside your personal folder collection without requiring a specific collection definition. This behavior will generally not be available when this feature is enabled.

  This feature is displayed as "Compensate for Deficient IMAP servers".

enable-mail-check-cue
  If set, this will cause an asterisk to appear in the upper left-hand corner of the screen whenever Alpine checks for new mail, and two asterisks whenever Alpine saves (checkpoints) the state of the current mailbox to disk.

enable-mailcap-param-substitution
  If set, this will allow mailcap named parameter substitution to occur in mailcap entries. By default, this is turned off to prevent security problems which may occur with some incorrect mailcap configurations. For more information, RFC1524 and look for "named parameters" in the text of the RFC.

  This feature is displayed as "Enable Mailcap Parameter Substitution".

enable-mouse-in-xterm
  This feature controls whether or not an X terminal mouse can be used with Alpine. If set, and the $DISPLAY variable indicates that an X terminal is being used, the left mouse button on the mouse can be used to select text or commands. Clicking on a command at the bottom of the screen will behave as if you had typed that command. Clicking on an index line will move the current message highlight to that line. Double-clicking on an index line will view the message. Double-clicking on a link will view the link.

  This type of mouse support will also work in some terminal emulators which are not actually X terminals, but which have extra code to support the xterm style mouse. For those emulators you not only need to turn this feature on but you also have to set the $DISPLAY environment variable even though it isn't needed for your terminal. That will cause Alpine to think that it is an xterm and to properly interpret the escape sequences sent by the mouse.

  Note: if this feature is set, the behavior of X terminal cut-and-paste is also modified. It is sometimes possible to hold the shift key down while clicking left or middle mouse buttons for the normal xterm cut/paste operations. There is also an Alpine command to toggle this mode on or off. The command is Ctrl-\ (Control-backslash).

enable-msg-view-addresses
  This feature modifies the behavior of Alpine's "Message Text" screen. Setting this feature causes Alpine to select possible email addresses from the displayed text and display them in boldface for selection.

  The first available email address is displayed in inverse. This is the "selected" address. Pressing RETURN will cause Alpine to enter the message composition screen with the To field filled in with the selected address.

  Use the up and down arrow keys to change which of the addresses displayed in boldface is the current selection.

  This feature is displayed as "Enable Message View Address Links".

enable-msg-view-attachments
  This feature modifies the behavior of Alpine's "Message Text" screen. Setting this feature causes Alpine to present attachments in boldface. The first available attachment is displayed in inverse. This is the "selected" attachment. Pressing RETURN will cause Alpine to display the selected attachment. Use the up and down arrow keys to change which of the attachments displayed in boldface is the current selection.

  Speaking of arrow keys, the Up and Down Arrows will select the next and previous attachments if one is available on the screen for selection. Otherwise, they will simply adjust the viewed text one line up or down.

  Similarly, when selectable items are present in a message, the Ctrl-F key can be used to select the next item in the message independent of which portion of the viewed message is currently displayed. The Ctrl-B key can be used to select the previous item in the same way.

  This feature is displayed as "Enable Message View Attachment Links".

enable-msg-view-forced-arrows
  This feature modifies Up and Down arrow key behavior in Alpine's "Message Text" screen when selectable Attachments, URL's, or web-hostnames are presented. Alpine's usual behavior is to move to the next or previous selectable item if currently displayed or simply to adjust the screen view by one line if the next selectable line is off the screen.

  Setting this feature causes the Up and Down arrow keys to behave as if no selectable items were present in the message.

  Note, the Ctrl-F (next selectable item) and Ctrl-B (previous selectable item) functionality is unchanged.

  This feature is displayed as "Enable Message View Forced Arrows".

enable-msg-view-urls
  This feature modifies the behavior of Alpine's "Message Text" screen. When this feature is set (the default) Alpine will select possible URLs from the displayed text and display them in boldface for selection.

  The first available URL is displayed in inverse. This is the "selected" URL. Pressing RETURN will cause Alpine to display the selected URL via either built-in means as with `mailto:`, `imap:`, `news:`, and `nntp:`, or via an external application as defined by the url-viewers variable.

  Use the up and down arrow keys to change which of the URLs displayed in boldface is the current selection.

  This feature is displayed as "Enable Message View URL Links".

enable-msg-view-web-hostnames
  This feature modifies the behavior of Alpine's "Message Text" screen. When this feature is set (the default) Alpine will select possible web hostnames from the displayed text and display them in boldface for selection.

  The first available hostname is displayed in inverse. This is the "selected" hostname. Pressing RETURN will cause Alpine to display the selected hostname via an external application as defined by the url-viewers variable.

  Use the up and down arrow keys to change which of the hostnames displayed in boldface is the current selection.

  This feature is displayed as "Enable Message View Web Hostname Links".

enable-multiple-newsrcs
  This feature makes it so Alpine can use multiple newsrcs based on the news server being connected to, which allows for separate lists of subscribed-to newsgroups. When this feature is not set, there is only one list of newsgroups.

  Under this feature, the name of a newsrc is based on the news server. For example, if your newsrc-path is set to ".newsrc", and the news server you are connecting to is news.example.com, then the newsrc to be used is .newsrc-news.example.com. Setting this feature for the first time will allow for the option of using your old newsrc the next time you read news.

  If this feature is set, then the feature Mult-Newsrc-Hostnames-As-Typed also may affect the name of the newsrc file that is used.

enable-newmail-in-xterm-icon
  This feature controls whether or not Alpine will attempt to announce new mail arrival when it is running in an X terminal window and that window is iconified. If set, and the `$DISPLAY` variable indicates that an X terminal is being used, Alpine will send appropriate escape sequences to the X terminal to modify the label on Alpine's icon to indicate that new mail has arrived. Alpine will also modify the Alpine window's title to indicate new mail. See also Enable-Newmail-Short-Text-in-Icon.

enable-newmail-short-text-in-icon
  This feature controls the text to be displayed in an icon in the event of a new message arrival. Normally, the message will be the one that is displayed on the screen. This feature shortens the message to a count of the number of new messages in brackets. This may be more useful for those who use the window's title bar in the task bar as a new mail indicator. This feature is only useful if the Enable-Newmail-in-Xterm-Icon is also set. Like the Enable-Newmail-in-Xterm-Icon feature, this feature is only relevant when run in an xterm environment.

enable-partial-match-lists
  This feature affects the subcommands available when Saving or Opening a new folder. If set, the subcommand ^X ListMatches will be available. This command allows you to type in a substring of the folder you are looking for and when you type ^X it will display all folders which contain that substring in their names. This feature is set by default.

enable-print-via-y-command
  By default, Alpine's print command is available by pressing the % key. In older versions of Pine, the print command was accessed by pressing the Y key.

  Enabling this feature will cause Alpine to recognize both the old command, Y, and the new % method for invoking printing. Note, key menu labels are not changed as a result of enabling this feature.

enable-reply-indent-string-editing
  This feature affects the Reply command's "Include original message in Reply?" prompt. When enabled, it causes the "Edit Indent String" sub-command to appear which allows you to edit the string Alpine would otherwise use to denote included text from the message being replied to.

  Thus, you can change Alpine's default message quote character (usually an angle bracket) on a per message basis. So you could change your quoted message to look, for example, like this:

      On Tues, 26 Jan 1999, John Q. Smith wrote:

      John: I just wanted to say hello and to congratulate you
      John: on a job well done!

  The configuration option "reply-indent-string" may be used to change what appears as the default string to be edited.

  NOTE: Edited reply-indent-strings only apply to the message currently being replied to.

enable-rules-under-take
  Normally, the Take command takes addresses from a message and helps you put them into your Address Book. If you use Rules for Indexcolors, Roles, Filtering, or Scoring; you may find it useful to be able to Take information from a message's headers and put it into a new Rule. When this feature is set, you will be given an extra prompt which gives you the choice to Take into the Address Book or Take into a rule.

  This feature is displayed as "Enable Take Rules".

enable-search-and-replace
  If set Alpine's composer offers the R Replace command option inside the W WhereIs command.

enable-sigdashes
  If set and a signature-file exists, the line consisting of the three characters "`--` " (dash dash space) is included before the signature. This only happens if the signature doesn't already contain such a line.

  In addition, when you Reply or Followup to a message containing one of these special lines and choose to include its text, Alpine will observe the convention of not including text beyond the special line in your reply.

enable-suspend
  Setting this feature will allow you to type ^Z and temporarily suspend Alpine. Not available on PC-Alpine.

enable-tab-completion
  This feature enables the TAB key when at a prompt for a filename. In this case, TAB will cause the partial name already entered to be automatically completed, provided the partial name is unambiguous. This feature is set by default.

  Similarly, this feature also enables TAB completion of address book nicknames when at a prompt for a nickname, or when typing in an address field in the composer.

enable-take-export
  Normally, the Take command takes addresses from a message and helps you put them into your Address Book. When this feature is set, you will be given an extra prompt which gives you the choice to Take addresses into a file instead of your Address Book. Only the user@domain_name part of the address is put in the file.

enable-tray-icon
  PC-Alpine only. This option restores a behavior of previous versions of PC-Alpine. These versions, when started, installed a PC-Alpine icon in the notification tray of Window's Taskbar. The primary use of this icon was to indicate new mail arrival by turning red (while the Taskbar icon remained green). Additionally, the icon now changes to yellow to signify that a mail folder has been closed unexpectedly.

  Rather than add another icon to the Taskbar, this version of PC-Alpine will color its Taskbar entry's icon red (as well as the icon in the Window Title). This feature is only provided for backwards compatibility.

enable-unix-pipe-cmd
  This feature enables the | Pipe command that sends the current message to the specified Unix command for external processing.

  This feature is displayed as "Enable Unix Pipe Command".

enable-verbose-smtp-posting
  This feature controls an aspect of Alpine's message sending. When enabled, Alpine will send a `VERB` (i.e., VERBose) command early in the posting process intended to cause the server SMTP to provide a more detailed account of the transaction. This feature is typically only useful to system administrators and other support personel as an aid in troublshooting problems. Note, this feature relies on a specific capability of the system's mail transport agent or configured smtp-server.

expanded-view-of-addressbooks
  If multiple address books (either personal or global) are defined, and you wish to have them all expanded implicitly upon entering the ADDRESS BOOK screen, then set this feature. This feature will have no effect unless the feature combined-addrbook-display is also set.

expanded-view-of-distribution-lists
  If this feature is set, then distribution lists in the address book screen will always be expanded automatically.

expanded-view-of-folders
  If multiple folder collections are defined, and you wish to have them all expanded implicitly upon entering the FOLDER LIST screen, then set this feature. This feature will have no effect unless the feature combined-folder-display is also set.

expose-hidden-config
  The purpose of this feature is to allow you to change configuration features and variables which are normally hidden. This is particularly useful if you are using a remote configuration file, where it is difficult to edit the file manually, but it may also be used on a local pinerc configuration file.

  If set, most configuration variables and features which are normally hidden from view will show up in the Setup/Configuration screen. They will be at the bottom of the configuration screen. You can find them by searching for the word "hidden".

  Note that this is an advanced feature which should be used with care. The reason that this part of the configuration is normally hidden is because there is a significant potential for causing problems if you change these variables. If something breaks after a change try changing it back to see if that is what is causing the problem. There are also some variables which are normally hidden because they are manipulated through Alpine in other ways. For example, the "address-book" variable is normally set using the Setup/AddressBooks screen, so there is little reason to edit it directly. The "incoming-folders" variable is normally changed by using the Add, Delete, and Rename commands in the FOLDER LIST screen, and the "last-time-prune-questioned" variable is normally used internally by Alpine and not set directly by the user.

expunge-only-manually
  Normally, when you close a folder which contains deleted messages you are asked if you want to expunge those messages from the folder permanently. If this feature is set, you won't be asked and the deleted messages will remain in the folder. If you choose to set this feature you will have to expunge the messages manually using the eXpunge command, which you can use while in the MESSAGE INDEX screen. If you do not expunge deleted messages the size of your folder will continue to increase until you are out of disk space.

expunge-without-confirm
  If set, you will not be prompted to confirm your intent before the expunge takes place. Actually, you will still be prompted for confirmation if the folder is not the INBOX folder or another folder in the Incoming Folders collection. See the expunge-without-confirm-everywhere feature which follows.

  This feature is displayed as "Expunge Without Confirming".

expunge-without-confirm-everywhere
  The regular expunge-without-confirm feature actually only works for the INBOX folder and for other folders in the "Incoming Folders" collection. If this feature is set then you also won't be prompted to confirm expunges for all other folders.

  This feature is displayed as "Expunge Without Confirming Everywhere".

fcc-on-bounce
  If set, normal Fcc (File Carbon Copy) processing will be done for bounced messages, just as if you had composed a message to the address you are bouncing to. If not set, no Fcc of the message will be saved.

  This feature is displayed as "Include Fcc When Bouncing Messages".

fcc-only-without-confirm
  This features controls an aspect of Alpine's composer. The only time this feature will be used is if you attempt to send mail which has no recipients but does have an Fcc. Normally, Alpine will ask if you really mean to copy the message only to the Fcc. That is, it asks if you really meant to have no recipients. If this feature is set, you will not be prompted to confirm your intent to make only a copy of a message with no recipients.

  This feature is closely related to warn-if-blank-to-and-cc-and-newsgroups. The difference between this feature and that feature is that this feature considers a Bcc to be a recipient while that feature will ask for confirmation even if there is a Bcc when there is no To, Cc, or Newsgroup. The default values also differ. This feature defaults to asking the question and you have to turn it off. The warn-if-blank-to-and-cc-and-newsgroups feature defaults to not asking unless you turn it on.

  This feature is displayed as "Send to Fcc Only Without Confirming".

fcc-without-attachments
  This features controls the way FCC's (File Carbon Copies) are made of the messages you send.

  Normally, Alpine saves an exact copy of your message as it was sent. When this feature is enabled, the "body" of the message you send (the text you type in the composer) is preserved in the copy as before, however all attachments are replaced with text explaining what had been sent rather than the attachments themselves.

  This feature also affects Alpine's "Send ?" confirmation prompt in that a new "^F Fcc Attchmnts" option becomes available which allows you to interactively set whether or not attachments are saved to the Fcc'd copy.

  This feature is displayed as "Fcc Does Not Include Attachments".

force-arrow-cursor
  This feature affects Alpine's MESSAGE INDEX display routine. If set, the normal inverse-video cursor will be replaced by a simple "arrow" cursor, which normally occupies the second column of the index display.

  This is the same index cursor you get if you turn on Assume-Slow-Link, but the index line coloring will still be present if this feature is turned on and Assume-Slow-Link is off.

  An alternative version of the Arrow cursor is available by including the ARROW token in the Index-Format option.

  It ought to be the case that this feature also affects the ATTACHMENT INDEX, but that is not implemented.

hide-nntp-path
  Normally the Path header that Alpine generates when posting to a newsgroup contains the name of the computer from which the message is being sent and the user name. Some believe that this information is used by spammers. If this feature is set, that information will be replaced with the text

  `not-for-mail`

  instead.

  It should be noted that many servers being connected to will still reveal the information that this feature attempts to protect.

include-attachments-in-reply
  If set, any MIME attachments that were part of the original message will automatically be included in a Reply.

include-header-in-reply
  If set, and a message being replied to is included in the Reply, then headers from that message will also be part of the reply.

include-text-in-reply
  Normally, Alpine will ask whether you wish to include the original message in your Reply. If this feature is set and the feature enable-reply-indent-string-editing is not set, then the original message will be included in the reply automatically, without prompting.

incoming-checking-includes-total
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  When incoming folder checking is turned on the default is to display the number of unseen messages in each folder. More precisely, it is the number of undeleted unseen messages. Using this option you may also display the total number of messages in each folder. Instead of a single number representing the number of unseen messages you will get two numbers separated by a slash character. The first is the number of unseen messages and the second is the total number of messages.

  You may also use the recent message count instead of the unseen message count by turning on the feature incoming-checking-uses-recent.

incoming-checking-uses-recent
  This option has no effect unless the feature enable-incoming-folders-checking is set, which in turn has no effect unless incoming-folders is set.

  When incoming folder checking is turned on the default is to display the number of unseen messages in each folder. More precisely, it is the number of undeleted unseen messages. Using this option you may display the number of recent messages instead of the number of unseen messages. A message is only counted as recent if this is the first session to see it, so the recent count might be less than the unseen count. The difference between the two would be accounted for by the unseen messages in the folder which were there previously but have not been looked at yet.

  If you simultaneously run more than one email client at a time (for example, you run more than one Alpine in parallel) then turning this feature on can cause some confusion. The confusion stems from the fact that each message is only considered to be recent in one session. That means that the counts of new messages may be different in the two Alpines running side by side, because each incoming message will only be counted as recent in one of the two sessions.

  You may also display the total number of messages in each folder by using the incoming-checking-includes-total option.

ldap-result-to-addrbook-add
  This is only available if Alpine was linked with an LDAP library when it was compiled. If both the per-directory-server option use-implicitly-from-composer and this feature are set, then when an implicit directory lookup is done from the composer you will automatically be prompted to add the result of the directory lookup to your address book.

  This feature is displayed as "LDAP Result to Addressbook Add".

maildrops-preserve-state
  This feature affects the way Mail Drops work. Normally, when mail is moved from a Mail Drop folder to a destination folder, the state changes that have taken place since the mail was originally delivered are lost. Any Seen/New, Answered, Important/Flagged state that has changed will be ignored. All of the mail will be considered unSeen, unAnswered, and unImportant after it is moved.

  If this feature is set, then the state changes will not be lost.

  In any case, messages which are already marked Deleted when the mail is to be copied from the Mail Drop will be ignored.

mark-fcc-seen
  This features controls the way FCCs (File Carbon Copies) are made of the messages you send. Normally, when Alpine saves a copy of a message you sent as an Fcc, that copy will be marked as Unseen. When you look at the folder it was saved in the message will appear to be a New message until you read it. When this feature is enabled, the message will be marked as having been Seen.

mark-for-cc
  This feature affects Alpine's MESSAGE INDEX display. By default, a '+' is displayed in the first column if the message is addressed directly to you. When this feature is set and the message is not addressed to you, then a '-' character is displayed if the message is instead Cc'd directly to you.

mult-newsrc-hostnames-as-typed
  This feature will be of little use to most users. It has no effect unless the feature Enable-Multiple-Newsrcs is set. When the Enable-Multiple-Newsrcs feature is set then the setting of this feature may have an effect on the names of the newsrc files used. Normally, the name of the news server will be canonicalized before it is used in the newsrc file name. For example, if you type the news server name

  `servername`

  it is likely that the canonical name will be something like

  `servername.example.com`

  Or it may be the case that

  `servername.example.com`

  is really an alias (a DNS CNAME) for

  `othername.example.com`

  If this feature is not set, then the canonicalized names will be used. If this feature is set, then the name you typed in (or put in your configuration) will be used.

  This feature is displayed as "Multiple Newsrc Hostnames as Typed".

news-approximates-new-status
  This feature causes certain messages to be marked as New in the MESSAGE INDEX of newsgroups. This feature is set by default.

  When opening a newsgroup, Alpine will consult your newsrc file and determine the last message you have previously disposed of via the D key. If this feature is set, any subsequent messages will be shown in the Index with an N, and the first of these messages will be highlighted. Although this is only an approximation of true New or Unseen status, it provides a useful cue to distinguish more-or-less recent messages from those you have seen previously, but are not yet ready to mark deleted.

  Background: your newsrc file (used to store message status information for newsgroups) is only capable of storing a single flag, and Alpine uses this to record whether or not you are "done with" a message, as indicated by marking the message as Deleted. Unfortunately, this means that Alpine has no way to record exactly which messages you have previously seen, so it normally does not show the N status flag for any messages in a newsgroup. This feature enables a starting approximation of seen/unseen status that may be useful.

news-deletes-across-groups
  This feature controls what Alpine does when you delete a message in a newsgroup that appears in more than one newsgroup. Such a message is sometimes termed a "crossposting" in that it was posted across several newsgroups.

  Alpine's default behavior when you delete such a message is to remove only the copy in the current newsgroup from view when you use the "Exclude" command or the next time you visit the newsgroup.

  Enabling this feature causes Alpine to remove every occurrence of the message from all newsgroups it appears in and to which you are subscribed.

  NOTE: As currently implemented, enabling this feature may increase the time it takes the Expunge command and newsgroup closing to complete.

news-offers-catchup-on-close
  This feature controls what Alpine does as it closes a newsgroup. When set, Alpine will offer to delete all messages from the newsgroup as you are quitting Alpine or opening a new folder.

  This feature is useful if you typically read all the interesting messages in a newsgroup each time you open it. This feature saves you from having to delete each message in a newsgroup as you read it or from selecting all the messages and doing an aggregate delete before you move on to the next folder or newsgroup.

news-post-without-validation
  This feature controls whether the NNTP server is queried as newsgroups are entered for posting. Validation over slow links (e.g. dialup using SLIP or PPP) can cause delays. Set this feature to eliminate such delays.

news-read-in-newsrc-order
  This feature controls the order that newsgroups will be presented. If set, they will be presented in the same order as they occur in your newsrc file. If not set, the newsgroups will be presented in alphabetical order.

next-thread-without-confirm
  This feature controls an aspect of Alpine's Next and Prev commands in the case where you are using one of the "separate-index-screen" styles for the configuration option threading-index-style and currently have the folder sorted by a Threaded or OrderedSubject sort. When you are Viewing a particular thread you have a MESSAGE INDEX of only the messages in that thread. If you press the Next command with the last message in the thread highlighted you will normally be asked if you want to "View next thread?", assuming there is a next thread to view. If this feature is set it will be assumed that you always want to view the next thread and you won't be asked to confirm that. Similarly, if the first message of the thread is highlighted and you press the Prev command, this feature will prevent the question "View previous thread".

  This feature only has an effect in the MESSAGE INDEX screen. If you then view a particular message from that screen and press the Next command, you will be sent to the next thread without being asked, independent of the setting of this feature.

  The feature auto-open-next-unread, also has some similar effects.

  This feature is displayed as "Read Next Thread Without Confirming".

offer-expunge-of-inbox
  The INBOX is normally treated differently from regular folders in several ways. One of the differences is that the normal "close" sequence of events is deferred until Alpine is exited, instead of happening when you leave the INBOX to view another folder. The "close" sequence normally includes the Expunging of deleted messages (either automatically or after a prompt, controlled by the features Expunge-Without-Confirm, Expunge-Without-Confirm-Everywhere, and Expunge-Only-Manually), and the handling of the Read-Message-Folder.

  If this feature is set the "close" sequence handling will take place every time you leave the INBOX. The INBOX will still be kept open, but the offer to Expunge and the archiving to the Read-Message-Folder will take place each time you leave the INBOX instead of only once at the end of the session.

offer-expunge-of-stayopen-folders
  This feature is related to the option Stay-Open-Folders. Stay Open folders are treated differently from regular folders in several ways. One of the differences is that the normal "close" sequence of events is deferred until Alpine is exited, instead of happening when you leave the folder to view another folder. The "close" sequence normally includes the Expunging of deleted messages (either automatically or after a prompt, controlled by the features Expunge-Without-Confirm, Expunge-Without-Confirm-Everywhere, and Expunge-Only-Manually), and the handling of Incoming-Archive-Folders.

  If this feature is set the "close" sequence handling will take place when you leave the Stay Open folder. The folder will still be kept open, but the offer to Expunge and the archiving will take place each time you leave the folder instead of only once at the end of the session. This feature does not affect the INBOX, which will still only be processed when you exit Alpine.

pass-c1-control-characters-as-is
  It is probably not useful to set this option. This is a legacy option left behind "just in case". Multi-byte characters which have an octet which has the same value as a control character are permitted through whether or not this option is turned on.

  If the feature pass-control-characters-as-is is set, then this feature has no effect. However, if you wish to filter out regular control characters but pass the so-called C1 control characters (0x80 <= char < 0xA0) through unchanged, then you may leave pass-control-characters-as-is unset and set this feature.

pass-control-characters-as-is
  It is probably not useful to set this option. This is a legacy option left behind "just in case". Multi-byte characters which have an octet which has the same value as a control character are permitted through whether or not this option is turned on.

  If set, all characters in a message will be sent to the screen. Normally, control characters are automatically suppressed in order to avoid inadvertently changing terminal setup parameters. Control characters are usually displayed as two character sequences like

  `^C`

  for Control-C,

  `^[`

  for ESCAPE,

  `^?`

  for DELETE, and

  `~E`

  for the character with value 133 (0x85). (The DEL character is displayed as ^?, regular control characters are displayed as the character ^ followed by the character obtained by adding the five low-order bits of the character to 0x40, and the C1 control characters 0x80 - 0x9F are displayed as the character ~ followed by the character obtained by adding the five low-order bits of the character to 0x40.) Sometimes, in cases where changing a single control character into a two-character sequence would confuse Alpine's display routines, a question mark is substituted for the control character.

  If you wish to filter out regular control characters but pass the so-called C1 control characters (0x80 <= char < 0xA0) through unchanged, then you may leave this feature unset and set the feature pass-c1-control-characters-as-is instead.

predict-nntp-server
  This feature allows Alpine to assume that the open NNTP server at the time of composition is the NNTP server to which the message should be posted. This is especially recommended when there are multiple News collections. If this feature is not set, Alpine will try to post to the first server in the nntp-server variable. Setting this feature also negates the need to add News collection servers to the nntp-server variable.

  This feature can be especially handy when used in conjunction with enable-multiple-newsrcs.

  This option is displayed as "NNTP Server (for news)".

prefer-plain-text
  A message being viewed may contain alternate versions of the same content. Those alternate versions are ordered by the sending software such that the first alternative is the least preferred and the last alternative is the most preferred. Alpine will normally display the most-preferred version that it knows how to display. This is most often encountered where the two alternate versions are a plain text version and an HTML version, with the HTML version listed last as the most preferred.

  If this option is set, then any plain text version will be preferred to all other versions.

preopen-stayopen-folders
  This feature is related to the option Stay-Open-Folders. Normally, Stay Open folders are only opened on demand, when the user asks to open them. From then on they are kept open for the duration of the session. However, if this feature is set, then the Stay Open folders will all be opened at startup, at the same time that the INBOX is opened.

preserve-start-stop-characters
  This feature controls how special control key characters, typically ^S and ^Q, are interpreted when input to Alpine. These characters are known as the "start" and "stop" characters and are sometimes used in communications paths to control data flow between devices that operate at different speeds.

  By default, Alpine turns the system's handling of these special characters off except during printing. However, if you see Alpine reporting input errors such as:

  > [ Command "^Q" not defined for this screen. ]

  and, at the same time, see your display become garbled, then it is likely that setting this option will solve the problem. Be aware, though, that enabling this feature will also cause Alpine to ostensibly "hang" whenever the Ctrl-S key combination is entered as the system is now interpreting such input as a "stop output" command. To "start output" again, simply type Ctrl-Q.

  This feature is displayed as "Preserve Start/Stop Characters".

print-formfeed-between-messages
  Setting this feature causes a formfeed to be printed between messages when printing multiple messages with the Apply Print command.

print-includes-from-line
  If this feature is set, then the Unix mail style From line is included at the start of each message that is printed. This line looks something like the following, with the address replaced by the address from the From line of the message being printed:

  > From user@domain.somewhere.com Mon May 13 14:11:06 1996

print-index-enabled
  This feature controls the behavior of the Print command when in the "Folder Index" screen. If set, the Print command will give you a prompt asking if you wish to print the message index, or the currently highlighted message. If not set, the message will be printed.

print-offers-custom-cmd-prompt
  When this feature is set, the Print command will have an additional subcommand called C CustomPrint. If selected, you will have the opportunity to enter any system print command, instead of being restricted to using those that have been previously configured in the Setup/Printer screen.

  This feature is displayed as "Print Offers Custom Command Prompt".

prune-uses-yyyy-mm
  By default, Alpine asks monthly whether or not you would like to rename some folders to a new name containing the date. It also asks whether or not you would like to delete some old folders. See the pruning-rule option for an explanation.

  By default, the name used when renaming a folder looks like

  `<foldername>-<month>-<year>`

  For example, the first time you run Alpine in May of 2004, the folder "sent-mail" might be renamed to

  `sent-mail-apr-2004`

  If this feature is set, the name used will be of the form

  `<foldername>-<yyyy>-<mm>`

  where "yyyy" is the year and "mm" is the two-digit month (01, 02, ..., 12). For the April, 2004 example above, it would instead be

  `sent-mail-2004-04`

  because April is the 4th month of the year. A reason you might want to set this feature is so that the folders will sort in chronological order.

publiccerts-in-keychain
  Mac OS X Alpine only.

  If this feature is set the Mac OS X default keychain will be used as the place to store public certificates instead of a smime-public-cert-directory or a smime-public-cert-container.

  This feature is displayed as "S/MIME -- Public Certs in MacOS Keychain".

quell-attachment-extension-warn
  This feature suppresses the extra warning you can get when trying to view an attachment for which there is no mime-type match. Turning on this feature will just run the program according to extension instead of first warning the user that it will run according to the file's extension.

  This feature can be used along side quell-attachment-extra-prompt to preserve the behavior exhibited in Pine versions prior to Pine 4.50.

  This feature is displayed as "Suppress Attachment Extension Warning".

quell-attachment-extra-prompt
  By default, when you attempt to view an attachment externally from the "Attachment View" screen, you are asked if you really want to view the selected attachment.

  If this feature is set, you will not be prompted to confirm your selection. Prior to Pine 4.50, the default behavior was to not prompt. This feature was added for those wanting to preserve that behavior.

  This feature is displayed as "Suppress Attachment Extra Prompt".

quell-berkeley-format-timezone
  POSIX mandates a timezone in UNIX mailbox format folder delimiters (the line which begins with From ). Some versions of Berkeley mail have trouble with this, and don't recognize the line as a message delimiter. If this feature is set, the timezone will be left off the delimiter line.

  This feature is displayed as "Suppress Berkeley Format Timezone".

quell-charset-warning
  By default, if the message you are viewing contains characters that are not representable in your display-character-set then Alpine will add a warning to the start of the displayed text. If this option is set, then that editorial message will be suppressed.

  Setting this feature also suppresses the comment about the character set in header lines. For example, when viewing a message you might see

  `From: "[ISO-8859-2] Name" <address>`

  in the From header if your Character-Set is something other than ISO-8859-2. If you set this feature, the comment about the character set will no longer be there.

  This feature is displayed as "Suppress Character Set Warning".

quell-content-id
  This feature changes the behavior of Alpine when sending messages. It is intended to work around a bug in Microsoft's Outlook XP mail user agent. As of this writing, Microsoft has acknowledged the bug but has not added it to the Knowledge Base. We have been told that there will be a post-SP1 hotfix for Outlook XP. This particular bug has bug fix number OfficeQFE:4781. The nature of the bug is that messages with attachments which contain a Content-ID header (which standard Alpine attachments do) do not show the attachment indicator (a paperclip) when viewed with Outlook XP. So the user has no indication that the message contains an attachment.

  If this feature is set then Alpine will remove most Content-ID headers before sending a message. If an attachment is of type MESSAGE, then the existing Content-ID headers inside the message will be left intact. This would only happen with Alpine if a message was forwarded as an attachment or if a message with a message attached was forwarded. Similarly if an attachment of type MULTIPART/ALTERNATIVE is forwarded, the Content-ID headers of the alternative parts will not be removed.

  Because the Content-ID header is a standard part of MIME it is possible that setting this feature will break something. For example, if an attachment has a Content-ID header which is necessary for the correct functioning of that attachment, it is possible that Alpine may remove that header when the attachment is forwarded. However, it seems fairly safe at this time.

  This feature is displayed as "Suppress Content-ID".

quell-dead-letter-on-cancel
  This feature affects Alpine's behavior when you cancel a message being composed. Alpine's usual behavior is to write the canceled message to a file named `dead.letter` in your home directory (under UNIX; `DEADLETR` under WINDOWS/DOS) overwriting any previous message. Under some conditions (some routine), this can introduce a noticeable delay.

  Setting this feature will cause Alpine NOT to write canceled compositions into the file called `dead.letter`.

  This feature affects the newer option Dead-Letter-Files, which specifies the number of dead letter files to keep around. If this feature is set, then the Dead-Letter-Files option has no effect.

  This feature is displayed as "Do Not Save to Deadletter on Cancel".

quell-empty-directories
  This feature causes Alpine to remove from the display any directories that do not contain at least one file or directory. This can be useful to prevent overly cluttered folder lists when a collection is stored on a server that treats all names as both a folder and a directory.

  Note, enabling this feature can cause surprising behavior! For example, you can still use Add to create a directory, but unless you immediately enter that directory and create a folder, that newly created directory may not be displayed next time you enter the folder list.

  This feature is displayed as "Hide Empty Directories".

quell-extra-post-prompt
  This feature causes Alpine to skip the extra question about posting a message which may go to thousands of readers when you are about to post to a newsgroup.

  This feature is displayed as "Suppress Extra Posting Prompt".

quell-filtering-done-message
  This feature causes Alpine to suppress the "filtering done" message.

  This feature is displayed as "Suppress Filtering Done Message".

quell-filtering-messages
  This feature causes Alpine to suppress the messages about moving filtered messages and setting flags in messages, due to Filter Rules.

  This feature is displayed as "Suppress Filtering Messages".

quell-flowed-text
  Alpine generates flowed text where possible. The method for generating flowed text is defined by RFC 3676, the benefit of doing so is to send message text that can properly be viewed both on normal width displays and on displays with smaller or larger than normal screen widths. With flowed text, a space at the end of a line tells the receiving mail client that the following line belongs to the same paragraph. Quoted text will also be affected, with only the innermost level of ">" quoting being followed by a space. However, if you have changed the "Reply-Indent-String" so that it is not equal to the default value of "> ", then quoted text will not be flowed. For this reason, we recommend that you leave your "Reply-Indent-String" set to the default.

  This feature turns off the generation of flowed text, as it might be desired to more tightly control how a message is displayed on the receiving end.

  If this feature is not set, you can control on a message by message basis whether or not flowed text is generated. You do this by typing ^V at the Send confirmation prompt that you get after typing ^X to send a message. ^V is a toggle which turns flowing off and back on if typed again. If for some reason flowing cannot be done on a particular message, then the ^V command will not be available. This would be the case, for example, if this feature was set, or if your "Reply-Indent-String" was set to a non-default value. If the feature Send-Without-Confirm is set, then the opportunity to control on a message by message basis whether or not flowed text is generated is lost.

  When this feature is not set and you have typed ^V to turn off flowing, the Send confirmation prompt will change to look like

  `Send message (not flowed)?`

  Strip-Whitespace-Before-Send will also turn off the sending of flowed text messages, but it differs in that it also trims all trailing white space from a message before sending it.

  If alternate editors are used extensively, be aware that a message will still be sent flowed if this feature is unset. In most cases this will be fine, but if the editor has a "flowed text" mode, it would be best to use that.

  This feature is displayed as "Do Not Send Flowed Text".

quell-folder-internal-msg
  This feature determines whether or not Alpine will create "pseudo messages" in folders that are in standard Unix or MMDF format.

  Alpine will normally create these pseudo messages when they are not already present in a standard Unix or MMDF folder. Their purpose is to record certain mailbox state data needed for correct IMAP and POP server operation, and also for Alpine to be able to mark messages as Answered when the Reply has been postponed.

  Sites which do not use IMAP/POP for remote mail access, and which need to support mail tools that are adversely affected by the presence of the pseudo-messages (e.g. some mail notification tools) may enable this feature to tell Alpine not to create them. Note that Alpine's "Answered" flag capability will be adversely affected if this is done.

  Note too that, even if this feature is enabled, Alpine will not remove pseudo-messages when it encounters them (e.g. those created by UW's imapd or ipopd servers.) This feature has no effect on folders that are not in standard Unix or MMDF format, as pseudo-messages are not needed in the other formats to record mailbox state information.

  This feature is displayed as "Prevent Folder Internal Message".

quell-full-header-auto-reset
  The HdrMode Command normally resets to the default state when switching to a new message. For example, if you've used the "H" command to turn on Full Headers for a message you are viewing, and then you type the Next command to look at the next message, the full headers will no longer be shown. Setting this feature disables that reset. Instead, the Header Mode remains the same from message to message.

  The presence or absence of the HdrMode command is determined by the "Enable-Full-Header-Cmd" Feature-List option.

  This feature is displayed as "Suppress Full Header Auto Reset".

quell-imap-envelope-update
  In the MESSAGE INDEX screen, if the open folder is being accessed using IMAP, Alpine normally tries to paint the index lines on the screen as soon as the information arrives from the IMAP server. This means that the index information makes it onto the screen more quickly than it otherwise would. This sometimes results in behavior that bothers some users. For example, when paging to a new page of the index, it may be possible for the lines to be painted on the screen in a random order, rather than from top to bottom.

  Setting this feature causes Alpine to wait for all of the information to be gathered before it paints the index screen. Once it collects all of the information, the screen will be painted quickly from top to bottom.

  This feature is displayed as "Suppress IMAP Envelope Update".

quell-lock-failure-warnings
  This feature affects Alpine's behavior when it encounters a problem acquiring a mail folder lock. Typically, a secondary file associated with the mail folder being opened is created as part of the locking process. On some systems, such file creation has been administratively precluded by the system configuration.

  Alpine issues a warning when such failures occur, which can become bothersome if the system is configured to disallow such actions. Setting this feature causes Alpine to remain silent when this part of lock creation fails.

  WARNING: systems that have been configured in a way that precludes locking introduce some risk of mail folder corruption when more than one program attempts to modify the mail folder. This is most likely to occur to one's INBOX or other "Incoming Message Folder".

  This feature is displayed as "Suppress Lock Failure Warnings".

Quell-Mailchecks-Composing-Except-Inbox
  This option is closely related to the Mail-Check-Interval option, the Mail-Check-Interval-Noncurrent option, and Quell-Mailchecks-Composing-Inbox.

  If this option is set, then the normal new-mail checking which happens while you are composing will not happen for folders other than your INBOX (which depends on the setting of "Quell-Mailchecks-Composing-Inbox").

  You might want to set this option if you are experiencing delays while composing which you think might be related to the speed of the new-mail checks.

  Even with this option turned on, an occasional new-mail check may be done in order to keep the server from killing the connection to the folder. For example, IMAP servers may remove a connection to a folder if there has been no activity on the connection for 30 minutes or more. Instead of letting that happen, Alpine will check for new mail before the 30 minutes is up even though you have turned on this feature to quell those checks.

  Besides new-mail checks, checkpoint operations on the folders will also be quelled when you set this option. The purpose of checkpointing is to write the changes to a folder out to disk periodically in order to avoid losing those changes when system or software problems occur. New-mail checking and checkpointing while you are not composing are not affected by this option.

  This feature is displayed as "Prevent Mailchecks While Composing Except for INBOX".

Quell-Mailchecks-Composing-Inbox
  This option is closely related to the Mail-Check-Interval option, the Mail-Check-Interval-Noncurrent option, and Quell-Mailchecks-Composing-Except-Inbox.

  If this option is set, then the normal new-mail checking which happens while you are composing will not happen for your INBOX. Checking of other folders is controlled in a similar way with the "Quell-Mailchecks-Composing-Except-Inbox" option.

  You might want to set this option if you are experiencing delays while composing which you think might be related to the speed of the new-mail checks.

  Even with this option turned on, an occasional new-mail check may be done in order to keep the server from killing the connection to the folder. For example, IMAP servers may remove a connection to a folder if there has been no activity on the connection for 30 minutes or more. Instead of letting that happen, Alpine will check for new mail before the 30 minutes is up even though you have turned on this feature to quell those checks.

  Besides new-mail checks, checkpoint operations on the INBOX will also be quelled when you set this option. The purpose of checkpointing is to write the changes to a folder out to disk periodically in order to avoid losing those changes when system or software problems occur. New-mail checking and checkpointing while you are not composing are not affected by this option.

  This feature is displayed as "Prevent Mailchecks While Composing for INBOX".

quell-maildomain-warning
  When your configuration is set up so that your domain name contains no dots, it is usually a configuration error. By default, Alpine will warn you about this when you start it up. You will see a warning message that looks like

  `Incomplete maildomain "<domain>".`

  If this feature is set, the warning is turned off. This feature is displayed as "Suppress Maildomain Warning".

quell-news-envelope-update
  In the MESSAGE INDEX screen, if the open folder is being accessed using NNTP (News), Alpine normally tries to paint the index lines on the screen as soon as the information arrives from the NNTP server. This means that the index information makes it onto the screen more quickly than it otherwise would. This sometimes results in behavior that bothers some users. For example, when paging to a new page of the index, it may be possible for the lines to be painted on the screen in a random order, rather than from top to bottom.

  Setting this feature causes Alpine to wait for all of the information to be gathered before it paints the index screen. Once it collects all of the information, the screen will be painted quickly from top to bottom.

  This feature is displayed as "Suppress News Envelope Update".

quell-partial-fetching
  Partial fetching is a feature of the IMAP protocol. By default, Alpine will use partial fetching when copying the contents of a message or attachment from the IMAP server to Alpine. This means that the fetch will be done in many small chunks instead of one big chunk. The main benefit of this approach is that the fetch becomes interruptible. That is, the user can type ^C to stop the fetch early. In some cases partial fetching may cause a performance problem so that the fetching of data takes significantly longer when partial fetching is used. Turning on this feature will turn off partial fetching.

  This feature is displayed as "Prevent Partial Fetching".

quell-personal-name-prompt
  PC-Alpine only. This feature quells the prompting for a personal-name. This prompt normally happens before composing a message, and only happens when there is no personal name already set.

quell-server-after-link-in-html
  By default, links in HTML text are displayed with the host the link references appended, within square brackets, to the link text. Alpine does this to help indicate where a link will take you, particularly when the link text might suggest a different destination.

  Setting this feature will prevent the server name from being appended to the displayed text.

  This feature is displayed as "Suppress Server After Link in HTML".

quell-ssl-largeblocks
  This feature (PC-Alpine only) changes the behavior of fetching messages and attachments so that the message data is fetched in chunks no larger than 12K bytes. This works around a bug in Microsoft's SSL/TLS support. Some versions of Microsoft SSL are not able to read full-sized (16K) SSL/TLS packets. Some servers will send such packets and this will cause PC-Alpine to crash with the error

  `incomplete SecBuffer exceeds maximum buffer size`

  Microsoft is aware of the problem and has developed a hotfix for it, but as of this writing the hotfix has not yet been added to the Knowledge Base.

  This feature is displayed as "Prevent SSL Largeblocks".

quell-status-message-beeping
  If set status messages will never emit a beep.

  This feature is displayed as "Suppress Status Message Beeping".

quell-timezone-comment-when-sending
  Normally, when Alpine generates a Date header for outgoing mail, it will try to include the symbolic timezone at the end of the header inside parentheses. The symbolic timezone is often three characters long, but on some operating systems, it may be longer. Apparently there are some SMTP servers in the world which will reject an incoming message if it has a Date header longer than about 80 characters. If this feature is set, the symbolic timezone normally generated by Alpine will not be included. You probably don't need to worry about this feature unless you run into the problem described above.

  This feature is displayed as "Suppress Timezone Comment When Sending".

quell-user-id-prompt
  PC-Alpine only. This feature quells the prompting for a user-id if the information can be obtained from the login name used to open the INBOX. Normally, this prompt happens before composing a message, and only happens when there is no user-id already set in the configuration.

  With this feature set, composing a message is only possible after establishing a connection to the INBOX.

quell-user-lookup-in-passwd-file
  This feature controls an aspect of Alpine's Composer, and if needed, will usually be set by the system manager in Alpine's system-wide configuration file. Specifically, if this feature is set, Alpine will not attempt to look in the system password file to find a Full Name for the entered address.

  Normally, names you enter into address fields (e.g. To: or Cc:) are checked against your address book(s) to see if they match an address book nickname. Failing that, (in Unix Alpine) the name is then checked against the Unix password file. If the entered name matches a username in the system password file, Alpine extracts the corresponding Full Name information for that individual, and adds that to the address being entered.

  However, password file matching can have surprising (incorrect) results if other users of the system do not receive mail at the domain you are using. That is, if either the user-domain or use-only-domain-name option is set such that the administrative domain of other users on the system isn't accurately reflected, Alpine should be told that a password file match is coincidental, and Full Name info will be incorrect. For example, a personal name from the password file could get falsely paired with the entered name as it is turned into an address in the configured domain.

  If you are seeing this behavior, enabling this feature will prevent Unix Alpine from looking up names in the password file to find the Full Name for incomplete addresses you enter.

  This feature is displayed as "Prevent User Lookup in Password File".

quit-without-confirm
  This feature controls whether or not Alpine will ask for confirmation when a Quit command is received.

  This feature is displayed as "Quit Without Confirming".

quote-replace-nonflowed
  This feature, which is only active when Quote-Replace-String is also set, enables quote-replacement on non-flowed messages. It is off by default because a non-flowed message is more dependent on its format, and thus quote-replacement may cause less-than-pleasing results. Setting this feature will cause quote-replacement similar to that of flowed messages, but with the added possibility of long lines being wrapped into new lines if the Quote-Replacement-String is longer than the string it is replacing, which is "> ".

reply-always-uses-reply-to
  If set, Alpine will not prompt when a message being replied to contains a Reply-To: header value, but will simply use its value (as opposed to using the From: field's value).

return-to-inbox-without-confirm
  Normally, when you use the TAB command and there are no more folders or newsgroups to visit, you are asked if you want to return to the INBOX. If this feature is set you will not be asked. It will be assumed that you do want to return to the INBOX.

  This feature is displayed as "Return to INBOX Without Confirming".

save-aggregates-copy-sequence
  This feature will optimize an aggregate copy operation, if possible, by issuing a single IMAP COPY command with a list of the messages to be copied. This feature is set by default. This may reduce network traffic and elapsed time for the Save. However, many IMAP servers (including the UW IMAP server) do not preserve the order of messages when this optimization is applied. If this feature is not set, Alpine will copy each message individually and the order of the messages will be preserved.

  This feature is displayed as "Save Combines Copies (may be out of order)".

save-partial-msg-without-confirm
  This feature controls an aspect of Alpine's Save command. By default, when you Save a message that has some deleted parts, you will be asked to confirm that you want to Save with a prompt that looks like:

  `Saved copy will NOT include entire message! Continue?`

  If this feature is set, you will not be asked.

  This feature is displayed as "Save Partial Message Without Confirming".

save-will-advance
  If set, Save will (in addition to copying the current message to the designated folder) also advance to the next message.

save-will-not-delete
  If set, Save will not mark the message Deleted (its default behavior) after it has been copied to the designated folder.

save-will-quote-leading-froms
  This feature controls an aspect of the Save command (and also the way outgoing messages are saved to an FCC folder). If set, Alpine will add a leading `>` character in front of message lines beginning with "From" when they are saved to another folder, including lines syntactically distinguishable from the type of message separator line commonly used on Unix systems.

  The default behavior is that a `>` will be prepended only to lines beginning with "From " that might otherwise be confused with a message separator line on Unix systems. If Alpine is the only mail program you use, this default is reasonable. If another program you use has trouble displaying a message with an unquoted From saved by Alpine, you should enable this feature. This feature only applies to the common Unix mailbox format that uses message separator lines beginning with "From ". If Alpine has been configured to use a different mailbox format (possibly incompatible with other mail programs), then this issue does not arise, and the feature is irrelevant.

scramble-message-id
  Normally the Message-ID header that Alpine generates when sending a message contains the name of the computer from which the message is being sent. Some believe that this hostname could be used by spammers or could be used by others for nefarious purposes. If this feature is set, that name will be transformed with a simple Rot13 transformation. The result will still have the correct syntax for a Message-ID but the part of the MessageID that is often a domain name will not be an actual domain name because the letters will be scrambled.

  It is possible (but unlikely?) that some spam detection software will use that as a reason to reject the mail as spam. It has also been reported that some spam detection software uses the fact that there are no dots after the "@" as a reason to reject messages. If your PC-Alpine Message-ID is using a name without a dot that is because that is what Windows thinks is your "Full computer name". The method used to set this varies from one type of Windows to another but check under Settings -> Control Panel -> System and look for Network Identification or Computer Name or something similar. How to set it is beyond the scope of Alpine.

  This feature is displayed as "Scramble the Message-ID When Sending".

select-without-confirm
  This feature controls an aspect of Alpine's Save, Export, and Goto commands. These commands all take text input to specify the name of the folder or file to be used, but allow you to press ^T for a list of possible names. If set, the selected name will be used immediately, without further opportunity to confirm or edit the name.

  This feature is displayed as "Select Ctrl-T Foldername Without Confirming".

send-without-confirm
  By default, when you send or post a message you will be asked to confirm with a question that looks something like:

  `Send message?`

  If this feature is set, you will not be prompted to confirm your intent to send and your message will be sent.

  If this feature is set it disables some possibilities and renders some other features meaningless. You will not be able to use Sending Filters, Verbose sending mode, Background Sending, Delivery Status Notifications, or ^V to turn off the generation of flowed text for this message. These options are normally available as suboptions in the Send prompt, but with no Send prompt the options are gone.

  A somewhat related feature is quell-extra-post-prompt. which may be used to eliminate the extra confirmation question when posting to a newsgroup.

  This feature is displayed as "Send Without Confirming".

separate-folder-and-directory-display
  This feature affects folder collections wherein a folder and directory can have the same name. By default, Alpine displays them only once, denoting that it is both a folder and directory by appending the folder name with the hierarchy character enclosed in square brackets.

  Enabling this feature will cause Alpine to display such names separately marking the name representing a directory with a trailing hierarchy delimiter (typically the slash, "/", character).

  The feature also alters the command set slightly. By default, the right-arrow descends into the directory, while hitting the Return key will cause the folder by that name to be opened.

  With this feature set, the Return key will open the highlighted folder, or enter the highlighted directory.

show-cursor
  If set, the system cursor will move to convenient locations in the displays. For example, to the beginning of the status field of the highlighted index line, or to the highlighted word after a successful WhereIs command. It is intended to draw your attention to the interesting spot on the screen.

show-plain-text-internally
  This feature modifies the method Alpine uses to display Text/Plain MIME attachments from the Attachment Index screen. Normally, the "View" command searches for any externally defined (usually via the Mailcap file) viewer, and displays the selected text within that viewer.

  Enabling this feature causes Alpine to ignore any external viewer settings and always display text with Alpine's internal viewer.

show-selected-in-boldface
  This feature controls an aspect of Alpine's aggregate operation commands; in particular, the Select and WhereIs commands. Select and WhereIs (with the ^X subcommand) will search the current folder for messages meeting a specified criteria, and tag the resulting messages with an X in the first column of the applicable lines in the "Folder Index". If this feature is set, instead of using the X to denote a selected message, Alpine will attempt to display those index lines in boldface. Whether this is preferable to the X will depend on personal taste and the type of terminal being used.

show-sort
  If this feature is set and there is sufficient space on the screen, a short indication of the current sort order will be added in the titlebar (the top line on the screen), before the name of the folder. For example, with the default Arrival sort in effect, the display would have the characters

  [A]

  added between the title of the screen and the folder name. The letters are the same as the letters you may type to manually sort a folder with the SortIndex command ($). The letters in the table below are the ones that may show up in the titlebar line.

  A | Arrival
  S | Subject
  F | From
  T | To
  C | Cc
  D | Date
  Z | siZe
  O | Orderedsubject
  E | scorE
  H | tHread

  If the sort order is Reversed, the letter above will be preceded by the letter "R", for example

  [RS]

  means that a Reverse Subject sort is in effect. For the case where the sort is in Reverse Arrival order, the "A" is left out, and just an "R" is shown.

  [R]

  This feature is displayed as "Show Sort in Titlebar".

signature-at-bottom
  If this feature is set, and a message being Replied to is being included in the reply, then the contents of the signature file (if any) will be inserted after the included message. This feature does not affect the results of a Forward command.

single-column-folder-list
  If set, the "Folder List" screen will list one folder per line instead of several per line.

slash-collapses-entire-thread
  Normally, the Collapse/Expand Thread command Collapses or Expands the subthread which starts at the currently highlighted message, if any. If this feature is set, then the slash command Collapses or Expands the entire current thread instead of just the subthread.

smime-dont-do-smime
  UNIX Alpine only.

  Setting this feature turns off all of Alpine's S/MIME support. You might want to set this if you are having trouble due to the S/MIME support.

  - General S/MIME Overview

  This feature is displayed as "S/MIME -- Turn off S/MIME".

smime-encrypt-by-default
  UNIX Alpine only.

  This feature only has an effect if your version of Alpine includes support for S/MIME. It affects Alpine's behavior when you send a message. If this option is set, the "Encrypt" option will default to ON when sending messages.

  Only the default value is affected. In any case, you may still toggle the Encrypt option on or off before sending with the "E Encrypt" command (provided you have a the public digital ID for the recipient).

  - General S/MIME Overview

  This feature is displayed as "S/MIME -- Encrypt by Default".

smime-remember-passphrase
  UNIX Alpine only.

  This feature only has an effect if your version of Alpine includes support for S/MIME. If this option is set, you will only have to enter your passphrase for your private key once during an Alpine session.

  - General S/MIME Overview

  This feature is displayed as "S/MIME -- Remember S/MIME Passphrase".

smime-sign-by-default
  UNIX Alpine only.

  This feature only has an effect if your version of Alpine includes support for S/MIME. It affects Alpine's behavior when you send a message. If this option is set, the "Sign" option will default to ON when sending messages.

  Only the default value is affected. In any case, you may still toggle the Signing option on or off before sending with the "G Sign" command (provided you have a personal digital ID certificate).

  - General S/MIME Overview

  This feature is displayed as "S/MIME -- Sign by Default".

sort-default-fcc-alpha
  This feature controls an aspect of Alpine's FOLDER LIST screen. If set, the default FCC folder will be sorted alphabetically with the other folders instead of appearing right after the INBOX.

  This feature is displayed as "Sort Default Fcc Folder Alphabetically".

sort-default-save-alpha
  This feature controls an aspect of Alpine's FOLDER LIST screen. If set, the default save folder will be sorted alphabetically with the other folders instead of appearing right after the INBOX (and default FCC folder).

  This feature is displayed as "Sort Default Save Folder Alphabetically".

spell-check-before-sending
  When this feature is set, every composed message will be spell-checked before being sent.

store-window-position-in-config
  Normally, PC-Alpine will store its window size and position in the Windows Registry. This is convenient if you want to use the same remote configuration from more than one PC. If you use multiple configuration files to start PC-Alpine, you may want to store the window size and position in the configuration file instead of in the Registry. Setting this feature causes that to happen.

strip-from-sigdashes-on-reply
  This feature doesn't do anything if the feature enable-sigdashes is turned on. However, if the enable-sigdashes feature is not turned on, then turning on this feature enables support for the convention of not including text beyond the sigdashes line when Replying or Following up to a message and including the text of that message.

  In other words, this is a way to turn on the signature stripping behavior without also turning on the dashes-adding behavior.

strip-whitespace-before=send
  Trailing whitespace is not stripped from a message before sending. Trailing whitespace should have no effect on an email message, and in flowed text can aid in delimiting paragraphs. However, the old behavior of stripping trailing whitespace was in place to better deal with older clients that couldn't handle certain types of text encodings. This feature restores the old behavior

  Trailing whitespace is of aid to flowed-text-formatted messages, which are generated by default but can be turned off via the quell-flowed-text feature. strip-whitespace-before-send also has the effect of turning off sending of flowed text.

  This feature is displayed as "Strip Whitespace Before Sending".

suppress-asterisks-in-password-prompt
  When you are running Alpine you will sometimes be asked for a password in a prompt on the third line from the bottom of the screen. Normally each password character you type will cause an asterisk to echo on the screen. That gives you some feedback to know that your typing is being recognized. There is a very slight security risk in doing it this way because someone watching over your shoulder might be able to see how many characters there are in your password. If you'd like to suppress the echoing of the asterisks set this feature.

suppress-user-agent-when-sending
  If this feature is set then Alpine will not generate a `User-Agent` header in outgoing messages.

tab-checks-recent
  In a FOLDER LIST screen, the TAB key usually just changes which folder is highlighted. If this feature is set, then the TAB key will cause the number of recent messages and the total number of messages in the highlighted folder to be displayed instead.

  This feature is displayed as "Tab Checks for Recent Messages".

tab-uses-unseen-for-next-folder
  This feature affects Alpine's behavior when using the TAB NextNew Command to move from one folder to the next. Alpine's usual behavior is to search for folders with Recent messages in them. Recent messages are messages which have arrived since the last time the folder was opened.

  Setting this feature causes Alpine to search for Unseen messages instead of Recent messages. Unseen messages remain Unseen until you view them (or flag then as Seen with the Flag Command). Setting this feature allows you to locate messages you have not read instead of only recently received messages. When this feature is set, the feature Enable-Fast-Recent-Test will have no effect, so the checking may be slower.

  Another reason why you might want to use this feature is that Alpine sometimes opens folders implicitly behind the scenes, and this clears the Recent status of all messages in the folder. One example where this happens is when Saving or filtering a message to another folder. If that message has some keywords set, then because of some shortcomings in the IMAP specification, the best way to ensure that those keywords are still set in the saved copy of the message is to open the folder and set the keywords explicitly. Because this clears the Recent status of all messages in that folder the folder will not be found by the NextNew command unless this feature is set.

tab-visits-next-new-message-only
  This feature affects Alpine's behavior when using the TAB key to move from one message to the next. Alpine's usual behavior is to select the next Unread message or message flagged as Important.

  Setting this feature causes Alpine to skip the messages flagged as Important, and select Unread messages exclusively. Tab behavior when there are no new messages left to select remains unchanged.

termdef-takes-precedence
  This feature may affect Alpine's low-level input routines. Termcap (or terminfo, depending on how your copy of Alpine was compiled and linked) is the name of the database which describes terminal capabilities. In particular, it describes the sequences of characters that various keys will emit.

  An example would be the Up Arrow key on the keyboard. Up Arrow is not a distinct character on most Unix systems. When you press the Up Arrow key a short sequence of characters are produced. This sequence is supposed to be described in the termcap database by the "ku" capability (or by the "kcuu1" capability if you are using terminfo instead of termcap).

  By default, Alpine defines some terminal escape sequences that are commonly used. For example, the sequence "ESC O A" is recognized as an Up Arrow key. The sequence "ESC [ A" is also recognized as an Up Arrow key. These are chosen because common terminals like VT100's or ANSI standard terminals produce these sequences when you press the Up Arrow key.

  If your system's termcap (terminfo) database assigns some other function to the sequence "ESC O A" it is usually ignored by Alpine. Also, if your termcap (terminfo) database assigns a sequence which doesn't begin with an escape character (`ESC`) it is usually ignored by Alpine. This usually works fine because most terminals emit the escape sequences that Alpine has defined by default. We have also found that it is usually better to have these defaults take precedence over the definitions contained in the database because the defaults are more likely to be correct than the database.

  There are some terminals where this breaks down. If you want Alpine to believe the definitions given in your termcap (terminfo) database in preference to the defaults the Alpine itself sets up, then you may turn this feature on. Then, sequences of characters which are defined in both termcap (terminfo) and in Alpine's set of defaults will be interpreted the way that termcap (terminfo) says they should be interpreted. Also, if your terminal capabilities database assigns a sequence which doesn't begin with escape, it will not be ignored.

thread-index-shows-important-color
  This option affects only the THREAD INDEX screen. Whether or not you ever see a THREAD INDEX screen depends on the setting of the configuration option threading-index-style and on the sort order of the index. If a message within a thread is flagged as Important and this option is set, then the entire line in the THREAD INDEX will be colored the color of the Index-important Symbol, which can be set using the Setup Kolor screen.

try-alternative-authentication-driver-first
  This feature affects how Alpine connects to IMAP servers. It's utility has largely been overtaken by events, but it may still be useful in some circumstances. If you only connect to modern IMAP servers that support "TLS" you can ignore this feature.

  Details:

  By default, Alpine will attempt to connect to an IMAP server on the normal IMAP service port (143), and if the server offers "Transport Layer Security" (TLS) and Alpine has been compiled with encryption capability, then a secure (encrypted) session will be negotiated.

  With this feature enabled, before connecting on the normal IMAP port, Alpine will first attempt to connect to an alternate IMAP service port (993) used specifically for encrypted IMAP sessions via the Secure Sockets Layer (SSL) method. If the SSL attempt fails, Alpine will then try the default behavior described in the previous paragraph.

  TLS negotiation on the normal port is preferred, and supersedes the use of SSL on port 993, but older servers may not provide TLS support. This feature may be convenient when accessing IMAP servers that do not support TLS, but do support SSL connections on port 993. However, it is important to understand that with this feature enabled, Alpine will attempt to make a secure connection if that is possible, but it will proceed to make an insecure connection if that is the only option offered by the server, or if the Alpine in question has been built without encryption capability.

  Note that this feature specifies a per-user (or system-wide) default behavior, but host/folder specification flags may be used to control the behavior of any specific connection. This feature interacts with some of the possible host/folder path specification flags as follows:

  The `/tls` host flag, for example,

  `{foo.example.com/tls}INBOX`

  will over-ride this feature for the specified host by bypassing the SSL connection attempt. Moreover, with `/tls` specified, the connection attempt will fail if the service on port 143 does not offer TLS support.

  The `/ssl` host flag, for example,

  `{foo.example.com/ssl}INBOX`

  will insist on an SSL connection for the specified host, and will fail if the SSL service on port 993 is not available. Alpine will not subsequently retry a connection on port 143 if `/ssl` is specified.

unselect-will-not-advance
  Normally, when the Unselect current message command (:) is typed when the current message is selected, the message will be unselected and the next message will become the current message. If this feature is set, the cursor will not advance to the next message. Instead, the current message will remain the current message after unselecting.

use-current-dir
  This feature controls an aspect of several commands. If set, your "current working directory" will be used instead of your home directory for all of the following operations:
  - Export in the "Folder Index" and "Message Text" screens
  - Attachment Save in the "Message Text" and "Attachment Text" screens
  - ^R file inclusion in the Composer
  - ^J file attachment in the Composer

  This feature is displayed as "Use Current Directory".

use-function-keys
  This feature specifies that Alpine will respond to function keys instead of the normal single-letter commands. In this mode, the key menus at the bottom of each screen will show function key designations instead of the normal mnemonic key.

use-regular-startup-rule-for-stayopen-folders
  This feature affects which message is selected as the current message when you enter a Stay Open folder.

  Normally, the starting position for an incoming folder (which most Stay Open folders will likely be) is controlled by the Incoming-Startup-Rule. However, if a folder is a Stay Open folder, when you re-enter the folder after the first time the current message will be the same as it was when you left the folder. An exception is made if you use the TAB command to get to the folder. In that case, the message number will be incremented by one from what it was when you left the folder.

  The above special behavior is thought to be useful. However, it is special and different from what you might at first expect. If this feature is set, then Stay Open folders will not be treated specially as far as the startup rule is concerned.

use-resent-to-in-rules
  This feature is turned off by default because turning it on causes problems with some deficient IMAP servers. In Alpine Filters and other types of Rules, if the Pattern contains a To header pattern and this feature is turned on, then a check is made in the message to see if a Resent-To header is present, and that is used instead of the To header. If this feature is not turned on, then the regular To header will always be used.

use-sender-not-x-sender
  Normally Alpine on Unix adds a header line labeled X-X-Sender, if the sender is different from the From: line.

  The standard specifies that this header line should be labeled Sender, not X-X-Sender. Setting this feature causes Sender to be used instead of X-X-Sender. The standard also states that the data associated with this header field should not be used as a Reply address. Unfortunately, certain implementations of mail list management servers will use the Sender address for such purposes. These implementations often even recognize the X-Sender fields as being equivalent to the Sender field, and use it if present. This is why Alpine defaults to X-X-Sender.

  Note, PC-Alpine always adds either an X-X-Sender line if there is an open, remote mailbox, or an X-Warning: UNAuthenticated User otherwise

  This feature is displayed as "Use Sender Instead of X-X-Sender".

use-subshell-for-suspend
  This feature affects Alpine's behavior when process suspension is enabled and then activated via the ^Z key. Alpine suspension allows one to temporarily interact with the operating system command "shell" without quitting Alpine, and then subsequently resume the still-active Alpine session.

  When the enable-suspend feature is set and subsequently the ^Z key is pressed, Alpine will normally suspend itself and return temporary control to Alpine's parent shell process. However, if this feature is set, Alpine will instead create an inferior subshell process. This is useful when the parent process is not intended to be used interactively. Examples include invoking Alpine via the `-e` argument of the Unix xterm program, or via a menu system.

  Note that one typically resumes a suspended Alpine by entering the Unix fg command, but if this feature is set, it will be necessary to enter the exit command instead.

use-system-translation
  UNIX Alpine only. Alpine normally uses its own internal software to convert between the multi-byte representation of characters and the Unicode representation of those same characters ( see the section on International Character Sets). It converts from the multi-byte characters your keyboard produces to Unicode, and from Unicode to the multi-byte characters your display expects. Alpine also uses its own internal software to decide how much space on the screen a particular Unicode character will occupy.

  Setting this feature tells Alpine to use the system-supplied routines to perform these tasks instead. In particular there are three tasks and three system routines that will be used for these tasks.

  To convert from multi-byte to Unicode the routine

  `mbstowcs`

  is used. To convert from Unicode to multi-byte the routine

  `wcrtomb`

  is used. And to find the screen width a particular Unicode character will occupy the routine used is

  `wcwidth`

  This feature has been only lightly tested. The internal routines should normally be used unless you run into a problem that you think may be solved by using the system routines. Note that your environment needs to be set up for these routines to work correctly. In particular, the LANG or LC_CTYPE variable in your environment will need to be set.

vertical-folder-list
  This feature controls an aspect of Alpine's FOLDER LIST screen. If set, the folders will be listed alphabetically down the columns rather than across the columns as is the default.

  This feature is displayed as "Use Vertical Folder List".

warn-if-blank-subject
  This feature affects Alpine's behavior when you send a message being composed. If this option is set, Alpine will check to see if the message about to be sent has a subject or not. If not, you will be asked if you want to send the message anyway.

warn-if-blank-to-and-cc-and-newsgroups
  This feature affects Alpine's behavior when you send a message being composed. If this option is set, Alpine will check to see if the message about to be sent has either a To address, a Cc address, or a Newsgroup. If none of these is set, you will be asked if you want to send the message anyway.

  This feature is closely related to fcc-only-without-confirm. Alpine will normally ask if you want to copy a message only to the Fcc. This feature also applies to cases where there is a Bcc but still no To, Cc, or Newsgroup. If the Fcc-Only-Without-Confirm feature is set and you are sending a message with only an Fcc, then you won't be asked about sending with a blank To and Cc and Newsgroups header even if this feature is set. Similarly, if you have already been asked if you want to send to the Fcc only and you have answered Yes, then you won't be asked again about sending with blank To, Cc, and Newsgroups headers even if this feature is set.

## Hidden Config Variables and Features

There are several configuration variables and features which are normally hidden from the user. That is, they don't appear on any of the configuration screens. Some of these are suppressed because they are intended to be used by system administrators, and in fact may only be set in system-wide configuration files. Others are available to users but are thought to be of such little value to most users that their presence on the Config screens would cause more confusion than help. Others are hidden in the Setup/Config screen because they are normally configured in one of the other configuration screens. For example, all of the colors are hidden because the normal way to configure colors is through Setup/Colors not Setup/Config. You may set the feature expose-hidden-config to cause most of these hidden variables and features to show up at the bottom of the Setup/Config screen.

### Hidden Variables Not Settable by Users

These variables are settable only in system-wide configuration files.

- bugs-additional-data
- bugs-address
- bugs-fullname
- forced-abook-entry
- kblock-passwd-count
- local-address
- local-fullname
- mail-directory
- standard-printer
- suggest-address
- suggest-fullname

### Hidden Variables Which are Settable by Users

These variables are not shown to users but are settable by means of hand editing the personal configuration file. This first group is usually maintained by Alpine and there will usually be no reason to edit them by hand.

- last-version-used
- patterns-filters2
- patterns-indexcolors
- patterns-roles
- patterns-scores2
- remote-abook-metafile

This group is usually correct but may be changed by system managers or users in special cases.

- disable-these-authenticators
- disable-these-drivers
- last-time-prune-questioned
- new-version-threshold
- remote-abook-history
- remote-abook-validity
- rsh-command
- rsh-open-timeout
- rsh-path
- sendmail-path
- ssh-command
- ssh-open-timeout
- ssh-path
- tcp-open-timeout
- tcp-query-timeout
- tcp-read-warning-timeout
- tcp-write-warning-timeout
- use-function-keys

System managers are usually interested in setting these in the system-wide configuration files, though users may set them if they wish.

- operating-dir
- user-input-timeout

### Hidden Features Which are Settable by Users

These are features (as opposed to variables) which users or system administrators may set. Some of them only make sense for administrators. To turn these on manually, the configuration file should be edited and the feature added to the feature-list variable. You may set the feature expose-hidden-config to cause these hidden features to show up in the Setup/Config screen. They will be at the bottom of the screen.

- disable-config-cmd
- disable-keyboard-lock-cmd
- disable-password-cmd
- disable-pipes-in-sigs
- disable-pipes-in-templates
- disable-roles-setup-cmd
- disable-roles-sig-edit
- disable-roles-template-edit
- disable-setlocale-collate
- disable-shared-namespaces
- disable-signature-edit-cmd

## Retired Variables and Features

Variables and features that are no longer used by the current Alpine version. When an obsolete variable is encountered, its value is applied to any new corresponding setting. The replaced values include:

character-set
  Replaced by three separate variables: display-character-set, keyboard-character-set, and posting-character-set.
compose-mime
elm-style-save
  Replaced by saved-msg-name-rule
feature-level
  Replaced by feature-list.
header-in-reply
  Replaced by include-header-in-reply in the feature-list.
old-style-reply
  Replaced by signature-at-bottom in the feature-list.
use-old-unix-format-write
  No replacement.
patterns
  Replaced by four separate patterns variables: patterns-roles, patterns-filters, patterns-scores, and patterns-indexcolors. Since then, patterns-filters has also become obsolete and is replaced by patterns-filters2; patterns-scores is replaced by patterns-scores2.
save-by-sender
  Replaced by saved-msg-name-rule.
show-all-characters
  No replacement, it always works this way now.

## Tokens for Index and Replying

This set of special tokens may be used in the index-format option, in the reply-leadin option, in signature files, in template files used in roles, and in the folder name that is the target of a Filter Rule. Some of them aren't available in all situations.

The tokens are used as they appear below for the Index-Format option, but they must be surrounded by underscores for the Reply-Leadin option, in signature and template files, and in the target of Filter Rules.

### Tokens Available for all Cases (except Filter Rules)

SUBJECT
  This token represents the Subject the sender gave the message. Alternatives for use in the index screen are SUBJKEY, SUBJKEYINIT, SUBJECTTEXT, SUBJKEYTEXT, and SUBJKEYINITTEXT. You may color the subject text in the MESSAGE INDEX screen differently by using the Index Subject Color and the Index Opening Color. options available from the Setup Kolor screen.
FROM
  This token represents the personal name (or email address if the name is unavailable) of the person specified in the message's "From:" header field. You may color the from text in the MESSAGE INDEX screen differently by using the Index From Color option available from the Setup Kolor screen.
ADDRESS
  This is similar to the "FROM" token, only it is always the email address, never the personal name. For example, "mailbox@domain".
MAILBOX
  This is the same as the "ADDRESS" except that the domain part of the address is left off. For example, "mailbox".
SENDER
  This token represents the personal name (or email address) of the person listed in the message's "Sender:" header field.
TO
  This token represents the personal names (or email addresses if the names are unavailable) of the persons specified in the message's "To:" header field.
NEWSANDTO
  This token represents the newsgroups from the message's "Newsgroups:" header field and the personal names (or email addresses if the names are unavailable) of the persons specified in the message's "To:" header field.
TOANDNEWS
  Same as "NEWSANDTO" except in the opposite order.
NEWS
  This token represents the newsgroups from the message's "Newsgroups:" header field.
CC
  This token represents the personal names (or email addresses if the names are unavailable) of the persons specified in the message's "Cc:" header field.
RECIPS
  This token represents the personal names (or email addresses if the names are unavailable) of the persons specified in both the message's "To:" header field and the message's "Cc:" header field.
NEWSANDRECIPS
  This token represents the newsgroups from the message's "Newsgroups:" header field and the personal names (or email addresses if the names are unavailable) of the persons specified in the message's "To:" and "Cc:" header fields.
RECIPSANDNEWS
  Same as "NEWSANDRECIPS" except in the opposite order.
INIT
  This token represents the initials from the personal name of the person specified in the message's "From:" header field. If there is no personal name, it is blank.
DATE
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format MMM DD. For example, "Oct 23". The feature convert-dates-to-localtime, which adjusts for the timezone the message was sent from, may have an affect on the value of this token as well as the values of all of the other DATE or TIME tokens. Some of the DATE and TIME tokens are displayed in a locale-specific way unless the option Disable-Index-Locale-Dates is set.
SMARTDATE
  This token represents the date on which the message was sent, according to the "Date" header field. It is "Today" if the message was sent today, "Yesterday" for yesterday, "Wednesday" if it was last Wednesday, and so on. If the message is from last year and is more than six months old it includes the year, as well. There is no adjustment made for different time zones, so you'll get the day the message was sent according to the time zone the sender was in. See the SMARTDATE alternatives below, as well.
SMARTTIME
  This token represents the most relevant elements of the date on which the message was sent (according to the "Date" header field), in a compact form. If the message was sent today, only the time is used (e.g. "9:22am", "10:07pm"); if it was sent during the past week, the day of the week and the hour are used (e.g. "Wed09am", "Thu10pm"); other dates are given as date, month, and year (e.g. "23Aug00", "9Apr98"). There is no adjustment made for different time zones, so you'll get the day/time the message was sent according to the time zone the sender was in.
SMARTDATETIME
  This is a combination of SMARTDATE and SMARTTIME. It is SMARTDATE unless the SMARTDATE value is "Today", in which case it is SMARTTIME. See the SMARTDATETIME alternatives below, as well.
DATEISO
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format YYYY-MM-DD. For example, "1998-10-23".
SHORTDATEISO
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format YY-MM-DD. For example, "98-10-23".
SHORTDATE1
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format MM/DD/YY. For example, "10/23/98".
SHORTDATE2
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format DD/MM/YY. For example, "23/10/98".
SHORTDATE3
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format DD.MM.YY. For example, "23.10.98".
SHORTDATE4
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format YY.MM.DD. For example, "98.10.23".
LONGDATE
  This token represents the date on which the message was sent, according to the "Date" header field. It has the format MMM DD, YYYY. For example, "Oct 23, 1998".
SMARTDATE alternatives
  There are several versions of SMARTDATE which are all the same except for the way they format dates far in the past. SMARTDATE formats the date using the information from your locale settings to format the date string. It may end up formatting dates so that they look like DATEISO tokens, or SHORTDATE2 tokens, or something else entirely. The feature convert-dates-to-localtime may have an affect on the values of these tokens. If you want more control you may use one of the following.
  SMARTDATE
    If the option Disable-Index-Locale-Dates is not set then this will be locale specific. Control this with the LC_TIME locale setting on a UNIX system. On Windows the Regional Options control panel may be used to set the Short date format. At the programming level, the strftime routine is what Alpine uses to print the date. If the Disable-Index-Locale-Dates option is set then this is equivalent to SMARTDATES1.
  SMARTDATEISO
    DATEISO format. See text above.
  SMARTDATESHORTISO
    SHORTDATEISO format.
  SMARTDATES1
    SHORTDATE1 format.
  SMARTDATES2
    SHORTDATE2 format.
  SMARTDATES3
    SHORTDATE3 format.
  SMARTDATES4
    SHORTDATE4 format.
SMARTDATETIME alternatives
  There are several versions of SMARTDATETIME which are all very similar. The ones which end in 24 use a 24-hour clock for Today's messages instead of a 12-hour clock. The other variation is for the way they format dates far in the past. SMARTDATETIME and SMARTDATETIME24 format the date using the information from your locale settings to format the date string. It may end up formatting dates so that they look like DATEISO tokens, or SHORTDATE2 tokens, or something else entirely. The feature convert-dates-to-localtime may have an affect on the values of these tokens. The possible choices are:
  SMARTDATETIME
    Locale specific. Control this with the LC_TIME locale setting on a UNIX system. On Windows the Regional Options control panel may be used to set the Short date format. At the programming level, the strftime routine is what Alpine uses to print the date.
  SMARTDATETIME
    If the option Disable-Index-Locale-Dates is not set then this will be locale specific. Control this with the LC_TIME locale setting on a UNIX system. On Windows the Regional Options control panel may be used to set the Short date format. At the programming level, the strftime routine is what Alpine uses to print the date. If the Disable-Index-Locale-Dates option is set then this is equivalent to SMARTDATETIMES1.
  SMARTDATETIME24
    Use TIME24 for Today
  SMARTDATETIMEISO
    DATEISO format. See text above.
  SMARTDATETIMEISO24
    Use TIME24 for Today
  SMARTDATETIMESHORTISO
    SHORTDATEISO format.
  SMARTDATETIMESHORTISO24
    Use TIME24 for Today
  SMARTDATETIMES1
    SHORTDATE1 format.
  SMARTDATETIMES124
    Use TIME24 for Today
  SMARTDATETIMES2
    SHORTDATE2 format.
  SMARTDATETIMES224
    Use TIME24 for Today
  SMARTDATETIMES3
    SHORTDATE3 format.
  SMARTDATETIMES324
    Use TIME24 for Today
  SMARTDATETIMES4
    SHORTDATE4 format.
  SMARTDATETIMES424
    Use TIME24 for Today
DAYDATE
  This token represents the date on which the message was sent, according to the "Date" header field. It looks like "Sat, 23 Oct 1998". This token is never converted in any locale-specific way.
PREFDATE
  This token represents the date on which the message was sent, according to the "Date" header field. It is your operating system's idea of the preferred date representation for the current locale. Internally it uses the %x version of the date from the strftime routine.
PREFTIME
  This token represents the time at which the message was sent, according to the "Date" header field. It is the preferred time representation for the current locale. Internally it uses the %X version of the time from the strftime routine.
PREFDATETIME
  This token represents the date and time at which the message was sent, according to the "Date" header field. It is the preferred date and time representation for the current locale. Internally it uses the %c version of the time from the strftime routine.
DAY
  This token represents the day of the month on which the message was sent, according to the "Date" header field. For example, "23" or "9".
DAY2DIGIT
  This token represents the day of the month on which the message was sent, according to the "Date" header field. For example, "23" or "09". It is always 2 digits.
DAYORDINAL
  This token represents the ordinal number which is the day of the month on which the message was sent, according to the "Date" header field. For example, "23rd" or "9th".
DAYOFWEEK
  This token represents the day of the week on which the message was sent, according to the "Date" header field. For example, "Sunday" or "Wednesday".
DAYOFWEEKABBREV
  This token represents the day of the week on which the message was sent, according to the "Date" header field. For example, "Sun" or "Wed".
MONTHABBREV
  This token represents the month the message was sent, according to the "Date" header field. For example, "Oct".
MONTHLONG
  This token represents the month in which the message was sent, according to the "Date" header field. For example, "October".
MONTH
  This token represents the month in which the message was sent, according to the "Date" header field. For example, "10" or "9".
MONTH2DIGIT
  This token represents the month in which the message was sent, according to the "Date" header field. For example, "10" or "09". It is always 2 digits.
YEAR
  This token represents the year the message was sent, according to the "Date" header field. For example, "1998" or "2001".
YEAR2DIGIT
  This token represents the year the message was sent, according to the "Date" header field. For example, "98" or "01". It is always 2 digits.
TIME24
  This token represents the time at which the message was sent, according to the "Date" header field. There is no adjustment made for different time zones, so you'll get the time the message was sent according to the time zone the sender was in. It has the format HH:MM. For example, "17:28".
TIME12
  This token represents the time at which the message was sent, according to the "Date" header field. This time is for a 12 hour clock. It has the format HH:MMpm. For example, "5:28pm" or "11:13am".
TIMEZONE
  This token represents the numeric timezone from the "Date" header field. It has the format [+-]HHMM. For example, "-0800".

### Tokens Available Only for Index-Format

MSGNO
  This token represents the message's current position in the folder which, of course, may change as the folder is sorted or new mail arrives.
STATUS
  This token represents a three character wide field displaying various aspects of the message's state. The first character is either blank, a '*' for message marked Important, or a '+' indicating a message addressed directly to you (as opposed to your having received it via a mailing list, for example). When the feature mark-for-cc is set, if the first character would have been blank then it will instead be a '-' if the message is cc'd to you. The second character is typically blank, though the arrow cursor may occupy it if either the assume-slow-link or the force-arrow-cursor feature is set (or you actually are on a slow link). The third character is either D (Deleted), A (Answered), N (New), or blank.

  If you are using a threaded view of the index and this message is at the top of a collapsed portion of a thread, then this token refers to all of the messages in the collapsed portion of the thread instead of just the top message. The first character will be a '*' if any of the messages in the thread are marked Important, else a '+' if any of the messages are addressed to you, else a '-' if any of the messages are cc'd to you. The third character will be a 'D' if all of the messages in the collapsed thread are marked deleted, an 'A' if all of the messages in the collapsed thread are marked answered, it will be an 'N' if any of the messages are undeleted and unseen, and it will be blank otherwise.

FULLSTATUS
  This token represents a less abbreviated alternative to the "STATUS" token. It is six characters wide. The first character is '+', '-', or blank, the second blank, the third either '*' or blank, the fourth N or blank, the fifth A or blank, and the sixth character is either D or blank.

  If you are using a threaded view of the index and this message is at the top of a collapsed portion of a thread, then this token refers to all of the messages in the collapsed portion of the thread instead of just the top message. The first character is '+', '-', or blank depending on whether any of the messages in the collapsed thread are addressed to you or cc'd to you. The third character will be '*' if any of the messages are marked Important. The fourth character will be 'N' if all of the messages in the thread are New, else 'n' if some of the messages in the thread are New, else blank. The fifth character will be 'A' or 'a' or blank, and the sixth character will be 'D' or 'd' or blank.

IMAPSTATUS
  This token represents an even less abbreviated alternative to the "STATUS" token. It differs from "FULLSTATUS" in only the fourth character which is an 'N' if the message is new to this folder since the last time it was opened and it has not been viewed, an 'R' (Recent) if the message is new to the folder and has been viewed, a 'U' (Unseen) if the message is not new to the folder since it was last opened but has not been viewed, or a blank if the message has been in the folder since it was last opened and has been viewed.

  If you are using a threaded view of the index and this message is at the top of a collapsed portion of a thread, then the fourth character will be 'N' if all of the messages in the thread are unseen and recent; else 'n' if some of the messages in the thread are unseen and recent; else 'U' if all of the messages in the thread are unseen and not recent; else 'u' if some of the messages in the thread are unseen and not recent; else 'R' if all of the messages in the thread are seen and recent; else 'r' if some of the messages in the thread are seen and recent; else blank.

SHORTIMAPSTATUS
  This is the same as the last four of the six characters of IMAPSTATUS, so the '+' To Me information will be missing.
SIZE
  This token represents the total size, in bytes, of the message. If a "K" (Kilobyte) follows the number, the size is approximately 1,000 times that many bytes (rounded to the nearest 1,000). If an "M" (Megabyte) follows the number, the size is approximately 1,000,000 times that many bytes. Commas are not used in this field. This field is seven characters wide, including the enclosing parentheses. Sizes are rounded when "K" or "M" is present. The progression of sizes used looks like:

  `0 1 ... 9999 10K ... 999K 1.0M ... 99.9M 100M ... 2000M`

SIZECOMMA
  This token represents the total size, in bytes, of the message. If a "K" (Kilobyte) follows the number, the size is approximately 1,000 times that many bytes (rounded to the nearest 1,000). If an "M" (Megabyte) follows the number, the size is approximately 1,000,000 times that many bytes. Commas are used if the number shown is 1,000 or greater. The SIZECOMMA field is one character wider than the SIZE field. Sizes are rounded when "K" or "M" is present. The progression of sizes used looks like:

  `0 1 ... 99,999 100K ... 9,999K 10.0M ... 999.9M 1,000M ... 2,000M`

KSIZE
  This token represents the total size of the message, expressed in kilobytes or megabytes, as most appropriate. These are 1,024 byte kilobytes and 1,024 x 1,024 byte megabytes. The progression of sizes used looks like:

  `0K 1K ... 1023K 1.0M ... 99.9M 100M ... 2047M`

SIZENARROW
  This token represents the total size, in bytes, of the message. If a "K" (Kilobyte) follows the number, the size is approximately 1,000 times that many bytes. If an "M" (Megabyte) follows the number, the size is approximately 1,000,000 times that many bytes. If a "G" (Gigabyte) follows the number, the size is approximately 1,000,000,000 times that many bytes. This field uses only five characters of screen width, including the enclosing parentheses. The progression of sizes used looks like:

  `0 1 ... 999 1K ... 99K .1M ... .9M 1M ... 99M .1G ... .9G 1G 2G`

DESCRIPSIZE
  This token is intended to represent a more useful description of the message than just its size, but it isn't very useful at this point. The plus sign in this view means there are attachments. Note that including this token in the "Index-Format" could slow down the display a little while Alpine collects the necessary information.
SUBJKEY
  This token is the same as the SUBJECT token unless keywords are set for the message. In that case, a list of keywords enclosed in braces will be prepended to the subject of the message. Only those keywords that you have defined in your Keywords option in Setup/Config are considered in the list. In other words, keywords that have been set by some other means, perhaps by another email program, won't show up unless included in Keywords. Having this set in the Index-Format will also cause the keywords to be prepended to the subject in the MESSAGE TEXT screen. If you have given a keyword a nickname (keywords), that nickname is displayed instead of the actual keyword. The keyword-surrounding-chars option may be used to modify this token slightly. It is also possible to color keywords in the index using the Setup/Kolor screen.
SUBJKEYINIT
  This token is the same as the SUBJKEY token except that instead of prepending a list of keywords to the subject, a list of first initials of keywords will be prepended instead. For example, if a message has the keywords Work and Now set (or Work and Now are the Alpine nicknames of keywords which are set) then the SUBJKEY token would cause a result like

  `{Work Now} actual subject`

  whereas the SUBJKEYINIT token would give

  `{WN} actual subject`

  Only those keywords that you have defined in your Keywords option in Setup/Config are considered in the list. In other words, keywords that have been set by some other means, perhaps by another email program, won't show up unless included in Keywords. The keyword-surrounding-chars option may be used to modify this token slightly. It is also possible to color keywords in the index using the Setup/Kolor screen.

SUBJECTTEXT
  Same as SUBJECT but if there is room in the Subject field for more text, the opening part of the text of the message is displayed after the subject. The time needed to fetch the text may cause a performance problem which can, of course, be avoided by using the SUBJECT version of the Subject instead. You may color this opening text differently by using the Index Opening Color option available from the Setup Kolor screen. You may adjust the characters that are displayed between the Subject and the opening text with the option Opening-Text-Separator-Chars.
SUBJKEYTEXT
  Same as SUBJKEY but with the opening message text.
SUBJKEYINITTEXT
  Same as SUBJKEYINIT but with the opening message text.
OPENINGTEXT
  This is similar to SUBJECTTEXT. Instead of combining the Subject and the opening text in a single field in the index screen this token allows you to allocate a separate column just for the opening text of the message. The time needed to fetch this text may cause a performance problem. You may color this opening text differently by using the Index Opening Color option available from the Setup Kolor screen.
OPENINGTEXTNQ
  This is very similar to OPENINGTEXT. The NQ stands for No Quotes. The only difference is that quoted text (lines beginning with >) is deleted. For some messages this may be confusing. For example, a message might have a line preceding some quoted text that reads something like "On May 8th person A said." That no longer makes sense after the quoted text is deleted and it will appear that person A said whatever the text after the quote is, even though that is really person B talking.
KEY
  This is a space-delimited list of keywords that are set for the message. Only those keywords that you have defined in your Keywords option in Setup/Config are considered in the list. In other words, keywords that have been set by some other means, perhaps by another email program, won't show up unless included in Keywords. If you have given a keyword a nickname that nickname is displayed instead of the actual keyword. It is also possible to color keywords in the index using the Setup/Kolor screen. This token defaults to an arbitrary width of 5. You should set it to whatever width suits you using something like KEY(17) in the Index-Format.
KEYINIT
  This is a list of keyword initials that are set for the message. If you have given a keyword a nickname the initial of that nickname is displayed instead of the initial of the actual keyword. It is also possible to color keyword initials in the index using the Setup/Kolor screen. This token defaults to an arbitrary width of 2. You should set it to whatever width suits you using something like KEYINIT(3) in the Index-Format.
PRIORITY
  The X-Priority header is a non-standard header that is used in a somewhat standard way by many mail programs. Alpine expects the value of this header to be a digit with a value from 1 to 5, with 1 being the highest priority and 5 the lowest priority. Since this priority is something that the sender sets it is only an indication of the priority that the sender attaches to the mail and it is therefore almost totally unreliable for use as a filtering criterion. This token will display the numeric value of the priority if it is between 1 and 5. It will be suppressed (blank) if the value is 3, which is normal priority. It is also possible to set the color of the PRIORITY field. By default the token is colored the same as the index line it is part of. You may set it to be another color with the Index Priority Colors options available from the Setup Kolor screen.
PRIORITYALPHA
  This is a more verbose interpretation of the X-Priority field. Once again nothing is displayed unless the value of the field is 1, 2, 4, or 5. The values displayed for those values are:

  1 | Highest
  2 | High
  4 | Low
  5 | Lowest

  You may color this token with the Index Priority Colors options.

PRIORITY!
  This is a one character, non-numeric version of the X-Priority field. If the value of the X-Priority header is 1 or 2 an exclamation point is displayed. If the value is 4 or 5 a "v" (think down arrow) is displayed. You may color this token with the Index Priority Colors options.
ATT
  This is a one column wide field which represents the number of attachments a message has. It will be blank if there are no attachments, a single digit for one to nine attachments, or an asterisk for more than nine. Note that including this token in the "Index-Format" could slow down the display a little while Alpine collects the necessary information.
FROMORTO
  This token represents either the personal name (or email address) of the person listed in the message's "From:" header field, or, if that address is yours or one of your alternate addresses, the first person specified in the message's "To:" header field with the prefix "To: " prepended. If the from address is yours and there is also no "To" address, Alpine will use the address on the "Cc" line. If there is no address there, either, Alpine will look for a newsgroup name from the "Newsgroups" header field and put that after the "To: " prefix.
FROMORTONOTNEWS
  This is almost the same as FROMORTO. The difference is that newsgroups aren't considered. When a message is from you, doesn't have a To or Cc, and does have a Newsgroups header; this token will be your name instead of the name of the newsgroup (like it would be with FROMORTO).
TEXT
  This is a different sort of token. It allows you to display a label within each index line. It will be the same fixed text for each line. It is different from all the other tokens in that there is no space column displayed after this token. Instead, it is butted up against the following field. It also has a different syntax. The text to display is given following a colon after the word "TEXT". For example,

  `TEXT:abc=`

  would insert the literal text "abc=" (without the quotes) into the index display line. You must quote the text if it includes space characters, like

  `TEXT:"abc = "`

HEADER
  This allows you to display the text from a particular header line in the message. The syntax for this token is substantially different from all the others in order that you might be able to display a portion of the text following a particular header. The header name you are interested in is given following a colon after the word "HEADER". For example,

  `HEADER:X-Spam`

  would display the text of the X-Spam header, if any. Like for other index tokens a width field may (and probably should) follow this.

  `HEADER:X-Spam(10)`

  displays the first ten characters of the X-Spam header. Unlike other index tokens, the syntax for HEADER is more flexible. An optional second argument comes after a comma inside the parentheses. It specifies the "field" number. By default, the field separator is a space character. No extra space characters are allowed in the argument list.

  `HEADER:X-Spam(10,2)`

  would display the second field, left-justified, in a 10 character wide field. The second field would consist of all the text after the first space up to the next space or the end of the header. The default field number is zero, which stands for the entire line. There is also an optional third argument which is a list of field separators. It defaults to a space character. The example

  `HEADER:X-Spam(10,2,:% )`

  would cause the field separators to be any of colon, percent, or space (there is a space character between the percent and the right parenthesis). The first field runs from the start of the header value up to the first colon, percent, or space; the second goes from there to the next; and so on. In order to use a comma character as a field separator you must escape it by preceding it with a backslash (\). The same is true of the backslash character itself. There is one further optional argument. It is an R or an L to specify right or left adjustment of the text within the field. The default is to left justify, however if you are displaying numbers you might prefer to right justify.

  Here's an example of a SpamAssassin header. The exact look of the header will vary, but if your incoming mail contains headers that look like the following

  `X-Spam-Status: Yes, hits=10.6 tagged_above=-999.0 required=7.0 tests=BAYE...`

  you might want to display the hits value. The first field starts with the Y in Yes. To get what you're interested in you might use "=" and space as the field separators and display the third field, like

  `HEADER:X-Spam-Status(4,3,= )`

  or maybe you would break at the dot instead

  `HEADER:X-Spam-Status(2,2,=.,R)`

  Another example we've seen has headers that look like

  `X-Spam: Gauge=IIIIIII, Probability=7%, Report=...`

  Because there are two equals and a comma before the 7% and a comma after it, the token

  `HEADER:X-Spam-Status(3,4,=\,,R)`

  should display the probability (for example 7% or 83%) right justified in a 3-wide field.

ARROW
  This gives an alternative way to display the current message in the MESSAGE INDEX screen. Usually the current message is indicated by the line being shown in reverse video. Instead, if the ARROW token is included in your Index-Format, the current line will include an "arrow" that looks like

  `->`

  in the ARROW token's field. For all of the non-current messages, the ARROW field will be filled with blanks. If you use the fixed-field width feature the length of the "arrow" may be adjusted. The arrow will be drawn as width-1 dashes followed by a greater than sign. For example, if you use ARROW(3) you will get

  `-->`

  and ARROW(1) will give you just

  `>`

  It is also possible to set the color of the ARROW field. By default (and for non-current messages) the arrow is colored the same as the index line it is part of. You may set it to be another color with the Index Arrow Color option available from the Setup Kolor screen.

SCORE
  This gives the score of each message. This will be six columns wide to accomodate the widest possible score. You will probably want to use the Index-Format fixed-field width feature to limit the width of the field to the widest score that you use (e.g. SCORE(3) if your scores are always between 0 and 999). If you have not defined any score rules the scores will all be zero. If any of your score rules contain AllText or BodyText patterns then including SCORE in the Index-Format may slow down the display of the MESSAGE INDEX screen.

### Tokens Available for all but Index-Format

CURNEWS
  This token represents the current newsgroup if there is one. For example, "comp.mail.pine".
MSGID
  This token represents the message ID of the message. This token does not work with Filter Rule folder names.
CURDATE
  This token represents the current date. It has the format MMM DD. For example, "Oct 23".
CURDATEISO
  This token represents the current date. It has the format YYYY-MM-DD. For example, "1998-10-23".
CURDATEISOS
  This token represents the current date. It has the format YY-MM-DD. For example, "98-10-23".
CURPREFDATE
  This token represents the current date. It is your operating system's idea of the preferred date representation for the current locale. Internally it uses the %x version of the date from the strftime routine.
CURPREFTIME
  This token represents the current time. It is the preferred time representation for the current locale. Internally it uses the %X version of the time from the strftime routine.
CURPREFDATETIME
  This token represents the current date and time. It is the preferred date and time representation for the current locale. Internally it uses the %c version of the time from the strftime routine.
CURTIME24
  This token represents the current time. It has the format HH:MM. For example, "17:28".
CURTIME12
  This token represents the current time. This time is for a 12 hour clock. It has the format HH:MMpm. For example, "5:28pm" or "11:13am".
CURDAY
  This token represents the current day of the month. For example, "23" or "9".
CURDAY2DIGIT
  This token represents the current day of the month. For example, "23" or "09". It is always 2 digits.
CURDAYOFWEEK
  This token represents the current day of the week. For example, "Sunday" or "Wednesday".
CURDAYOFWEEKABBREV
  This token represents the current day of the week. For example, "Sun" or "Wed".
CURMONTH
  This token represents the current month. For example, "10" or "9".
CURMONTH2DIGIT
  This token represents the current month. For example, "10" or "09". It is always 2 digits.
CURMONTHLONG
  This token represents the current month. For example, "October".
CURMONTHABBREV
  This token represents the current month. For example, "Oct".
CURYEAR
  This token represents the current year. For example, "1998" or "2001".
CURYEAR2DIGIT
  This token represents the current year. For example, "98" or "01". It is always 2 digits.
LASTMONTH
  This token represents last month. For example, if this is November (the 11th month), it is equal to "10" or if this is October (the 10th month), it is "9". It is possible that this and the other tokens beginning with LASTMONTH below could be useful when used with a Filtering Rule that has the "Beginning of Month" option set.
LASTMONTH2DIGIT
  This token represents last month. For example, if this is November (the 11th month), it is equal to "10" or if this is October (the 10th month), it is "09". It is always 2 digits.
LASTMONTHLONG
  This token represents last month. For example, if this is November the value is "October".
LASTMONTHABBREV
  This token represents last month. For example, if this is November the value is "Oct".
LASTMONTHYEAR
  This token represents what the year was a month ago. For example, if this is October, 1998, it is "1998". If this is January, 1998, it is "1997".
LASTMONTHYEAR2DIGIT
  This token represents what the year was a month ago. For example, if this is October, 1998, it is "98". If this is January, 1998, it is "97".
LASTYEAR
  This token represents last year. For example, if this is 1998, it equals "1997". It is possible that this could be useful when used with a Filtering Rule that has the "Beginning of Year" option set.
LASTYEAR2DIGIT
  This token represents last year. For example, if this is 1998, it equals "97". It is always 2 digits.
ROLENICK
  This token represents the nickname of the role currently being used. If no role is being used, then no text will be printed for this token. This token does not work with Filter Rule folder names.

### Token Available Only for Reply-Leadin

See the help for the Reply-Leadin option, to see why you might want to use this. Since the Reply-Leadin contains free text this token must be surrounded by underscores when used.

NEWLINE
  This is an end of line marker.

### Token Available Only for Templates and Signatures

CURSORPOS
  This token is different from the others. When it is replaced it is replaced with nothing, but it sets a Alpine internal variable which tells the composer to start with the cursor positioned at the position where this token was. If both the template file and the signature file contain a "CURSORPOS" token, then the position in the template file is used. If there is a template file and neither it nor the signature file contains a "CURSORPOS" token, then the cursor is positioned after the end of the contents of the template file when the composer starts up.

## Conditional Inclusion of Text for Reply-Leadin, Signatures, and Templates

Conditional text inclusion may be used with the Reply-Leadin option, in signature files, and in template files used in roles. It may not be used with the Index-Format option.

There is a limited if-else capability for including text. The if-else condition is based on whether or not a given token would result in replacement text you specify. The syntax of this conditional inclusion is

`_token_(match_this, if_matched [ , if_not_matched ] )`

The left parenthesis must follow the underscore immediately, with no intervening space. It means the token is expanded and the results of that expansion are compared against the "match_this" argument. If there is an exact match, then the "if_matched" text is used as the replacement text. Otherwise, the "if_not_matched" text is used. One of the most useful values for the "match_this" argument is the empty string, "". In that case the expansion is compared against the empty string.

Here's an example to make it clearer. This text could be included in one of your template files:

`_NEWS_("", "I'm replying to email","I'm replying to news")`

If that is included in a template file which you are using while replying to a message (because you chose to use the role it was part of), and that message has a newsgroup header and a newsgroup in that header, then the text

`I'm replying to news`

will be included in the message you are about to compose. On the other hand, if the message you are replying to does not have a newsgroup, then the text

`I'm replying to email`

would be included instead. This would also work in signature files and in the "Reply-Leadin" option. If the "match_this", "if_matched", or "if_not_matched" arguments contain spaces, parentheses, or commas; they have to be quoted with double quotation marks (like in the example above). If you want to include a literal quote in the text you must escape the quote by preceding it with a backslash character. If you want to include a literal backslash character you must escape it by preceding it with another backslash.

The comma followed by "if_not_matched" is optional. If there is no "if_not_matched" present then no text is included if the not_matched case is true. Here's another example:

`_NEWS_("", "", "This msg was seen in group: _NEWS_.")`

Here you can see that tokens may appear in the arguments. The same is true for tokens with the conditional parentheses. They may appear in arguments, though you do have to be careful to get the quoting and escaping of nested double quotes correct. If this was in the signature file being used and you were replying to a message sent to comp.mail.pine the resulting text would be:

`This msg was seen in group: comp.mail.pine.`

If you were replying to a message which wasn't sent to any newsgroup the resulting text would be a single blank line. The reason you'd get a blank line is because the end of the line is outside of the conditional, so is always included. If you wanted to get rid of that blank line you could do so by moving the end of line inside the conditional. In other words, it's ok to have multi-line "if_matched" or "if_not_matched" arguments. The text just continues until the next double quotation, even if it's not on the same line.

Here's one more (contrived) example illustrating a matching argument which is not the empty string.

`_SMARTDATE_("Today", _SMARTDATE_, "On _DATE_") _FROM_ wrote:`

If this was the value of your "Reply-Leadin" option and you were replying to a message which was sent today, then the value of the "Reply-Leadin" would be

`Today Fred Flintstone wrote:`

But if you were replying to a message sent on Oct. 27 (and that wasn't today) you would get

`On Oct 27 Fred Flintstone wrote:`

## Per Server Directory Configuration

This is only available if Alpine was built with LDAP support. If that's the case, there will be a Directory option underneath the Setup command on the Main Menu. Each server that is defined there has several configuration variables which control the behavior when using it.

ldap-server
  This is the name of the host where an LDAP server is running.

  To find out whether your organization has its own LDAP server, contact its computing support staff.

search-base
  This is the search base to be used on this server. It functions as a filter by restricting your searches in the LDAP server database to the specified contents of the specified fields. Without it, searches submitted to this directory server may fail. It might be something like:

            O = <Your Organization Name>, C = US

  or it might be blank. (Some LDAP servers actually ignore anything specified here.)

  If in doubt what parameters you should specify here, contact the maintainers of the LDAP server.

port
  This is the TCP port number to be used with this LDAP server. If you leave this blank port `389` will be used.

nickname
  This is a nickname to be used in displays. If you don't supply a nickname the server name from "ldap-server" will be used instead. This option is strictly for your convenience.

use-implicitly-from-composer
  Set this feature to have lookups done to this server implicitly from the composer. If an address doesn't look like a fully-qualified address, it will be looked up in your address books, and if it doesn't match a nickname there, then it will be looked up on the LDAP servers which have this feature set. The lookups will also be done when using the address completion feature (TAB command) in the composer if any of the serves have this feature set. Also see the LDAP feature lookup-addrbook-contents and the Setup/Config feature ldap-result-to-addrbook-add.

lookup-addrbook-contents
  Normally implicit LDAP lookups from the composer are done only for the strings you type in from the composer screen. In other words, you type in something in the To or CC field and press return, then the string is looked up. First that string is looked up in your address books. If a match is found there, then the results of that match are looked up again. If you place a string in your address book that you want to have looked up on the LDAP directory server, you need to turn on this feature. If you set this feature for a server, you almost always will also want to set the use-implicitly-from-composer feature. An example might serve to best illustrate this feature.

  If an LDAP lookup of "William Clinton" normally returns an entry with an address of pres@whitehouse.gov, then you might put an entry in your address book that looks like:

          Nickname     Address
          bill         "William Clinton"

  Now, when you type "bill" into an address field in the composer Alpine will find the "bill" entry in your address book. It will replace "bill" with "William Clinton". It will then search for an entry with that nickname in your address book and not find one. If this feature is set, Alpine will then attempt to lookup "William Clinton" on the LDAP server and find the entry with address pres@whitehouse.gov.

  A better way to accomplish the same thing is probably to use the feature save-search-criteria-not-result.

save-search-criteria-not-result
  Normally when you save the results of an LDAP directory lookup to your address book the results of the lookup are saved. If this feature is set and the entry being saved was found on this directory server, then the search criteria is saved instead of the results of the search. When this address book entry is used in the future, instead of copying the results from the address book the directory lookup will be done again. This could be useful if the copied result might become stale because the data on the directory server changes (for example, the entry's email address changes). You probably don't want to set this feature if the server is at all slow or unreliable.

  The way this actually works is that instead of saving the email address in your address book, Alpine saves enough information to look up the same directory entry again. In particular, it saves the server name and the distinguished name of the entry. It's possible that the server administrators might change the format of distinguished names on the server, or that the entry might be removed from the server. If Alpine notices this, you will be warned and a backup copy of the email address will be used. You may want to create a new entry in this case, since you will get the annoying warning every time you use the old entry. You may do that by Saving the entry to a new nickname in the same address book. You will be asked whether or not you want to use the backup email address.

  A related feature in the Setup/Config screen is ldap-result-to-addrbook-add.

disable-ad-hoc-space-substitution
  Spaces in your input are normally handled specially. Each space character is replaced by

           * <SPACE>

  in the search query (but not by "* <SPACE> *"). The reason this is done is so the input string

           Greg Donald

  (which is converted to "Greg* Donald") will match the names "Greg Donald", "Gregory Donald", "Greg F. Donald", and "Gregory F Donald"; but it won't match "Greg McDonald". If the "Search-Rule" you were using was "begins-with", then it would also match the name "Greg Donaldson".

  Turning on this feature will disable this substitution.

search-type
  This affects the way that LDAP searches are done. In particular, this tells the server where to look for the string to be matched. If set to "name" then the string that is being searched for will be compared with the string in the "Name" field on the server (technically, it is the "commonname" field on the server). "Surname" means we're looking for a match in the "Surname" field on the server (actually the "sn" field). "Givenname" really is "givenname" and "email" is the electronic mail address (this is actually the field called "mail" or "electronicmail" on the server). The other three types are combinations of the types listed so far. "Name-or-email" means the string should appear in either the "name" field OR the "email" field. Likewise, "surname-or-givenname" means "surname" OR "givenname" and "sur-or-given-or-name-or-email" means the obvious thing.

  This search type is combined with the search rule to form the actual search query.

  The usual default value for this option is "sur-or-given-or-name-or-email". This type of search may be slow on some servers. Try "name-or-email", which is often faster, or just "name" if the performance seems to be a problem.

  Some servers have been configured with different attribute names for these four fields. In other words, instead of using the attribute name "mail" for the email address field, the server might be configured to use something else, for example, "rfc822mail" or "internetemailaddress". Alpine can be configured to use these different attribute names by using the four per-server configuration options:

  - email-attribute

  - name-attribute

  - surname-attribute

  - givenname-attribute

search-rule
  This affects the way that LDAP searches are done. If set to "equals" then only exact matches count. "Contains" means that the string you type in is a substring of what you are matching against. "Begins-with" and "ends-with" mean that the string starts or ends with the string you type in.

  Spaces in your input are normally handled specially, but you can turn that special handling off with the disable-ad-hoc-space-substitution feature.

  The usual default value for this option is begins-with.

email-attribute
  This is the name of the attribute which is searched for when looking for an email address. The default value for this option is "mail" or "electronicmail". If the server you are using uses a different attribute name for the email address, put that attribute name here.

  This will affect the search filter used if your Search-Type is one that contains a search for "email". It will also cause the attribute value matching this attribute name to be used as the email address when you look up an entry from the composer.

name-attribute
  This is the name of the attribute which is searched for when looking for the name of the entry. The default value for this option is "cn", which stands for common name. If the server you are using uses a different attribute name for the name, put that attribute name here. This will affect the search filter used if your Search-Type is one that contains a search for "name".

surname-attribute
  This is the name of the attribute which is searched for when looking for the surname of the entry. The default value for this option is "sn". If the server you are using uses a different attribute name for the surname, put that attribute name here. This will affect the search filter used if your Search-Type is one that contains a search for "surname".

givenname-attribute
  This is the name of the attribute which is searched for when looking for the given name of the entry. The default value for this option is "givenname". If the server you are using uses a different attribute name for the given name, put that attribute name here. This will affect the search filter used if your Search-Type is one that contains a search for "givenname".

timelimit
  This places a limit on the number of seconds the LDAP search will continue. The default is 30 seconds. A value of 0 means no limit. Note that some servers may place limits of their own on searches.

sizelimit
  This places a limit on the number of entries returned by the LDAP server. A value of 0 means no limit. The default is 0. Note that some servers may place limits of their own on searches.

custom-search-filter
  This one is for advanced users only! If you define this, then the search-type and search-rule defined are both ignored. However, the feature disable-ad-hoc-space-substitution is still in effect. That is, the space substitution will take place even in a custom filter unless you disable it.

  If your LDAP service stops working and you suspect it might be because of your custom filter, just delete this filter and try using the search-type and search-rule instead. Another option that sometimes causes trouble is the search-base option.

  This variable may be set to the string representation of an LDAP search filter (see RFC1960). In the places where you want the address string to be substituted in, put a '%s' in this filter string. Here are some examples:

  A "Search-Type" of "name" with "Search-Rule" of "begins-with" is equivalent to the "custom-search-filter"

           (cn=%s*)

  When you try to match against the string "string" the program replaces the "%s" with "string" (without the quotes). You may have multiple "%s"'s and they will all be replaced with the string. There is a limit of 10 "%s"'s.

  A "Search-Type" of "name-or-email" with "Search-Rule" of "contains" is equivalent to

           (|(cn=*%s*)(mail=*%s*))

  If your server uses a different attribute name than Alpine uses by default, (for example, it uses "rfc822mail" instead of "mail"), then you may be able to use one or more of the four attribute configuration options instead of defining a custom filter:

  - email-attribute

  - name-attribute

  - surname-attribute

  - givenname-attribute

## Color Configuration

If the terminal or terminal emulator you are using is capable of using color (see color-style option), or if you are using PC-Alpine, then it is possible to set up Alpine so that various parts of the display will be shown in colors you configure. This is done using the Setup Color screen. The Setup Color screen is divided into five broad sections: Options, General Colors, Index Colors, Header Colors, and Keyword Colors. In addition to these five categories you may also color lines in the MESSAGE INDEX screen by configuring the Index Line Color.

Each color is defined as a foreground color (the color of the actual text) and a background color (the color of the area behind the text).

### Color Options

current-indexline-style
  This option affects the colors used to display the current line in the MESSAGE INDEX screen. If you do not have Index Line Colors defined, then this option will have no effect in the index. Those Rules may be defined by going to the Setup/Rules/Indexcolor screen.

  If the option enable-incoming-folders-checking is turned on and the Incoming Unseen Color is set to something other than the default, then this option also affects the color used to display the current folder in the Incoming FOLDER LIST screen.

  The available options include:

  flip-colors
    This is the default. If an index line is colored because it matches one of your Index Color Rules, then its colors will be reversed when it is the currently highlighted line. For example, if the line is normally red text on a blue background, then when it is the current line it will be drawn as blue text on a red background.

    The rest of the option values all revert to this flip-colors behavior if there is no Reverse Color defined.

  reverse
    With this option the Reverse color is always used to highlight the current line.
  reverse-fg
    The foreground part of the Reverse Color is used to highlight the current line. If this would cause the text to be unreadable (because the foreground and background colors are the same) or if it would cause no change in the color of the index line, then the colors are flipped instead.

    Some people think this works particularly well if you use different background colors to emphasize "interesting" lines, but always with the same Normal foreground color, and you use a different foreground color for the Reverse Color.

  reverse-fg-no-ambiguity
    With the "reverse-fg" rule above, it is possible that the resulting color will be exactly the same as the regular Reverse Color. That can lead to some possible confusion because an "interesting" line which is the current line will be displayed exactly the same as a non-interesting line which is current. You can't tell whether the line is just a regular current line or if it is an "interesting" current line by looking at the color. Setting the option to this value removes that ambiguity. It is the same as the "reverse-fg" setting unless the resulting interesting current line would look just like a non-interesting current line. In that case, the interesting line's colors are simply flipped (like in the default behavior).

    As an alternative way to preserve the line's interestingness in this case, you may find that using both a different foreground and a different background color for the interesting line will help.

  reverse-bg
    The background part of the Reverse Color is used to highlight the current line. If this would cause the text to be unreadable (because the foreground and background colors are the same) or if it would cause no change in the color of the index line, then the colors are flipped instead.

    Some people think this works particularly well if you use different foreground colors to emphasize "interesting" lines, but always with the same Normal background color, and you use a different background color for the Reverse Color.

  reverse-bg-no-ambiguity
    As with the "reverse-fg" case, the "reverse-bg" rule may also result in a color which is exactly the same as the regular Reverse Color. Setting the option to this value removes that ambiguity. It is the same as the "reverse-bg" setting unless the resulting current line has the same color as the Reverse Color. In that case, the interesting line's colors are simply flipped (like in the default behavior).
titlebar-color-style
  This option affects the colors used to display the titlebar (the top line on the screen) when viewing a message.

  The available options include:

  default
    The color of the titlebar will be the color you set for the Title Color. The Title Color may be set by using the
  indexline
    The color of the titlebar will be the same as the color of the index line corresponding to the message being viewed. The rules which determine what color the index line will be may be set up by going to the Setup/Rules/Indexcolor screen. If the index line for a message is not colored explicitly by the Indexcolor rules, then the titlebar will be colored the same as for the "default" option above (which is not the same color that the index line itself will have).
  reverse-indexline
    This is similar to the "indexline" option except the foreground and background colors from the corresponding index line will be reversed. For example, if the index line color is red letters on a white background, then the titlebar will be white letters on a red background. If the index line for a message is not colored explicitly by the Indexcolor rules, then the titlebar will be colored the same as for the "default" option above (which is not the same color that the index line itself will have).

### General Colors

Normal Color
  This is the color which most of the screen is painted in. By default this color is black characters on a white background.

Reverse Color
  The color Alpine uses for reverse video characters. Actually, the name is misleading. This used to be reverse video and so the name remains. It is still used to highlight certain parts of the screen but the color may be set to whatever you'd like.

Title Color
  The color Alpine uses for the titlebar (the top line on the screen). By default, the Title Color is black characters on a yellow background. The actual titlebar color may be different from the Title Color if the option titlebar-color-style is set to some value other than the default. It may also be different if the current folder is closed and the Title Closed Color is set to something different from the Title Color.

Title-closed Color
  The color Alpine uses for the titlebar (the top line on the screen) when the current folder is closed. By default, the Title Color Closed Color is white characters on a red background.

Status Color
  The color Alpine uses for messages written to the status message line near the bottom of the screen. By default, the Status Color is the same as the Reverse Color.

KeyLabel Color
  The color Alpine uses for the labels of the commands in the two-line menu at the bottom of the screen. The label is the long name, for example, "PrevMsg". By default, the KeyLabel Color is the same as the Normal Color.

  WARNING: Some terminal emulators have the property that the screen will scroll down one line whenever a character is written to the character cell in the lower right corner of the screen. Alpine can usually avoid writing a character in that corner of the screen. However, if you have defined a KeyLabel Color then Alpine does have to write a character in that cell in order to color the cell correctly. If you find that your display sometimes scrolls up a line this could be the problem. The most obvious symptom is probably that the titlebar at the top of the screen scrolls off the screen. Try setting KeyLabel Color to Default to see if that fixes the problem.

KeyName Color
  The color Alpine uses for the names of the commands in the two-line menu at the bottom of the screen. The KeyName is the shorter name in the menu. For example, the "W" before the "WhereIs". By default, the KeyName Color is the same as the Normal Color.

Selectable-item Color
  The color Alpine uses for displaying selectable items, such as URLs. By default, the Selectable-item Color is the same as the Normal Color, except it is also Bold.

Meta-message Color
  The color Alpine uses in the MESSAGE TEXT screen for messages to you that aren't part of the message itself. By default, the Meta-Message Color is black characters on a yellow background.

Quote Colors
  The colors Alpine uses for coloring quoted text in the MESSAGE TEXT screen. If a line begins with a > character (or space followed by >) it is considered a quote. That line will be given the Quote1 Color (first level quote). If there is a second level of quoting then the Quote2 Color will be used. Alpine considers there to be a second level of quoting if that first > is followed by another > (or space followed by >). If there are characters other than whitespace and > signs, then it isn't considered another level of quoting. Similarly, if there is a third level of quoting the Quote3 Color will be used. If there are more levels after that the Quote Colors are reused. If you define all three colors then it would repeat like Color1, Color2, Color3, Color1, Color2, Color3, ... If you only define the first two it would be Color1, Color2, Color1, Color2, ... If you define only the Quote1 Color, then the entire quote would be that color regardless of the quoting levels. By default, the Quote1 Color is black characters on a greenish-blue background; the Quote2 Color is black characters on a dull yellow background; and the Quote3 Color is black characters on a green background.

Incoming Unseen Color
  If the option enable-incoming-folders-checking is turned on it is possible to highlight the folders that contain unseen messages by coloring them with this color. By default, this is the same as the Normal Color and no highlighting is done.

  Usually the "current" folder (the folder the cursor is on) is highlighted using reverse video. If the current folder is colored because it contains unseen messages then the color used to show that it is also the current folder is controlled by the current-indexline-style feature at the top of the SETUP COLOR screen.

Signature Color
  The color Alpine uses for coloring the signature in the MESSAGE TEXT screen. According to USENET conventions, the signature is defined as the paragraph following the "sigdashes", that is, the special line consisting of the three characters "-- " (i.e., dash, dash, and space). Alpine allows for one empty line right after the sigdashes to be considered as part of the signature. By default, the Signature Color is blue characters on a white background.

Prompt Color
  The color Alpine uses for confirmation prompts and questions which appear in the status message line near the bottom of the screen. By default, the Prompt Color is the same as the Reverse Color.

### Index Colors

You may add color to the single character symbols which give the status of each message in the MESSAGE INDEX. By default the characters "+", "*", "D", "A", and "N" show up near the left hand side of the screen, depending on whether the message is addressed to you, and whether the message is marked Important, is Deleted, is Answered, or is New. You may set the color of those symbols. By default, all of these symbols are drawn with the same color as the rest of the index line they are a part of.

Besides coloring the message status symbols, you may also color the entire index line. This is done by using the Index Line Color configuration screen. It is also possible to color (keywords in the index using the Setup/Kolor screen (Keyword Colors); the ARROW cursor; the Subject using Index Subject Color; the From using Index From Color; and the Index Opening text.

Index-to-me Symbol Color
  The color used for drawing the "+" symbol which signifies a message is addressed directly to you.

Index-important Symbol Color
  The color used for drawing the "*" symbol which signifies a message has been flagged Important.

Index-deleted Symbol Color
  The color used for drawing the "D" symbol which signifies a message has been marked Deleted.

Index-answered Symbol Color
  The color used for drawing the "A" symbol which signifies a message has been answered.

Index-new Symbol Color
  The color used for drawing the "N" symbol which signifies a message is New.

Index-recent Symbol Color
  The color used for drawing the "R" symbol which signifies a message is Recent (only visible if the "IMAPSTATUS" or "SHORTIMAPSTATUS" token is part of the index-format option).

Index-unseen Symbol Color
  The color used for drawing the "U" symbol which signifies a message is Unseen (only visible if the "IMAPSTATUS" or "SHORTIMAPSTATUS" token is part of the Index-Format option).

Index-priority Symbol Colors
  The colors used for drawing the tokens "PRIORITY", "PRIORITYALPHA", and "PRIORITY!" when these are configured as part of the Index-Format option. You may set the color used to draw these tokens by use of the colors Index High Priority Symbol Color and Index Low Priority Symbol Color. This coloring takes place for all but the current index line, and the Priority Color appears to be in front of any color from an Index Color Rule. If the priority has a value of 1 or 2 the High Priority color will be used, and if the value is 4 or 5 the Low Priority color will be used.

  If you don't set these colors the index line will be colored in the same color as the bulk of the index line.

Index-arrow Symbol Color
  The color used for drawing the "ARROW" token when it is configured as part of the Index-Format option.

Index-subject Symbol Color
  You may set the color used to draw the Subject part of the index line. This coloring takes place for all but the current index line, and the Subject Color appears to be in front of any color from an Index Color Rule.

  If you don't set this color it will be colored in the same color as the bulk of the index line.

Index-from Symbol Color
  You may set the color used to draw the From part of the index line. This coloring takes place for all but the current index line, and the From Color appears to be in front of any color from an Index Color Rule.

  If you don't set this color it will be colored in the same color as the bulk of the index line.

Index-opening Symbol Color
  It is possible to configure the Index-Format option so that it includes the subject followed by the "opening" text of the message if there is enough space. This is done by using one of the tokens SUBJECTTEXT, SUBJKEYTEXT, or SUBJKEYINITTEXT. The color used for drawing this opening text is given by this option. The coloring happens for all but the current index line, and this opening color appears to be in front of any color from an Index Color Rule.

  By default the Index Opening Color is gray characters on a white background.

The default colors for these symbols are:

Index-to-me | black on cyan
Index-important | white on bright red
Index-deleted | same as Normal Color
Index-answered | bright red on yellow
Index-new | white on magenta
Index-recent | same as Normal Color
Index-unseen | same as Normal Color

### Header Colors

You may add color to the header fields in the MESSAGE TEXT screen. The

Header-general Color
  may be used to color all of the headers of the message.

It is also possible to set the colors for specific header fields, for example for the Subject or From fields, using the viewer-hdr-colors option.

For Header Colors, there is an additional line on the configuration screen labeled "Pattern to match". If you leave that blank, then the whole field for that header will always be colored. However, if you give a pattern to match, the coloring will only take place if there is a match for that pattern in the value of the field. For example, if you are working on a color for the Subject header and you fill in a pattern of "important", then only Subjects which contain the word "important" will be colored. For address fields like From or To, a pattern match will cause only the addresses which match the pattern to be colored.

If the pattern you enter is a comma-separated list of patterns, then coloring happens if any of those patterns matches.

### Keyword Colors

Sets the colors Alpine uses for Keyword fields in the MESSAGE INDEX screen. Keywords may be displayed as part of the Subject of a message by using the "SUBJKEY" or "SUBJKEYINIT" tokens in the Index-Format option. Keywords may also be displayed in a column of their own in the MESSAGE INDEX screen by using the "KEY" or "KEYINIT" tokens.

For example, you might have set up a Keyword "Work" using the Keywords option in the Setup/Config screen. You could cause that Keyword to show up as a special color by setting up the Keyword Color using this option, and then including it in the MESSAGE INDEX screen using one of the tokens listed above in the Index-Format.

### Index Line Colors

You may color whole index lines by using roles. This isn't configured in the Setup Colors screen, but is configured in the Setup Rules IndexColor screen.

## Index Line Color Configuration

Index Line Color causes lines in the MESSAGE INDEX screen to be colored. This action is only available if your terminal is capable of displaying color and color display has been enabled with the Color-Style option. (In PC-Alpine, color is always enabled so there is no option to turn on.)

Each rule has a "Pattern", which is used to decide which of the rules is used; and the color which is used if the Pattern matches a particular message.

### Rule Patterns

In order to determine whether or not a message matches a rule the message is compared with the rule's Pattern. These Patterns are the same for use with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules, so are described in only one place, "here".

### Index Line Color

This is the color that index lines are colored when there is a matching Pattern. This colors the whole index line, except possibly the status letters which may be colored separately using the Setup Kolor screen.

## Role Configuration

You may play different roles depending on who you are replying to. For example, if you are replying to a message addressed to help-desk you may be acting as a Help Desk Worker. That role may require that you use a different return address and/or a different signature.

Roles are optional. If you set up roles they work like this: Each role has a set of "Uses", which indicate whether or not a role is eligible to be considered for a particular use; a "Pattern", which is used to decide which of the eligible roles is used; and a set of "Actions", which are taken when that role is used. When you reply to a message, the message you are replying to is compared with the Patterns of the roles marked as eligible for use when replying. The comparisons start with the first eligible role and keep going until there is a match. If a match is found, the matching role's Actions are taken.

It is also possible to set a default role and to change that role during your Alpine session. When you start Alpine no default role will be set. You may set or change the current default role by using the "D" command in the role selection screen. You'll see that screen while composing a message and being asked to select a role. An easy way to get to that screen is to use the Role Command to compose a message. You may find a default role useful if you normally perform the duties of one of your roles for a while, then you switch to another role and stay in the new role for another period of time. It may be easier than using the Role Command to select the role each time you compose a message.

### Role Uses

There are three types of use to be configured; one for Replying, one for Forwarding, and one for Composing. These indicate whether or not you want a role to be considered when you type the Reply, Forward, or Compose commands. (The Role command is an alternate form of the Compose command, and it is not affected by these settings.) Each of these Use types has three possible values. The value "Never" means that the role will never be considered as a candidate for use with the corresponding command. For example, if you set a role's Reply Use to Never, then when you Reply to a message, the role won't even be considered. (That isn't quite true. If the message you are replying to matches some other role which requires confirmation, then there will be a ^T command available which allows you to select a role from all of your roles, not just the reply-eligible roles.)

The options "With confirmation" and "Without confirmation" both mean that you do want to consider this role when using the corresponding command. For either of these settings the role's Pattern will be checked to see if it matches the message. For Reply Use, the message used to compare the Patterns with is the message being replied to. For Forward Use, the message used to compare the Pattern with is the message being forwarded. For Compose Use, there is no message, so the parts of the Pattern which depend on a message (everything other than Current Folder Type) are ignored. In all cases, the Current Folder is checked if defined. If there is a match then this role will either be used without confirmation or will be the default when confirmation is asked for, depending on which of the two options is selected. If confirmation is requested, you will have a chance to choose No Role instead of the offered role, or to change the role to any one of your other roles (with the ^T command).

### Role Patterns

In order to determine whether or not a message matches a role the message is compared with the Role Pattern. These Patterns are the same for use with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules, so are described in only one place, "here".

Since header patterns, AllText patterns, and BodyText patterns which are unset are ignored, a role which has all header patterns unset, the AllText pattern unset, the BodyText pattern unset, the Score Interval unset, and the Current Folder Type set to "Any" may be used as a default role. It should be put last in the list of roles since the matching starts at the beginning and proceeds until one of the roles is a match. If no roles at all match, then Alpine will use its regular methods of defining the role. If you wanted to, you could define a different "default" role for Replying, Forwarding, and Composing by setting the "Use" fields appropriately.

### Role Actions

Once a role match is found, the role's Actions are taken. For each role there are several possible actions that may be defined. They are actions to set the From address, the Reply-To address, the Fcc, the Signature file, and the Template file.

#### Initialize Settings Using Role

This is a power user feature. You will usually want to leave this field empty. The value of this field is the nickname of another one of your roles. The Action values from that other role are used as the initial values of the Action items for this role. If you put something in any of the action fields for this role, that will override whatever was in the corresponding field of the initializer role.

You might use this field if the "Action" part of one of your roles is something you want to use in more than one role. Instead of filling in those action values again for each role, you may give the nickname of the role where the values are filled in. It's just a shortcut way to define Role Actions.

Here's an example to help explain how this works. Suppose you have a role with nickname "role1" and role1 has (among other things)

`Set Reply-To = The Pres <president@example.com>`

set. If in "role2" you set "Initialize settings using role" to "role1", then role2 will inherit the Set Reply-To value from role1 by default (and any of the other inheritable action values that are set). So if role2 had

`Set Reply-To = <No Value Set>`

defined, the Reply-To used with role2 would be "The Pres <president@example.com>" However, if role2 had

`Set Reply-To = VP <vicepresident@example.com>`

defined, then the Reply-To used with role2 would be "VP <vicepresident@example.com>" instead.

If you wish, you may choose a nickname from your list of roles by using the "T" command. If the role you are using to initialize also has a role it initializes from, then that initialization happens first. That is, inheritance works as expected with the grandparent and great-grandparent (and so on) roles having the expected effect.

#### Set From

This field consists of a single address which will be used as the From address on the message you are sending. This should be a fully-qualified address like

`Full Name <user@domain>`

or just

`user@domain`

If this is left blank, then the normal From address will be used.

#### Set Reply-To

The Reply-To address is the address used on the Reply-To line of the message you are sending. You don't need a Reply-To address unless it is different from the From address. This should be a fully-qualified address like

`Full Name <user@domain>`

or just

`user@domain`

If this is left blank, then there won't be a Reply-To address unless you have configured one specially with the customized-hdrs configuration option.

#### Set Other-Hdrs

This field gives you a way to set values for headers besides "From" and "Reply-To". If you want to set either of those, use the specific "Set From" and "Set Reply-To" settings.

This field is similar to the customized-hdrs option. Each header you specify here must include the header tag ("To:", "Approved:", etc.) and may optionally include a value for that header. In order to see these headers when you compose using this role you must use the rich header command. Here's an example which shows how you might set the To address.

`Set Other Hdrs = To: Full Name <user@domain>`

Headers set in this way are different from headers set with the customized-hdrs option in that the value you give for a header here will replace any value that already exists. For example, if you are Replying to a message there will already be at least one address in the To header (the address you are Replying to). However, if you Reply using a role which sets the To header, that role's To header value will be used instead. The customized-hdrs headers are defaults.

Limitation: Because commas are used to separate the list of Other Headers, it is not possible to have the value of a header contain a comma; nor is there currently an "escape" mechanism provided to make this work.

#### Set Fcc

This field consists of a single folder name which will be used in the Fcc field of the message you are sending. You may put anything here that you would normally type into the Fcc field from the composer.

In addition, an fcc of "" (two double quotation marks) means no Fcc.

A blank field here means that Alpine will use its normal rules for deciding the default value of the Fcc field. For many roles, perhaps most, it may make more sense for you to use the other Alpine facilities for setting the Fcc. In particular, if you want the Fcc to depend on who you are sending the message to then the fcc-name-rule is probably more useful. In that case, you would want to leave the Fcc field here blank. However, if you have a role that depends on who the message you are replying to was From, or what address that message was sent to; then it might make sense to set the Fcc for that role here.

#### Set LiteralSig

This field contains the actual text for your signature, as opposed to the name of a file containing your signature. If this is defined it takes precedence over any value set in the Set Signature field.

This is simply a different way to store the signature. The signature is stored inside your Alpine configuration file instead of in a separate signature file. Tokens work the same way they do with Set Signature.

The two character sequence \n (backslash followed by the character n) will be used to signify a line-break in your signature. You don't have to enter the \n, but it will be visible in the CHANGE THIS ROLE RULE window after you are done editing the signature.

#### Set Signature

The Signature is the name of a file to be used as the signature file when this role is being used. If the filename is followed by a vertical bar (|) then instead of reading the contents of the file the file is assumed to be a program which will produce the text to be used on its standard output. The program can't have any arguments and doesn't receive any input from Alpine, but the rest of the processing works as if the contents came from a file.

Signature files may be stored remotely on an IMAP server. In order to do that you just give the file a remote name. This works just like the regular signature-file option which is configured from the Setup/Configuration screen. A remote signature file name might look like:

`{myimaphost.myschool.k12.wa.us}mail/sig3`

or, if you have an SSL-capable version of Alpine, you might try

`{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/sig3`

Once you have named the remote signature file you create its contents by using the "F" "editFile" command when the cursor is on the "Set Signature" line of the role editor.

Besides containing regular text, a signature file may also contain (or a signature program may produce) tokens which are replaced with text which depends on the message you are replying to or forwarding. The tokens all look like _word_ (a word surrounded by underscores). For example, if the token

`_DATE_`

is included in the text of the signature file, then when you reply to or forward a message, the token will be replaced with the actual date the message you are replying to or forwarding was sent.

If you use a role which has a signature file for a plain composition (that is, not a reply or forward) then there is no original message, so any tokens which depend on the message will be replaced with nothing. So if you want a signature file to be useful for new compositions it shouldn't include any of the tokens which depend on the message being replied to or forwarded.

The list of available tokens is here.

Actually, for the adventurous, there is a way to conditionally include text based on whether or not a token would result in specific replacement text. For example, you could include some text based on whether or not the _NEWS_ token would result in any newsgroups if it was used. It's explained in detail here.

In the very unlikely event that you want to include a literal token in a signature file, you must precede it with a backslash character. For example, to include the literal text _DATE_ you must actually use \_DATE_. It is not possible to have a literal backslash followed by an expanded token.

A blank field here means that Alpine will use its normal rules for deciding which file (if any) to use for the signature file.

#### Set Template

A Template is the name of a file to be included in the message when this role is being used. The template file is a file which is included at the top of the message you are composing.

If the filename is followed by a vertical bar (|) then instead of reading the contents of the file the file is assumed to be a program which will produce the text to be used on its standard output. The program can't have any arguments and doesn't receive any input from Alpine, but the rest of the processing works as if the contents came from a file.

Template files may be stored remotely on an IMAP server. In order to do that you just give the file a remote name. This works just like the regular signature-file option which is configured from the Setup/Configuration screen. A remote template file name might look like:

`{myimaphost.myschool.k12.wa.us}mail/templ3`

or, if you have an SSL-capable version of Alpine, you might try

`{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/templ3`

Once you have named the remote template file you create its contents by using the "F" "editFile" command when the cursor is on the "Set Template" line of the role editor.

Besides containing regular text, a template file may also contain (or a template file program may produce) tokens which are replaced with text which depends on the message you are replying to or forwarding. The tokens all look like _word_ (a word surrounded by underscores). For example, if the token

`_DATE_`

is included in the text of the template file, then when you reply to or forward a message, the token will be replaced with the actual date the message you are replying to or forwarding was sent.

If you use a role which has a template file for a plain composition (that is, not a reply or forward) then there is no original message, so any tokens which depend on the message will be replaced with nothing. So if you want a template file to be useful for new compositions it shouldn't include any of the tokens which depend on the message being replied to or forwarded.

The list of available tokens is here.

Actually, for the adventurous, there is a way to conditionally include text based on whether or not a token would result in specific replacement text. For example, you could include some text based on whether or not the _NEWS_ token would result in any newsgroups if it was used. It's explained in detail here.

In the very unlikely event that you want to include a literal token in a template file, you must precede it with a backslash character. For example, to include the literal text _DATE_ you must actually use \_DATE_. It is not possible to have a literal backslash followed by an expanded token.

A blank field here means that Alpine will not use a template file when this role is being used.

#### Use SMTP Server

If this field has a value, then it will be used as the SMTP server to send mail when this role is being used (unless the SMTP server variable is set in the system-wide fixed configuration file). It has the same semantics as the smtp-server variable in the Setup/Config screen. When you postpone the composition this SMTP server list will be saved with the postponed composition and it cannot be changed later. Because of that, you may want to make this a list of SMTP servers with the preferred server at the front of the list and alternate servers later in the list.

If any of the actions are left unset, then the action depends on what is present in the "Initialize settings using role" field. If you've listed the nickname of another one of your roles there, then the corresponding action from that role will be used here. If that action is also blank, or if there is no nickname specified, then Alpine will do whatever it normally does to set these actions. This depends on other configuration options and features you've set.

## Filtering Configuration

The software which actually delivers mail (the stuff that happens before Alpine is involved) for you is in a better position to do mail filtering than Alpine itself. If possible, you may want to look into using that sort of mail filtering to deliver mail to different folders, delete it, or forward it. However, if you'd like Alpine to help with this, Alpine's filtering is for you.

Filtering is a way to automatically move certain messages from one folder to another or to delete messages. It can also be used to set message status bits (Important, Deleted, New, Answered). Alpine doesn't have the ability to forward mail to another address.

Each filtering rule has a "Pattern" and a "Filter Action". When a folder is opened, when new mail arrives in an open folder, or when mail is Expunged from a folder; each message is compared with the Patterns of your filtering rules. The comparisons start with the first rule and keep going until there is a match. If a match is found, the message may be deleted or moved, depending on the setting of the Filter Action. If the message is not deleted, it may have its status altered.

For efficiency, each message is usually only checked once. When new mail arrives, the new messages are checked but not the old. There are some exceptions to this rule. The expunge command will cause all messages to be rechecked, as will editing of the filtering rules.

NOTE: When setting up a Pattern used to delete messages, it is recommended that you test the Pattern first with a "Move" folder specified in case unintended matches occur. Messages that are deleted will be removed from the folder and unrecoverable from within Alpine after the next Expunge command or once the folder being filtered has been closed.

### Filter Patterns

In order to determine whether or not a message matches a filter the message is compared with the Filter's Pattern. These Patterns are the same for use with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules, so are described in only one place, "here".

Since filtering is a potentially destructive action, if you have a filtering Pattern with nothing other than Current Folder Type set, that filtering rule is ignored.

### Filter Actions

Once a filter match is found for a particular message, there are some actions which may be taken. First, the message may have its status changed. This is the same message status that you can manipulate manually using the Flag Command. There are four elements of message status that you can control. You can set or clear the Important status, the New status, the Deleted status, and the Answered status. Of course, if the filter is going to delete the message, then there is no point in setting message status. You may also set or clear user-defined keywords for a message.

Second, the filter may delete or move the message. Deleting the message marks it Deleted and removes it from view. It is effectively gone forever (though it technically is still there until the next expunge command, which may happen implicitly). Moving the message moves it from the open folder into the folder listed on the "Folder List" line of the filter configuration. If you list more than one folder name (separated by commas) then the message will be copied to each of those folders. In any case, if "Delete" or "Move" is set then the message is removed from the current folder. If you just want to set the messages status without deleting it from the folder, then set the filter action to "Just Set Message Status".

(There is no way to do a Copy instead of a Move, due to the difficulties involved in keeping track of whether or not a message has already been copied by a previous Alpine session.)

#### Move-only-if-not-deleted option

If you have specified a Move to Folder to filter messages into, then this option has an effect. If this option is set then messages will only be moved into the specified folder if they aren't already marked deleted. This might be useful if you have more than one Alpine session running simultaneously and you don't want messages to be filtered into a folder more than once. This method is not foolproof. There may be cases where a message gets marked deleted and so it is never filtered into the folder. For example, if you deleted it in another Alpine or another mail program that didn't know about the filtering rule.

This option has no effect if the Filter Action is not set to Move.

#### Dont-quit-even-if-rule-matches option

If this option is set then this is a non-terminating rule. Usually, for each message, Alpine searches through the filter rules until a match is found and then it performs the action associated with that rule. Rules following the match are not considered. If this option is set then the search for matches will continue at the next rule.

If a non-terminating rule matches then the actions associated with that rule, except for any implied deletion of the message, are performed before the match for the next rule is checked. For example, if the non-terminating rule sets the Important status, then that status will be set when the next rule is considered. However, if the non-terminating rule Moves the message, the message will actually be copied instead of copied and deleted so that it is still there for the next rule. A moved message is deleted after all the relevant rules have been checked. The name of the "Move" action is confusing in this case because a single message can be moved to more than one folder. It turns the Move into a Copy instead, but it is still followed by a deletion at the end.

This option may be useful if you want to have a single message filtered to two different folders because it matches two different Patterns. For example, suppose you normally filter messages to a particular mailing list into one folder, and messages addressed directly to you into a second folder. If a message is sent to both you and the list (and you can tell that by looking at the headers of the message) this option may give you a convenient way to capture a copy to each folder. (It may also cause you to capture two copies to each folder, depending on whether your mail system delivers one or two copies of the message to you and on how the list works.)

## Scoring Configuration

Most people will not use scores at all, but if you do use them, here's how they work in Alpine. Using this screen, you may define Scoring rules. The score for a message is calculated by looking at every Score rule defined and adding up the Score Values for the ones which match the message. If there are no matches for a message, it has a score of zero. Message scores may be used a couple of ways in Alpine.

### Sorting by Score

One of the methods you may use to sort message indexes is to sort by score. The scores of all the messages in a folder will be calculated and then the index will be ordered by placing the messages in order of ascending or descending score.

### Scores for use in Patterns

The Patterns used for Roles, Index Line Coloring, and Filtering have a category labeled "Score Interval". When a message is being compared with a Pattern to check for a match, if the Score Interval is set only messages which have a score somewhere in the interval are a match.

### Scoring Rule Patterns

In order to determine whether or not a message matches a scoring rule the message is compared with the rule's Pattern. These Patterns are the same for use with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules, so are described in only one place, "here".

Actually, Scoring rule Patterns are slightly different from the other types of Patterns because Scoring rule Patterns don't contain a Score Interval. In other words, when calculating the score for a message, which is done by looking at the Scoring rule Patterns, scores aren't used.

### Score Value

This is the value that will be added to the score for a message if the rule's Pattern is a match. Each individual Score Value is an integer between -100 and 100, and the values from matching rules are added together to get a message's score. There is also a way to extract the value from a particular header of each message. See the help text for Score Value for further information.

## Other Rules Configuration

Using this screen, you may define configuration Rules which don't fit nicely into the other Rules categories.

### Other Rule Patterns

Other Rules are a little different from the rest of the Rules because they depend only on the current folder, and not on a particular message. In order to determine whether or not a rule's actions should be applied the current folder is compared with the rule's Pattern, which consists of only the Current Folder Type. Current Folder Type works the same for Other Rules as it does for Roles, Filtering, Index Coloring, and Scoring. Keep in mind that the only part of the Pattern which applies to Other Rules is the Current Folder Type when looking at the description of Patterns given "here".

### Other Rule Actions

Once a pattern match is found, the rule's Actions are taken. Neither of the following two rule's depends on a message for its match. That means that all the parts of the Pattern which depend on matching an attribute of a message are ignored. So the only part of the Pattern that matters for these Actions is the Current Folder Type.

#### Set Sort Order When you enter a new folder, these rules will be checked to see if you have set a sort order which is different from your default sort order. The default is set in the Setup/Config screen with the Sort-Key option. If the Sort Order action is set, then the folder will be displayed sorted in that sort order instead of in the default order.

A possible point of confusion arises when you change the configuration of the Sort Order for the currently open folder. The folder will normally be re-sorted when you go back to viewing the index. However, if you have manually sorted the folder with the Sort command, it will not be re-sorted.

#### Set Index Format When you enter a new folder, these rules will be checked to see if you have set an Index Format which is different from your default Index Format, which is set with the Index-Format option. If so, the index will be displayed with this format instead of the default.

#### Set Startup Rule

When you enter a new folder, these rules will be checked to see if you have set a startup rule which is different from the default startup rule. The default for incoming folders is set in the Setup/Config screen with the "incoming-startup-rule" option. The default for folders other than INBOX that are not part of your incoming collection (see enable-incoming-folders feature) is to start with the last message in the folder. If the Startup Rule is set to something other than "default", then the rule will determine which message will be the current message when the folder is first opened.

The various startup rule possibilities work the same here as they do in the incoming collection, except that the folder can be any specific folder or any folder type.

## Search Rules Configuration

One of the commands that becomes available when that feature is turned on is the "; Select" command, which is used in the MESSAGE INDEX screen to select a set of messages. One way of selecting messages is to use a Rule. All of the messages which match (or don't match if you wish) a Rule's Pattern will be selected.

Any of your Rules may be used for this purpose. You might already have Rules set up for filtering, index line color, scores, or roles; and you may use any of those Rules with the Select command. However, you might find it more convenient to set up a separate set of Rules just for this purpose without having to worry about what other effects they may cause. That is the purpose of these Select Rules.

### Rule Patterns

In order to determine whether or not a message is selected by a rule the message is compared with the rule's Pattern. These Patterns are the same for use with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules, so are described in only one place, "here".

There is no action associated with these Search Rules. Only their Patterns are used.

## Patterns

Patterns are used with Roles, Filtering, Index Coloring, Scoring, Other Rules, and Search Rules. Patterns are compared with a message to see if there is a match. For Filtering, the messages being checked are all the messages in the folder, one at a time. For Index Line Coloring, each message that is visible on the screen is checked for matches with the Index Coloring Patterns. Roles are used with the Reply, Forward, and Compose commands. For Reply, the message used to compare the Pattern with is the message being replied to; for Forward, the message used to compare the Pattern with is the message being forwarded; and for Compose, there is no message, so the parts of the Pattern which depend on a message (everything other than Current Folder Type and the Beginning of Month and Year) are not used. Only the Current Folder Type matters for Compose (plus the Beginning of Month or Year, which you wouldn't usually use for a Role). For Scoring, the message being scored is compared with all of the Score Patterns, and the Score Values from the ones that match are added together to get the message's score. For Other Rules, there is no message. Only the Current Folder Type is checked for Other Rules.

Each Pattern has several possible parts, all of which are optional. In order for there to be a match, ALL of the defined parts of the Pattern must match the message. If a part is not defined it is considered a match. For example, if the To pattern is not defined it will be displayed as

To pattern = <No Value Set>

That is considered a match because it is not defined. This means that the Pattern with nothing defined is a match if the Current Folder Type matches, but there is an exception. Because filtering is a potentially destructive action, filtering Patterns with nothing other than Current Folder Type defined are ignored. If you really want a filtering Pattern to match all messages (subject to Current Folder Type) the best way to do it is to define a Score interval which includes all possible scores. This would be the score interval `(-INF,INF)`. This can be used even if you haven't defined any rules to Set Scores.

There are six predefined header patterns called the To, From, Sender, Cc, News, and Subject patterns. Besides those six predefined header patterns, you may add additional header patterns with header fieldnames of your choosing. You add an extra header pattern by placing the cursor on one of the patterns while in the role editor and using the "eXtraHdr" command. The Recip pattern is a header pattern which stands for Recipient (To OR Cc) and the Partic pattern is a header pattern which stands for Participant (From OR To OR Cc). (Defining the Recip pattern does not have the same effect as defining both the To and Cc patterns. Recip is To OR Cc, not To AND Cc.) Similar to the header patterns are the AllText pattern and the BodyText pattern. Instead of comparing this pattern's text against only the contents of a particular header field, the text for the AllText pattern is compared with text anywhere in the message's header or body, and the text for the BodyText pattern is compared with text anywhere in the message's body.

Any of the header patterns, the AllText pattern, or the BodyText pattern may be negated with the "!" "toggle NOT" command. You can tell that NOT has been turned on by looking for the character "!" at the beginning of the pattern line. When the "!" is present, it reverses the meaning of the match. That is, if the pattern matches then it is considered to NOT be a match, and if it does not match it is considered to be a match.

Don't make the mistake of putting the "!" in the data field for a pattern. For example, if you type the characters "!urgent" into the Subject pattern, the pattern will look like:

     Subject pattern = !urgent

This means you want to match the 7 character sequence "!urgent". In order to match messages which do not have "urgent" in their Subject field, first type the characters "urgent" followed by carriage return for the value of the Subject pattern, then negate it by typing the "!" command. It should look like

     ! Subject pattern = urgent

The contents of each of these header patterns (or the AllText or BodyText patterns) may be a complete email address, part of an address, or a random set of characters to match against. It may also be a list of such patterns, which means you are looking for a match against the first pattern in the list OR the second pattern OR the third and so on. For example, a Subject pattern equal to

     Subject pattern = urgent
                       emergency
                       alert

would match all messages with a subject which contained at least one of those words. It would also match subjects containing the words "alerts" or "Urgently".

The same example with "NOT" turned on would be

     ! Subject pattern = urgent
                         emergency
                         alert

which would match all messages with a subject which did NOT contain any of those words. You can use the "Add Value" command to add new words to the list, or you can enter them as a comma-separated list.

(It is not possible to specify two patterns which must BOTH be present for a match. It is only possible to specify that EITHER pattern1 OR pattern2 must be present, and that is exactly what using a list does.)

The "Current Folder Type" and the "Score Interval" are also part of the Pattern, although the "Score Interval" is not used when checking for matches for Scoring. There are five similar settings which relate to the status of the message. These settings rely on the message being New or not, Deleted or not, Answered or not, Important or not, and Recent or not. There are also some other miscellaneous settings. The first is the Age of the message in days. Another is the Size of the message in bytes. The third is a setting which detects whether or not the Subject of a message contains raw 8-bit characters (unencoded characters with the most significant bit set). There is a setting which detects whether or not this is the first time Alpine has been run this month (doesn't depend on individual messages), and another which detects whether or not this is the first time Alpine has been run this year. Other parts of the Pattern detect whether or not the From address of a message appears in your address book, whether or not certain keywords are set for a message, and whether or not certain character sets are used in a message.

### Parts of a Pattern

#### Header patterns

A header pattern is simply text which is searched for in the corresponding header field. For example, if a Pattern has a From header pattern with the value "@company.com", then only messages which have a From header which contains the text "@company.com" will be possible matches. Matches don't have to be exact. For example, if the relevant field of a message contains the text "mailbox@domain" somewhere in it, then header patterns of "box", or "x@d", or "mailbox@domain" are all matches.

All parts of the Pattern must match so, for example, if a message matches a defined From pattern, it still must be checked against the other parts of the Pattern which have been defined. The To header pattern is a slightly special case. If the message being checked has a Resent-To header and the feature Use-Resent-To-in-Rules is turned on, the addresses there are used in place of the addresses in the To header. This is only true for the To header. Resent-cc and Resent-From headers are never used unless you add them with the eXtraHdrs command.

The meaning of a header pattern may be negated with the "!" "toggle NOT" command. You can tell that NOT has been turned on by looking for the character "!" at the beginning of the pattern line. It would look something like

     ! From pattern = susan@example.com

When the "!" is present, it reverses the meaning of the match.

If you want to check for the presence of a header field but don't care about its value, then the empty pattern which you get by entering a pair of double quotes ("") should match any message which has the corresponding header field.

#### AllText patterns

AllText patterns are just like header patterns except that the text is searched for anywhere in the message's headers or body, not just in the contents of a particular header field.

#### BodyText patterns BodyText patterns are just like header patterns except that the text is searched for anywhere in the message's body, not just in the contents of a particular header field.

If there is more than one header pattern or AllText pattern or BodyText pattern for which you want to take the same action there is a shorthand notation which may be used. Any of these patterns may be a list of patterns instead of just a single pattern. If any one of the patterns in the list matches the message then it is considered a match. For example, if "company1" and "company2" both required you to use the same role when replying to messages, you might have a To pattern which looks like

     To pattern = company1.com
                  company2.com

This means that if the mail you are replying to was addressed to either "anything@company1.com" or "anything@company2.com", then this Pattern is a match and the same actions will be taken.

The meaning of an AllText or BodyText pattern may be negated with the "!" "toggle NOT" command. You can tell that NOT has been turned on by looking for the character "!" at the beginning of the pattern line. When the "!" is present, it reverses the meaning of the match.

A technicality: Since comma is the character used to separate multiple values in any of the fields which may have multiple values (such as header patterns, AllText patterns, BodyText patterns, keywords, folder lists, and so on), you must escape comma with a backslash (\) if you want to include a literal comma in one of those fields. In other words, if you type a backslash followed by a comma it will be interpreted as a comma by Alpine, instead of as a separator between pattern values. All other backslashes (those not followed by a comma) are literal backslashes and should not be escaped. It's unlikely you'll ever need to enter a literal comma or backslash in any of the patterns.

#### Current Folder Type

The "Current Folder Type" may be set to one of four different values: "Any", "News", "Email", or "Specific". If the value is set to "News", then the Pattern will only match if the currently open folder is a newsgroup. The value "Email" only matches if the current folder is not news and the value "Any" causes any folder to match. If the value of "Current Folder Type" is set to "Specific", then you must fill in a value for "Folder", which is on the line below the "Specific" line. In this case you will only get a match if the currently open folder is the specific folder you list. You may give a list of folders instead of just a single folder name, in which case the Pattern will match if the open folder is any one of the folders in the list. The name of each folder in the list may be either "INBOX", the technical specification of the folder (like what appears in your configuration file) or, if the folder is one of your incoming folders, it may be the nickname you've given the folder. Here are some samples of specific folder names:

`{monet.art.example.com}mail/art-class`

`{news.example.com/nntp}#news.comp.mail.pine`

`mail/local-folder`

The easiest way to fill in the "Folder" field is to use the "T" command which is available when the "Folder" line is hilighted, or to use the "Take" command with the configuration feature "enable-rules-under-take" turned on.

When reading a newsgroup, there may be a performance penalty incurred when collecting the information necessary to check whether or not a Pattern matches a message. For this reason, the default Current Folder Type is set to "Email". If you have Patterns with a Current Folder Type of either "Any" or "News" and those Patterns are used for Index Line Coloring or Scoring, you may experience slower screen redrawing in the MESSAGE INDEX screen when in a newsgroup.

#### Age Interval

The "Age Interval" may be set to an interval of message ages which should be considered a match. Like the other parts of the Pattern, if it is unset it will be ignored. The Age Interval looks like

`(min_age,max_age)`

where "min_age" and "max_age" are integers greater than or equal to zero. The special value "INF" may be used for the max value. It represents infinity.

Actually, this option may be defined as a list of intervals instead of just a single interval. The list is separated by commas. It can look like

`(min_age1,max_age1),(min_age2,max_age2),...`

When there is an Age Interval defined, it is a match if the age, in days, of the message is contained in any of the intervals. The intervals include both endpoints.

Even though this option is called Age, it isn't actually the age of the message. Instead, it is how many days ago the message arrived in one of your folders. If the current time is a little past midnight, then a message that arrived just before midnight arrived yesterday, even though the message is only a few minutes old. By default, the date being used is not the date in the Date header of the message. It is the date that the message arrived in one of your folders. When you Save a message from one folder to another that arrival date is preserved. If you would like to use the date in the Date header that is possible. Turn on the option use-date-header-for-age near the bottom of the rule definition.

A value of 0 is today, 1 is yesterday, 2 is the day before yesterday, and so on.

#### Size Interval The "Size Interval" may be set to an interval of message sizes which should be considered a match. Like the other parts of the Pattern, if it is unset it will be ignored. The Size Interval looks like

`(min_size,max_size)`

where "min_size" and "max_size" are integers greater than or equal to zero. The special value "INF" may be used for the max value. It represents infinity.

Actually, this option may be defined as a list of intervals instead of just a single interval. The list is separated by commas. It can look like

`(min_size1,max_size1),(min_size2,max_size2),...`

When there is a Size Interval defined, it is a match if the size, in bytes, of the message is contained in any of the intervals. The intervals include both endpoints.

#### Score Interval

The "Score Interval" may be set to an interval of message scores which should be considered a match. Like the other parts of the Pattern, if it is unset it will be ignored. The Score Interval looks like

`(min_score,max_score)`

where "min_score" and "max_score" are integers between -32000 and 32000. The special values "-INF" and "INF" may be used for the min and max values to represent negative and positive infinity.

Actually, a list of intervals may be used if you wish. A list would look like

`(min_score1,max_score1),(min_score2,max_score2),...`

When there is a Score Interval defined, it is a match if the score for the message is contained in any of the intervals in the list. The intervals include the endpoints. The score for a message is calculated by looking at every Score rule defined and adding up the Score Values for the ones which match the message. When deciding whether or not a Pattern matches a message for purposes of calculating the score, the Score Interval is ignored.

#### Message Status

There are five separate message status settings. By default, all five are set to the value "Don't care", which will match any message. The value "Yes" means that the particular status must be true for a match, and the value "No" means that the particular status must not be true for a match. For example, one of the five Message Status settings is whether a message is marked Important or not. A "Yes" means that the message must be Important to be considered a match and "No" means that the message must not be Important to be considered a match. The same is true of the other four message status settings which depend on whether or not the message is New; whether the message has been Answered or not; whether the message has been Deleted or not, and whether the message is Recent or not.

The nomenclature for New and Recent is a bit confusing:

New means that the message is Unseen. It could have been in your mailbox for a long time but if you haven't looked at it, it is still considered New. That matches the default Alpine index display that shows an N for such a message.

Recent means that the message was added to this folder since the last time you opened the folder. Alpine also shows an N by default for these types of messages. If you were to run two copies of Alpine that opened a folder one right after the other, a message would only show up as Recent in (at most) the first Alpine session.

#### Message Keywords

Keywords are similar to Message Status, but they are chosen by the user. Provided the mail server allows for it, you may add a set of possible keywords to a folder and then you may set those keywords or not for each message in the folder. The syntax of this part of the Pattern is similar to the header patterns. It is a list of keywords. The Keyword part of the Pattern is a match if the message has any of the keywords in the list set. Like other parts of the Pattern, if this is unset it will be ignored.

#### Message Character Set

A message may use one or more character sets. This part of the Pattern matches messages which make use of one or more of the character sets specified in the pattern. It will be considered a match if a message uses any of the character sets in the list you give here. The syntax of this part of the Pattern is similar to the header patterns and the Message Keywords pattern. It is a list of character sets.

Besides actual character set names (for example, ISO-8859-7, KOI8-R, or GB2312) you may also use some shorthand names that Alpine provides. These names are more understandable shorthand names for sets of character set names. Two examples are "Cyrillic" and "Greek". Selecting one of these shorthand names is equivalent to selecting all of the character sets that make up the set. You can see all of these shorthand names and the lists of character sets they stand for by typing the "T" command with the Character Set pattern highlighted. The Character Set part of the Pattern is a match if the message uses any of the character sets in the list. Like other parts of the Pattern, if this is unset it will be ignored.

#### Raw 8-bit in Subject

It seems that lots of unwanted email contains unencoded 8-bit characters in the Subject. Normally, characters with the 8th bit set are not allowed in the Subject header unless they are MIME-encoded. This option gives you a way to match messages which have Subjects which contain unencoded 8-bit characters. Setting this option will affect performance in large folders because the subject of each message in the folder has to be checked.

#### Beginning of Month

This option gives you a way to take some action once per month. The value "Yes" means that this must be the first time Alpine has been run this month in order to count as a match,

#### Beginning of Year

This option gives you a way to take some action once per year. The value "Yes" means that this must be the first time Alpine has been run this year in order to count as a match,

#### From or Reply-To address in Address Books

This option gives you a way to match messages which have a From or a Reply-To address which is in one of your address books. Only the simple entries in your address books are searched. Address book distribution lists are ignored! Setting this option will affect performance in large folders because the From and Reply-To of each message in the folder have to be checked.

#### Categorizer Command

This is a command that is run with its standard input set to the message being checked and its standard output discarded. The full directory path should be specified. The command will be run and then its exit status will be checked against the Exit Status Interval, which defaults to just the value zero. If the exit status of the command falls in the interval, it is considered a match, otherwise it is not a match.

This option may actually be a list of commands. The first one that exists and is executable is used. That makes it possible to use the same configuration with Unix Alpine and PC-Alpine.

If none of the commands in the list exists and is executable then the rule is not a match. If it is possible that the command may not exist, you should be careful to structure your rules so that nothing destructive happens when the command does not exist. For example, you might have a filter that filters away spam when there is a match but does nothing when there is not a match. That would continue to work correctly if the command didn't exist. However, if you have a filter which filters away spam when there is not a match and keeps it when there is a match, that would filter everything if the categorizer command didn't exist.

### Help Configuring Pattern Fields

Nickname
  This is a nickname to help you. You should have a different nickname for each role you define. The nickname will be used in the SETUP ROLE RULES screen to allow you to pick a role to edit. It will also be used when you send a message to let you know you are sending with a different role than you use by default, and it will be useful for choosing a role when composing with the Role command or when composing with one of the Role Uses set to With Confirmation. This field is not used in the outgoing message.

Comment
  This is a comment to help you. This comment does not play any functional role, it is simply an optional comment to help you remember what the rule is for.

To pattern
  If this pattern is non-blank, then for this role to be considered a match, at least one of the recipients from the To line of the message being replied to or forwarded must match this pattern. In the case of the Compose command, this pattern and the other header patterns are ignored. If this pattern is a list of patterns, then at least one of the recipients must match at least one of the patterns. (Any other non-blank parts of the Pattern must match, too.) If the message being replied to or forwarded has a Resent-To header line, then that is used in place of the To line. (Note that this special Resent rule only applies to the To header. The Resent-From, Resent-Subject, and so on are not consulted.)

  It is possible to add a NOT to the To Pattern meaning with the "!" "toggle NOT" command. This changes the meaning of the To pattern so that it has the opposite meaning. It will be considered a match if there are no matches between the addresses in the To: line and the list of To patterns.

  Don't make the mistake of putting the "!" in the data field for the pattern. For example, if you type the characters "!frizzle" into the To pattern, the pattern will look like:

       To pattern = !frizzle

  This means you want to match the 8 character sequence "!frizzle". In order to match messages which do not have "frizzle" in their To field, first type the characters "frizzle" followed by carriage return for the value of the To pattern, then negate it by typing the "!" command. It should end up looking like

       ! To pattern = frizzle

From pattern
  This is just like the To pattern except that it is compared with the address from the From header of the message being replied to or forwarded instead of the addresses from the To header.

Sender pattern
  This is just like the To pattern except that it is compared with the address from the Sender header of the message being replied to or forwarded instead of the addresses from the To header. If there is no Sender header, then the From header is used instead.

Cc pattern
  This is just like the To pattern except that it is compared with the address from the CC header of the message being replied to or forwarded instead of the addresses from the To header.

News pattern
  If this pattern is non-blank, then for this role to be considered a match, at least one of the newsgroups from the Newsgroups line of the message must match this pattern. If this pattern is a list of patterns, then at least one of the newsgroups must match at least one of the patterns. (Any other non-blank parts of the Pattern must match, too.)

Subject pattern
  This is similar to the other header patterns. It is compared with the contents from the Subject of the message being replied to or forwarded.

  If you enter non-ascii characters in this field then the search will be done using the character set you have defined with the Character-Set configuration variable. (The truly sophisticated may use an alternate character set for a search by entering the MIME encoding of the header string here.)

Extra header patterns
  There isn't actually a field called Extra header patterns, but you may add extra header patterns by moving the cursor to one of the header patterns and using the "eXtraHdr" command to add a new header pattern. You would do this if the six predefined header patterns don't cover the header you want to use for pattern matching. Once you've added an extra header pattern, you use it just like the Subject pattern. Of course, it is compared with the contents from the particular header field of the message being replied to or forwarded rather than the contents from the subject field. To remove an extra header pattern from a role, use the "RemoveHdr" command on the highlighted extra header.

  If you enter non-ascii characters in this field then the search will be done using the character set you have defined with the Character-Set configuration variable. (The truly sophisticated may use an alternate character set for a search by entering the MIME encoding of the header string here.)

Recipient pattern
  This is just like the To pattern except that it is compared with the addresses from both the To header and the Cc header instead of just the addresses from the To header. It's equivalent to having two different rules; one with a To pattern and the other with the same Cc pattern.

Participant pattern
  This is just like the To pattern except that it is compared with the addresses from the To header, the Cc header, and the From header instead of just the addresses from the To header. It's equivalent to having three different rules; one with a To pattern, another with the same Cc pattern, and another with the same From pattern.

AllText pattern
  This is similar to the header patterns. Instead of comparing with text in a particular header field it is compared with all of the text in the message header and body.

  If you enter non-ascii characters in this field then the search will be done using the character set you have defined with the Character-Set configuration variable. (The truly sophisticated may use an alternate character set for a search by entering the MIME encoding of the header string here.)

BodyText pattern
  Just like AllText, except it is compared only with the body of the message, not the body and header.

  If you enter non-ascii characters in this field then the search will be done using the character set you have defined with the Character-Set configuration variable. (The truly sophisticated may use an alternate character set for a search by entering the MIME encoding of the header string here.)

Age Interval
  The Age Interval, if defined, is part of the Pattern. If you use this, it should be set to something like:

  `(min_age,max_age)`

  where "min_age" and "max_age" are non-negative integers. The special value "INF" may be used for the max value. It represents infinity.

  In rare cases it may be useful to use the more general form of the value, which is a comma-separated list of intervals. It would look something like:

  `(min_age1,max_age1),(min_age2,max_age2),...`

  When there is an Age Interval defined, it is a match if the age, in days, of the message is contained in the interval. The interval includes both endpoints. If the option is set to a list of intervals then it is a match if the age of the message is contained in any of the intervals.

  Even though this option is called Age, it isn't actually the age of the message. Instead, it is how many days ago the message arrived in one of your folders. If the current time is a little past midnight, then a message that arrived just before midnight arrived yesterday, even though the message is only a few minutes old. By default, the date being used is not the date in the Date header of the message. It is the date that the message arrived in one of your folders. When you Save a message from one folder to another that arrival date is preserved. If you would like to use the date in the Date header that is possible. Turn on the option use-date-header-for-age near the bottom of the rule definition.

  A value of 0 is today, 1 is yesterday, 2 is the day before yesterday, and so on. The age interval

  `(2,2)`

  matches all messages that arrived on the day before yesterday. The interval

  `(180,INF)`

  matches all messages that arrived at least 180 days before today. The interval

  `(0,1)`

  matches all messages that arrived today or yesterday.

Score Interval
  The Score Interval, if defined, is part of the Pattern. If you use this, it should be set to something like:

  `(min_score,max_score)`

  where "min_score" and "max_score" are integers between -32000 and 32000. The special values "-INF" and "INF" can be used for the min and max values. These represent negative and positive infinity.

  Actually, the value may be a list of intervals rather than just a single interval if that is useful. The elements of the list are separated by commas like:

  `(min_score1,max_score1),(min_score2,max_score2),...`

  When there is a Score Interval defined, it is a match if the score for the message is contained in any of the intervals. The intervals include both endpoints. The score for a message is calculated by looking at every scoring rule defined and adding up the Score Values for the rules which match the message.

Keyword pattern
  A folder may have user-defined keywords. These are similar to the Important flag which the user may set using the Flag command. The difference is that the Important flag is always present for each folder. User-defined keywords are picked by the user. You may add new keywords by defining them in the Keywords option in the Setup/Config screen. After you have added a potential keyword with the Keywords option, the Flag command may be used to set or clear the keyword on individual messages. If you have given a keyword a nickname when configuring it, that nickname may be used instead of the actual keyword.

  When filling in a value for this field, it may be easiest to use the "T" command, which presents you with a list of the keywords you have defined to choose from.

  This part of the Pattern matches messages with certain keywords set. It will be considered a match if a message has any of the keywords in the list set.

  It is possible to add a NOT to the Keyword Pattern meaning with the "!" "toggle NOT" command. This changes the meaning of the Keyword pattern so that it has the opposite meaning. It will be considered a match if none of the keywords in the list are set for a message.

  Don't make the mistake of putting the "!" in the data field for the pattern. For example, if you type the characters "!frizzle" into the Keyword pattern, the pattern will look like:

       Keyword pattern = !frizzle

  This means you want to match the 8 character sequence "!frizzle". In order to match messages which do not have the keyword "frizzle" set, first type the characters "frizzle" followed by carriage return for the value of the Keyword pattern, then negate it by typing the "!" command. It should end up looking like

       ! Keyword pattern = frizzle

Character Set pattern
  A message may use one or more character sets. This part of the Pattern matches messages which make use of certain specified character sets. It will be considered a match if a message uses any of the character sets in the list you give here.

  When filling in a value for this field, you may use the "T" command, which presents you with a large list of possible character sets to choose from. You may also just type in the name of a character set, and it need not be one that Alpine knows about.

  Besides actual character set names (for example, ISO-8859-7, KOI8-R, or GB2312) you may also use some shorthand names that Alpine provides. These names are more understandable shorthand names for sets of character set names. Two examples are "Cyrillic" and "Greek". Selecting one of these shorthand names is equivalent to selecting all of the character sets that make up the set. You can see all of these shorthand names and the lists of character sets they stand for by typing the "T" command.

  For the purposes of this Pattern, Alpine will search through a message for all of the text parts and collect the character sets declared for each part. It will also look in the Subject line for a character set used there. Alpine does not actually look at the text of the message or the text of the Subject to determine if a declared character set is actually used, it looks only at the declarations themselves in the MIME part headers and in the Subject.

  It is possible to add a NOT to the Character Set Pattern meaning with the "!" "toggle NOT" command. This changes the meaning of the Character Set pattern so that it has the opposite meaning. It will be considered a match if none of the character sets in the list are used in a message.

  Don't make the mistake of putting the "!" in the data field for the pattern. For example, if you type the characters "!GB2312" into the Character Set pattern, the pattern will look like:

       Charset pattern = !GB2312

  This means you want to match the 7 character sequence "!GB2312". In order to match messages which do not have the character set "GB2312" set, first type the characters "GB2312" followed by carriage return for the value of the Character Set pattern, then negate it by typing the "!" command. It should end up looking like

       ! Charset pattern = GB2312

  A technicality: Since comma is the character used to separate multiple values in a pattern field, you have to escape comma with a backslash (\) if you want to include a literal comma in the field. In other words, if you type a backslash followed by a comma it will be interpreted as a comma by Alpine, instead of as a separator between pattern values. All other backslashes are literal backslashes and should not be escaped.

Current Folder Type
  The Current Folder Type is part of the Pattern. It refers to the type of the currently open folder, which is the folder you were last looking at from the MESSAGE INDEX or MESSAGE TEXT screen. In order for a pattern to be considered a match, the current folder must be of the type you set here. The three types "Any", "News", and "Email" are all what you might think.

  If the Current Folder Type for a Pattern is set to "News", for example, then that will only be a match if the current folder is a newsgroup and the rest of the Pattern matches. The value "Specific" may be used when you want to limit the match to a specific folder (not just a specific type of folder), or to a list of specific folders. In order to match a specific folder you must Select the "Specific" button AND you must fill in the name (or list of names) of the folder in the "Folder" field. If the current folder is any of the folders in the list, that is considered a match. The name of each folder in the list may be either "INBOX", the technical specification of the folder (like what appears in your configuration file) or, if the folder is one of your incoming folders, it may be the nickname you've given the folder. Here are a couple samples of specific folder names:

  `{monet.art.example.com}mail/art-class`

  `{news.example.com/nntp}#news.comp.mail.pine`

  The easiest way to fill in the "Folder" field is to use the T command which is available when the "Folder" line is hilighted. Note that you won't be able to edit the "Folder" line unless the Current Folder Type is set to "Specific", and any value that "Folder" has is ignored unless the type is set to "Specific".

  When reading a newsgroup, there may be a performance penalty incurred when collecting the information necessary to check a Pattern. For this reason, the default Current Folder Type is set to "Email". For example, a role with a non-Normal Index Line Color and a Current Folder Type of "Any" or "News" may cause the MESSAGE INDEX screen to draw more slowly when in a newsgroup.

Message Status Important
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the message must be flagged "Important" in order to be a match; or "No", which means the message must not be flagged "Important" in order to be considered a match.

Message Status New
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the message must be "New" in order to be a match; or "No", which means the message must not be "New" in order to be a match. "New" is the same as Unseen and not "New" is the same as Seen.

  The nomenclature for New and Recent is a bit confusing:

  New means that the message is Unseen. It could have been in your mailbox for a long time but if you haven't looked at it, it is still considered New. That matches the default Alpine index display that shows an N for such a message.

  Recent means that the message was added to this folder since the last time you opened the folder. Alpine also shows an N by default for these types of messages. If you were to run two copies of Alpine that opened a folder one right after the other, a message would only show up as Recent in (at most) the first Alpine session.

Message Status Recent
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the message must be "Recent" in order to be a match; or "No", which means the message must not be "Recent" in order to be a match. "Recent" means that the message was added to the folder since the last time the folder was opened. If more than one mail client has the folder opened, the message will appear to be "Recent" to only one of the clients.

  The nomenclature for New and Recent is a bit confusing:

  New means that the message is Unseen. It could have been in your mailbox for a long time but if you haven't looked at it, it is still considered New. That matches the default Alpine index display that shows an N for such a message.

  Recent means that the message was added to this folder since the last time you opened the folder. Alpine also shows an N by default for these types of messages. If you were to run two copies of Alpine that opened a folder one right after the other, a message would only show up as Recent in (at most) the first Alpine session.

Message Status Deleted
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the message must be marked "Deleted" in order to be a match; or "No", which means the message must not be marked "Deleted" in order to be a match.

  If you are thinking of using this part of the Pattern as a way to prevent messages from being filtered more than once in a Filter Pattern, take a look at the Filter Option "move-only-if-not-deleted" instead. It should work better than using this field since it will hide the filtered messages even if they are already Deleted.

Message Status Answered
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the message must be marked "Answered" in order to be a match; or "No", which means the message must not be marked "Answered" in order to be a match.

Subject Contains Raw 8-bit
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means the Subject of the message must contain unencoded 8-bit characters (characters with the most significant bit set) in order to be a match; or "No", which means the Subject must not contain unencoded 8-bit characters in order to be a match.

Beginning of Month
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means this is the first time Alpine has been run this month; or "No", which means this is not the first time Alpine has been run this month. The way that Alpine decides if it is the beginning of the month or not is to compare today's date with the date stored in the Last-Time-Prune-Questioned variable in the config file. If the month of today's date is later than the month stored in the variable, then this is considered to be the first time you have run Alpine this month, and that turns the Beginning of the Month option on.

Beginning of Year
  This part of the Pattern may have one of three possible values. The default value is "Don't care", which matches any message. The other two values are "Yes", which means this is the first time Alpine has been run this year; or "No", which means this is not the first time Alpine has been run this year. The way that Alpine decides if it is the beginning of the year or not is to compare today's date with the date stored in the Last-Time-Prune-Questioned variable in the config file. If the year of today's date is later than the year stored in the variable, then this is considered to be the first time you have run Alpine this year, and that turns the Beginning of the Year option on.

From or Reply-To in Address Book
  This part of the Pattern may have one of five possible values. The default value is "Don't care", which matches any message. The value "Yes, in any address book" means either the From address or the Reply-To address of the message must be in at least one of your address books in order to be a match. The value "No, not in any address book" means neither the From nor the Reply-To addresses may be in any of your address books in order to be a match.

  The values "Yes, in specific address books" and "No, not in any of specific address books" are similar but instead of depending on all address books you are allowed to give a list of address books to look in. Usually this would be a single address book but it may be a list of address books as well. For each of these "specific" address book options you Select which of the Specific options you want (Yes or No) AND fill in the name (or list of names) of the address book in the "Abook List" field. The names to be used are those that appear in the ADDRESS BOOK LIST screen. The easiest way to fill in the Abook List field it to use the "T" command which is available when the "Abook List" line is highlighted. Note that you won't be able to edit the "Abook List" line unless the option is set to one of the two "Specific", values.

Categorizer Command
  This is a command that is run with its standard input set to the message being checked and its standard output discarded. The full directory path should be specified. The command will be run and then its exit status will be checked against the Exit Status Interval, which defaults to just the value zero. If the exit status of the command falls in the interval, it is considered a match, otherwise it is not a match.

  This option may actually be a list of commands. The first one that exists and is executable is used. That makes it possible to use the same configuration with Unix Alpine and PC-Alpine.

  If none of the commands in the list exists and is executable then the rule is not a match. If it is possible that the command may not exist, you should be careful to structure your rules so that nothing destructive happens when the command does not exist. For example, you might have a filter that filters away spam when there is a match but does nothing when there is not a match. That would continue to work correctly if the command didn't exist. However, if you have a filter which filters away spam when there is not a match and keeps it when there is a match, that would filter everything if the categorizer command didn't exist.

  The categorizer command is run and the result is the exit status of that command. If that exit status falls in the Exit Status Interval then it is considered a match, otherwise it is not a match. Of course for the entire rule to match, it must also be checked against the other defined parts of the Pattern.

  The Exit Status Interval defaults to the single value 0 (zero). If you define it, it should be set to something like:

  `(min_exit_value,max_exit_value)`

  where "min_exit_value" and "max_exit_value" are integers. The special values "INF" and "-INF" may be used for large positive and negative integers.

  Actually, a list of intervals may be used if you wish. A list would look like

  `(min_exit_value1,max_exit_value1),(min_exit_value2,max_exit_value2),...`

  When there is an Exit Status Interval defined, it is a match if the exit status of the categorizer command is contained in any of the intervals. The intervals include both endpoints.

  The default interval is

  `(0,0)`

  and it matches only if the command exits with exit status equal to zero.

  It is also possible to set a Character Limit for the categorizer command. Setting this option makes it possible to limit how much of the message is made available to the categorizer command as input. The default value (-1) means that the entire message is fed to the command. A value of 0 (zero) means that only the headers of the message are made available. A positive integer means that the headers plus that many characters from the body of the message are passed to the categorizer.

## Configuring News

Alpine can access news folders in any one of three different ways:

REMOTE NNTP
  Using the Network News Transport Protocol (NNTP) to access news on a remote news server. In this case the newsrc file is stored on the machine where Alpine is running.

  To specify a remote news-collection accessed via NNTP use the SETUP/collectionList screen's "Add" command. Set the Server: value to the NNTP server's hostname appended with the communication method "/service=NNTP", and set the Path: value to the "#news." namespace (without the quotes).

  Instead of specifying a news-collection, you may simply set the nntp-server option, which will cause Alpine to create a default news-collection for you. Another NNTP option which may be of interest is nntp-range.

REMOTE IMAP
  Using the Internet Message Access Protocol (IMAP) to access news on a remote news server. In this case, your newsrc file is stored on the news server, in your home directory, so you must have an account on the news server, but you would be running Alpine on a different machine. The news server must be running an IMAPd server process.

  To specify a remote news-collection accessed via IMAP use the SETUP/collectionList screen's "Add" command. Set the Server: value to the IMAP server's hostname, and set the Path: value to the "#news." namespace (without the quotes).

LOCAL
  Using local file access to the news database. In this case, your newsrc file is stored on the news server, in your home directory, so you must have an account on the news server, and you would be running Alpine on the same machine.

  To specify a local news-collection use the SETUP/collectionList screen's "Add" command. Leave the Server: value blank, and set the Path: value to the "#news." namespace (without the quotes).

NOTE: Should no news-collection be defined as above, Alpine will automatically create one using the Setup/Config screen's "nntp-server" variable's value if defined. The collection will be created as a "Remote NNTP" as described above.

If you are a PC-Alpine user, either option 1 (NNTP) or option 2 (IMAP) is possible. If you don't have an account on the news server, or if the news server is not running an IMAP daemon, then you must use NNTP. (If you are not sure, ask your service provider, university, or company for help.) In this case, your Unix .newsrc file can be transferred to your PC. A good place to put it would be in the same directory as your PINERC file, under the name NEWSRC, but you can specify a different location.

Other configuration features related to news are Enable-8bit-Nntp-Posting. Compose-Sets-Newsgroup-Without-Confirm, News-Approximates-New-Status, News-Deletes-Across-Groups, News-Offers-Catchup-On-Close, News-Post-Without-Validation, News-Read-in-Newsrc-Order, and Quell-Extra-Post-Prompt.