Configuration and Preferences

Pine Configuration

There is very little in Pine which requires compile-time configuration. In most cases, the compiled-in preferences will suit users and administrators just fine. When running Pine on a UNIX system, the default built-in configuration can be changed by setting variables in the system configuration file, /usr/local/lib/pine.conf. Both Pine and PC-Pine also use personal (user-based) configuration files. On UNIX machines, the personal configuration file is the file ~/.pinerc. For PC-Pine systems, the personal configuration file is in $PINERC or $HOME\PINE\PINERC or <PINE.EXE dir>\PINERC.

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 the syntax is "". This is equivalent to an absent value except that it overrides any system-wide 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. For some variables the only appropriate values are yes and no. 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 Pine, there are five ways in which a 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 configuration file (which is usually set from the Config screen)
(4) the system-wide configuration file
(5) default in the source code.
So, system-wide fixed settings always take precedence over command line flags, which take precedence over per-user settings, which take precedence over system-wide configuration settings, which take precedence over source code defaults. PC-Pine has the same precedence, but it does not use a system-wide fixed configuration file.

You may get a sample/fresh copy of the system configuration file by running pine -conf. The result will be printed on the standard output with short comments describing each variable. (The online help in the Setup/Config screen provides 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 Pine. It is by no means a bullet-proof method.) Pine will automatically create the personal configuration file the first time it is run, so there is no need to generate a sample. Pine 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/Config screen from within Pine to set the values in this file. If a user does add additional comments to the personal configuration file they will be retained. Pine always writes this file at least once when running, so you can tell when a user last invoked Pine by checking the date on this file.

References to environment variables may be included in the Pine configuration files. The format is $variable or ${variable}. The character ~ will be expanded to the $HOME environment variable.

When environment variables are used for Pine settings which take lists, you must have an environment variable set for each member of the list. That is, Pine 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 Pine configuration file, which will expand to nothing.


General Configuration Variables

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

addrbook-sort-rule
This variable sets up the default address book sorting. Currently, Pine 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.

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. This list will be added to the global-address-book list to arrive at the complete set of address books.

bugs-nickname, bugs-fullname and bugs-address
System-wide configuration file only. These are used by the Report Bug command.

character-set
This sets the character set used by the terminal. Currently appropriate values are US-ASCII, ISO-8859-1 through ISO-8859-9 and ISO-2022-JP. See the section on international character sets for more details. The default is US-ASCII.

customized-hdrs
Add these custom headers when composing. Also possible to add default values to these custom headers or to any of the standard headers. This is a list variable. Each entry in the list is a header name (the actual header name that will appear in the message) followed by an optional colon and value. For example, if a Reply-to header was needed because it was different from the From address, that could be accomplished with:

    customized-hdrs=Reply-to: fred_flintstone@bedrock.net 

default-composer-hdrs
Show only these headers (by default) when composing a message. This list may include headers defined in the customized-hdrs list.

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 the default-fcc is a relative file name, then it is relative to your default collection for saves (see folder-collections).

editor
UNIX Pine 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.

fcc-name-rule
Determines default folder name for fcc when composing. Currently, Pine will accept the values default-fcc, by-recipient, or last-fcc-used. If set to default-fcc, then Pine 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 Pine 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 Pine 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 features (options) which may be turned on. You may also turn features off (the default) by prepending the characters no- to any of the features. 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. However, some of the documentation assumes that all of the features are off by default, so use this with care. In Unix Pine, features can be individually fixed on or off by setting the feature on or off in the system-wide fixed configuration file. Descriptions are omitted here. See the online help for descriptions of each feature (in the Setup/Config screen). Exception: the four disable- features are intentionally suppressed from the Config screen, as they are intended for use by system administrators in the system-wide fixed config file. Their meaning should be self-explanatory. Also the use-function-keys feature is hidden from the config screen. Here is the current list of possible features.
assume-slow-link
auto-move-read-msgs
auto-open-next-unread
compose-rejects-unqualified-addrs
compose-sets-newsgroup-without-confirm
delete-skips-deleted
disable-keyboard-lock-cmd
disable-config-cmd
disable-password-cmd
disable-update-cmd
enable-aggregate-command-set
enable-alternate-editor-cmd
enable-alternate-editor-implicitly
enable-bounce-cmd
enable-flag-cmd
enable-full-header-cmd
enable-incoming-folders
enable-jump-shortcut
enable-mail-check-cue
enable-suspend
enable-tab-completion
enable-unix-pipe-cmd
expanded-view-of-addressbooks
expanded-view-of-folders
expunge-without-confirm
include-attachments-in-reply
include-header-in-reply
include-text-in-reply
news-post-without-validation
news-read-in-newsrc-order
preserve-start-stop-characters
quit-without-confirm
save-will-quote-leading-froms
save-will-not-delete
save-will-advance
select-without-confirm
show-selected-in-boldface
signature-at-bottom
use-current-dir
use-function-keys
user-lookup-even-if-domain-mismatch

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.

font-name
Winsock version of PC Pine only.

font-size
Winsock version of PC Pine only.

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. 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.

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. Normally this is unset so 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-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 Pine would monitor the folders in this list for new mail.

initial-keystroke-list
This is a comma-separated list of keystrokes which Pine 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 Pine. 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.

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 Pine when the the pruning is done or declined. If a user wanted to make Pine stop asking this question he or she could set this time to something far in the future.

last-version-used
Personal configuration file only. This is set automatically by Pine. It is used to keep track of the last version of Pine that was run by the user. Whenever the version number increases, a new version message is printed out.

mail-directory
This variable was more important in previous versions of Pine. 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.

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

nntp-server
One or more NNTP servers (host name or IP address) which Pine will use for outgoing 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.

normal-background-color
PC-Pine only. Currently, Pine will accept the colors black, blue, green, cyan, red, magenta, yellow, or white.

normal-foreground-color
PC-Pine only. See normal-background-color for possible colors.

personal-name
Personal configuration file only (not applicable in global config. file). User's full personal name. On UNIX systems, the default is taken from the accounts data base (/etc/passwd).

personal-print-command
UNIX personal configuration file only. This corresponds to item 3 in the printer menu. This variable retains the value of personal-print-command when the printer is set to something other than item 3. The personal-print-command can be set within Pine using the printer setup menu.

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

printer
UNIX Pine only. This is the current setting for a user's printer. This variable is set from Pine's printer-setup function. The value must be either
"attached-to-ansi" -or-
the value of personal-print-command -or-
the value of standard-printer from the system-wide configuration

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 Pine.

reverse-background-color
PC-Pine only. See normal-background-color for possible colors.

reverse-foreground-color
PC-Pine only. See normal-background-color for possible colors.

saved-msg-name-rule
Determines default folder name when saving. Currently, Pine will accept the values "default-folder", "by-sender", "by-from", "by-recipient", or "last-folder-used". If set to default-folder, then Pine will offer the folder "saved-messages" (UNIX) or "SAVEMAIL" (PC) for saving messages. If set to by-from, then Pine will offer to save the message in a folder with the same name as the From, if there is one, or the Sender otherwise. If set to by-sender, then Pine will offer to save the message in a folder with the same name as the Sender, if there is one, or the From otherwise. If set to by-recipient, then Pine will offer to save the message in a folder with the same name as the recipient, which is the newsgroup if this was sent to a newsgroup or the To address if not. If set to "last-folder-used", then Pine will offer to save in whatever folder you used previously.

signature-file
Names the file to be included as the signature. This defaults to ~/.signature on UNIX and <PINERC directory>\PINE.SIG on a PC.

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

sort-key
This variable sets up the default index sorting. The default is to sort by arrival order. 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.

standard-printer
System-wide configuration file only. Specifies the command for printer selection number 2 on the printer menu. Unix only.

use-only-domain-name
Can be set to yes or no. At this point 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.

user-id
PC-Pine only. Sets the username that is placed on all outgoing messages.

window-position
Winsock version of PC Pine 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.


Retired Variables

Variables that are no longer used by the current Pine version. When an obsolete variable is encountered, its value is applied to any new corresponding setting and a comment is place before it noting that it is no longer in used. The replaced values at the time of this document include:

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.

save-by-sender
Replaced by saved-msg-name-rule.

show-all-characters
No replacement, it always works this way now.


Pine in Function Key Mode

The standard Pine uses alphabetic keys for most commands, and control keys in the composer. Despite possible appearances, the current bindings are the result of much discussion and thought. All the commands in the composer are single control characters. This keeps things very neat and simple for users. Two character commands in the composer are a possibility, but we're trying to avoid them because of the added complexity for the user.

Pine can also operate in a function-key mode. To go into this mode invoke pine -k or (on some UNIX systems) pinef. On a UNIX system, you can link or copy the pine executable to pinef to install pinef. Alternatively, users and systems administrators can set the use-function-keys feature in the personal or system-wide Pine configuration file. The command menus at the bottom of the screen will show F1-F12 instead of the alphabetic commands. In addition, the help screens will be written in terms of function keys and not alphabetic keys.

One of the results of using Pine in function-key mode is that users can only choose from twelve commands at any given time. In alphabetic-key mode, a user can press a key for a command (say, q to quit) and that command can be fulfilled. In function-key mode, the command must be visible on the bottom key-menu in order to be used. There are some screens where 34 commands are operational; function-key users can get to all of them, just not all at once.


Domain Settings

Pine uses the default domain for a few different tasks. First, it is tacked onto the user-id for outgoing email. Second, it is tacked onto all "local" (unqualified) addresses in the "To:" or "Cc:" fields of messages being composed (unless they are found in the address book). The domain name is also used to generate message-id lines for each outgoing message and to allow Pine to check if an address is that of the current Pine user.

Pine determines the domain name according to whichever of these it finds. The list here is in decreasing order of precedence.

(1) Value of the variable user-domain in the system fixed configuration file
(2) Value of the variable user-domain in the personal configuration file
(3) Value of the variable user-domain is the system-wide configuration file
(4) Value from an external database (DNS, /etc/hosts, NIS) as modified by a system fixed configuration file if use-domain-name-only set to "yes"
(5) Value from an external database (DNS, /etc/hosts, NIS) as modified by a personal configuration file if use-domain-name-only set to "yes"
(6) Value from an external database (DNS, /etc/hosts, NIS) as modified by a system configuration file if use-domain-name-only set to "yes"
(7) Unmodified value (host name) from an external database

The easiest way for this system to work is for PC-Pine users and UNIX Pine system administrators to set the user-domain variable. The variable use-only-domain-name is helpful if your site supports/requires hostless addressing, but for some reason you don't want to use the user-domain variable.

A new feature in 3.90 is called user-lookup-even-if-domain-mismatch. This will cause the personal name field to be looked up from the password file even if the domain of an address isn't a substring of the local host name. See the online help in the Setup/Config screen for full information.


Syntax for Collections

In many environments, it is quite common to have collections of archived mail on various hosts around the network. Using the folder collections facility in Pine, access to these archives is just as simple as access to folders on Pine's local disk.

"Collection" is the word we use in Pine to describe a set of folders. A collection corresponds loosely to a "directory" containing mail folders. Folders within a defined collection can be manipulated (opened, saved-to, etc) using just their simple name. Any number of folder collections can be defined, and pine will adjust its menus and prompts to help navigate them.

The way collections are defined in Pine is with the folder-collections variable in the Pine configuration file. Folder-collections takes a list of one or more collections, each (optionally) preceded by a user-defined logical name (label). Once collections are defined, Pine adjusts its menus and behavior to allow choosing files by their simple name within the collection. Collections are always defined in the configuration file; there is no time that Pine will ever ask a question which requires a user to input a collection specifier. This might change in the future if/when the Goto command is extended to allow jumping to a collection/directory as well as an individual folder.

Consider the following:

folder-collections= Local-Mail C:\MAIL\[],
Remote-Mail {imap.u.example.edu}mail/[]

The example shows two collections defined (a comma separated list; newlines in the list are OK if there's one or more spaces before the next entry), one local and one remote. Each collection is a space-delimited pair of elements-first an optional logical-name and second the collection specifier. The logical-name can have spaces if it has quotes around it (but keeping the logical name short and descriptive works best). Pine will use the logical-name (if provided) to reference all folders in the collection, so the user never has to see the ugliness of the collection specifier.

The collection specifier can be thought of as an extended IMAP format (see the "Remote Folders" section for a description of IMAP format names). Basically, a pair of square-brackets are placed in the fully qualified IMAP path where the simple folder name (the part without the host name and path) would appear. Like IMAP, the path can be either fully qualified (i.e., with a leading '/') or relative to your home directory.

An advanced feature of this notation is that a pattern within the square brackets allows the user to define a collection to be a subset of a directory. For example, a collection defined with the specifier:

M-Mail C:MAIL/[m*]
will provide a view in the folder lister of all folders in the PC's "C:MAIL" directory that start with the letter 'm' (case insensitive under DOS, of course). Further, the wildcard matching will honor characters trailing the '*' in the pattern.

From within Pine, the FOLDER LIST display will be adjusted to allow browsing of the folders in any defined collection. Even more, you'll notice in the Goto and Save commands a pair of sub-commands to rotate through the list of logical collection names, so only a simple name need be input in order to operate on a folder in any collection.

The first collection specified in the folder-collections has special significance. That folder is the "default collection for saves". In cases where the user does not specify which collection should be used to save a message, the default collection for saves will be used. Also, if the default-fcc is a relative file name, then it is relative to the default collection for saves.

The notion of collections encompasses both email folders and news reading. The variable news-collections uses nearly the same format as folder-collections. Newsgroups can be defined for convenient access via either IMAP or NNTP. There are advantages and disadvantages to both access methods. In the IMAP case, your news environment state is maintained on the server and, thus, will be seen by any client. The downside is that, at the moment, you must have an account on the server. In the NNTP case, server access is mostly anonymous and no state/accounting need be maintained on it. The downside is that each client, for now, must individually maintain news environment state.

An example pinerc entry might be:

news-collections= Remote-State *{news.u.example.edu}[],
Local-State *{news.u.example.edu/nntp}[]
Note that each news collection must be preceded by a '*' to indicate non-mail access. Only newsgroups to which you are subscribed are included in the collection.

The pattern matching facility can be applied so as to define a news collection which is a subset of all the newsgroups you subscribe to. For example, this could be a valid collection:

Newsfeed-News *{news.u.example.edu/nntp}[clari.*]

Collection handling is a tough problem to solve in a general way, and the explanation of the syntax is a bit ugly. The upside is, hopefully, that for a little complexity in the Pine configuration file you get simple management of multiple folders in diverse locations.


Syntax for Remote Folders

Remote folders are distinguished from local folders by a leading host name bracketed by '{' and '}'. The path and folder name immediately following the closing bracket, '}', is interpreted by the IMAP server and is in a form compatible with that server (i.e., path delimiters and naming syntax relative to that server).

Typically, a folder name without any path description is understood to reside in the user's "home directory" (i.e., in some way the user's personal, writable file area), as are incomplete path designations. However, the IMAP specification does not require that unqualified folder names live in one's home directory, so some IMAP servers may require fully qualified names. An example of a remote folder specification would be,

{mailhost.cac.washington.edu}mail/saved-messages
This example simply specifies a folder named ``saved-messages'' on the imap server ``mailhost.cac.washington.edu'', in the ``mail'' subdirectory of the user's home directory. Easy isn't it?

To confuse things a bit, qualifiers are permitted within the brackets following the host name. These qualifiers consist of a slash, '/' character followed by a keyword or keyword and value equality, and have the effect of modifying how the connection is made to the host specified. An example of such a specification might be,

*{pine.cac.washington.edu/anonymous}updates
Another example might be,
*{news.u.washington.edu/nntp}comp.mail.mime

Both of these examples illustrate a different qualifier. The first, specifying ``anonymous'' access to the IMAP server on ``pine.cac.washington.edu''. The second is interesting in that it specifies an altogether different access method: access via the Network News Transport Protocol (NNTP). Both examples bring to light one remaining subtlety. The leading ``*'' tells pine to treat the remote folder as a Bulletin-Board (i.e., typically a shared, read-only resource) and to adjusts its behavior accordingly.


Sorting a Folder

The mail index may be sorted by subject, size, sender, date, or arrival order. Each sort order can also be reversed. The $ command will prompt the user for the sort order. The sort order can also be specified on the command line with the -sort flag or (equivalently) with the sort-key variable in the .pinerc file. When a user changes folders, the sort order will go back to the original sort order. The command line (-sort) or configuration file sort specification (sort-key) changes the original sort order.

When a folder is sorted and new mail arrives in the folder it will be inserted in its properly sorted place. This can be a little odd when the folder is sorted by something like the subject. It can also be a little slow if you are viewing a large, sorted INBOX, since the INBOX will have to be re-sorted whenever new mail arrives.

The sorts are all independent of case and ignore leading or trailing white space. There are actually two forms of subject sort. One called "Subject" and the other called "OrderedSubj". They both ignore "Re:" at the beginning and "(fwd)" at the end of the subjects. Subject sorts all the subjects alphabetically. OrderedSubj sorts by subjects alphabetically, groups messages with the same subject (pseudo-threads), then sorts the groups by the date of the first message of the group. The sort by sender sorts by the userid, not the full name. The arrival sort is basically no sort at all and the date sort depends on the format of the date. Some dates are in strange formats and are unparsable. The time zone is also taken into account.

Sorting large mail folders can be very slow since it requires fetching all the headers of the mail messages. With UNIX Pine, only the first sort is slow since Pine keeps a copy of all the headers. One exception is sorting in reverse arrival order. This is fast because no headers have to be examined. Pine will show progress as it is sorting.


Alternate Editor

In the Pine composer you can use any text editor, such as vi or emacs, for composing the message text. The addresses and subject still must be edited using the standard Pine composer. If you include the feature enable-alternate-editor-cmd in your .pinerc you can type ^_ while in the body of the message in the composer and be prompted for the editor. If you also set the editor variable in your .pinerc then ^_ will invoke the configured editor when you type it.

Turning on the feature enable-alternate-editor-implicitly will automatically invoke the editor you have defined with the editor variable whenever you enter the body of a message you are composing. For example, when you move out of the last header line and into the body of the message, the alternate editor will be automatically invoked.

We know that many people would like to use the alternate editor to edit the mail header as well. We considered several designs for this and didn't come up with one that we liked and that was easy to implement. One of the main problems is that you lose access to the address book.


Signatures and Signature Placement

If the file ~/.signature (UNIX) or <PINERCdirectory>\PINE.SIG (PC) exists, it will be included in all outgoing messages. It is included before composition starts so that the user has a chance to edit it out if he or she likes. The file name for the signature can be changed by setting the signature-file variable in the .pinerc. There is no way to have Pine include different signatures in different outgoing messages automatically. You can do this by hand, however, by having multiple signature files (.sig1, .sig2, .sig3, etc) and choosing to include (^R in the composer) the correct one for the message being sent.

Pine's default behavior encourages a user to put his or her contribution before the inclusion of the original text of the message being forwarded or replied to, This is contrary to some conventions, but makes the conversation more readable when a long original message is included in a reply for context. The reader doesn't have to scroll through the original text that he or she has probably already seen to find the new text. If the reader wishes to see the old message(s), the reader can scroll further into the message. Users who prefer to add their input at the end of a message should set the signature-at-bottom feature in the feature-list. The signature will then be appended to the end of the message after any included text. This feature applies when replying, not when forwarding.


Feature List Variable

Pine used to have feature levels for users with different amounts of experience. We found that this was too restrictive. Pine now has a feature-list instead. Each user may pick and choose which features they would like enabled (simple to do in the Setup/Config screen). There is a short on-line help explaining the effect of each of the features in the Setup/Config screen. When the cursor is highlighting a feature, the "?" command will show the help text for that feature. Features don't have values, they are just turned on or off. They are all off by default.

The feature-list variable is different from all other configuration variables in that its value is additive. That is, the system-wide configuration file can have some features turned on by default. The user can select other features in their personal configuration file and those features will be added to the set of features turned on in the system-wide configuration file. (With all other configuration variables, the user's values replace the system-wide values.) Likewise, additional features may be set on the command-line with the argument "-feature-list=". These will be added to the others.

The treatment of feature-list in the system-wide fixed configuration file is also different from other variables. The system management can fix the value of individual features by placing them in the fixed configuration file. Users will not be able to alter those features, but will still be able to set the other non-restricted features the way they like.

Because feature-list is additive, there is a way to turn features off as well as on. Prepending the prefix "no-" to any feature sets it to off. This is useful for over-riding the system-wide default in the personal configuration file or for over-riding the system-wide default or the personal configuration value on the command line. For example, if the system-wide default configuration has the quit-without-confirm feature set, the user can over-ride that (and turn it off) by including no-quit-without-confirm in the personal configuration file or by giving the command line argument -feature-list=no-quit-without-confirm. More features (options) will no doubt continue to be added.


Additional Notes on PC-Pine

Below are a few odds and ends worth mentioning about PC-Pine. They have to do with DOS-specific behavior that is either necessary or useful (and sometimes both!).

As PC-Pine runs in an environment with limited access control, accounting or auditing, an additional line is automatically inserted into the header of mail messages generated by PC-Pine:

X-Sender: <userid>@<imap.host>

By popular demand of system administrators, PC-Pine has been modified to prevent sending messages until the user has successfully logged into a remote mail server. Even though PC-Pine cannot prevent users from changing the apparent identity of the sender of a message, the IMAP server login name host name included in the X-Sender line provide some level of traceability by the recipient. However, this should not be considered a rigorous form of authentication. It is extremely lightweight, and is not a replacement for true authentication.

Hand in hand with authentication and accounting is user information. Since PC-Pine has no user database to consult for user-id, personal-name, etc., necessary information must be provided by the user/installer before PC-Pine can properly construct the "From" address required for outbound messages. PC-Pine will, by default, prompt for the requisite pieces as they are needed. This information corresponds to the PINERC variables user-id, personal-name, user-domain, and smtp-server.

The user is then asked whether or not this information should automatically be saved to the PINERC. This is useful behavior in general, but can lead to problems in a lab or other shared environment. Hence, these prompts and automatic saving of configuration can be turned off on an entry by entry basis by setting any of the above values in the PINERC to the null string (i.e., a pair of double quotes). This means that the user will be prompted for the information once during each pine session, and no opportunity to save them in the PINERC will be offered.

Along similar lines, a feature allowing automatic login to the imap-server containing the user's INBOX has also been requested. This feature is not enabled by default, but requires the existence of the file named PINE.PWD in the same directory as the PINERC. Even with the existence of this file, the user must still acknowledge a prompt before the password is saved to the file. If PC-Pine is configured to access several different IMAP servers, each password entered will be kept (associated with the corresponding host name) in memory during the current session, and optionally, in the PINE.PWD file for use in subsequent sessions.

WARNING! Use this feature with caution! It effectively makes the user's mail no more secure than the physical security of the machine running PC-Pine. What's more, while the password is cloaked by a mild (some might say, feeble) encryption scheme, it is nonetheless sitting in a file on the PC's disk and subject to cracking by anyone with access to it. BEWARE!

Another feature of DOS is the lack of standard scratch area for temporary files. During the course of a session, PC-Pine may require numerous temporary files (large message texts, various caches, etc.). Where to create them can be a problem, particularly when running under certain network operating systems. PC-Pine observes the TMP and TEMP environment variables, and creates temporary files in the directory specified by either. In their absence, PC-Pine creates these files in the root of the current working drive.


[Previous] [Next] [Table of Content

s]