From 094ca96844842928810f14844413109fc6cdd890 Mon Sep 17 00:00:00 2001 From: Eduardo Chappa Date: Sun, 3 Feb 2013 00:59:38 -0700 Subject: Initial Alpine Version --- doc/tech-notes/Makefile | 70 + doc/tech-notes/background.html | 350 ++ doc/tech-notes/cmd-line.html | 553 ++ doc/tech-notes/config-notes.html | 1681 +++++ doc/tech-notes/config.html | 12523 +++++++++++++++++++++++++++++++++++++ doc/tech-notes/for.pnuts | 9 + doc/tech-notes/index.html | 122 + doc/tech-notes/installation.html | 577 ++ doc/tech-notes/introduction.html | 122 + doc/tech-notes/low-level.html | 975 +++ doc/tech-notes/pn4tn | 7 + doc/tech-notes/pnuts.4tech-notes | 134 + doc/tech-notes/porting.html | 336 + 13 files changed, 17459 insertions(+) create mode 100644 doc/tech-notes/Makefile create mode 100644 doc/tech-notes/background.html create mode 100644 doc/tech-notes/cmd-line.html create mode 100644 doc/tech-notes/config-notes.html create mode 100644 doc/tech-notes/config.html create mode 100644 doc/tech-notes/for.pnuts create mode 100644 doc/tech-notes/index.html create mode 100644 doc/tech-notes/installation.html create mode 100644 doc/tech-notes/introduction.html create mode 100644 doc/tech-notes/low-level.html create mode 100755 doc/tech-notes/pn4tn create mode 100755 doc/tech-notes/pnuts.4tech-notes create mode 100644 doc/tech-notes/porting.html (limited to 'doc/tech-notes') diff --git a/doc/tech-notes/Makefile b/doc/tech-notes/Makefile new file mode 100644 index 00000000..ea7d19ef --- /dev/null +++ b/doc/tech-notes/Makefile @@ -0,0 +1,70 @@ +# $Id: Makefile,v 1.6 1998/05/11 18:33:22 skramer Exp $ +# +# T H E P I N E M A I L S Y S T E M +# +# Laurence Lundblade and Mike Seibel +# Networks and Distributed Computing +# Computing and Communications +# University of Washington +# Administration Building, AG-44 +# Seattle, Washington, 98195, USA +# Internet: lgl@CAC.Washington.EDU +# mikes@CAC.Washington.EDU +# +# Please address all bugs and comments to "pine-bugs@cac.washington.edu" +# +# +# Pine and Pico are registered trademarks of the University of Washington. +# No commercial use of these trademarks may be made without prior written +# permission of the University of Washington. +# +# Pine, Pico, and Pilot software and its included text are Copyright +# 1989-1996 by the University of Washington. +# +# The full text of our legal notices is contained in the file called +# CPYRIGHT, included with this distribution. +# +# +# Pine is in part based on The Elm Mail System: +# *********************************************************************** +# * The Elm Mail System - Revision: 2.13 * +# * * +# * Copyright (c) 1986, 1987 Dave Taylor * +# * Copyright (c) 1988, 1989 USENET Community Trust * +# *********************************************************************** +# +# +# These variables are specific to the University of Washington's +# WWW server environment -- modify as needed for your own: +# WWWDIR: location for HTML files on WWW server +# PNUTS: script to run pnuts navigation bar generator; for details on PNUTS, +# see: http://hopf.math.nwu.edu/docs/utility.html +# If you do not have the PNUTS program, set variable to /bin/true + +SOURCES= index.html introduction.html background.html installation.html \ + cmd-line.html config.html config-notes.html low-level.html + +ALLSRC= $(SOURCES) for.pnuts + +TXTS= index.txt introduction.txt background.txt installation.txt \ + cmd-line.txt config.txt config-notes.txt low-level.txt + +HTML2TXT= lynx -underscore -nolist -dump + +WWWDIR= /usr/local/wwwdev/world/pine/tech-notes + +PNUTS= $(WWWDIR)/pn4tn + +.SUFFIXES: .html .txt + +tech-notes.txt: $(TXTS) + cat $(TXTS) > tech-notes.txt + rm $(TXTS) + +www: $(ALLSRC) + cp $(ALLSRC) $(WWWDIR) + ( cd $(WWWDIR) ; $(PNUTS) ) + +.html.txt: + $(HTML2TXT) $< > $@ + diff --git a/doc/tech-notes/background.html b/doc/tech-notes/background.html new file mode 100644 index 00000000..ac4d91af --- /dev/null +++ b/doc/tech-notes/background.html @@ -0,0 +1,350 @@ +Alpine Technical Notes: Background Details +

Background Details

+ +

Domain Names

+ +

+ +Domain names are used to uniquely name each host on the Internet. A +domain name has a number of parts separated by periods. Each label +represents a level in the hierarchy. An example of a name is: + +

+olive.cac.washington.edu +
+ +In this domain name the top-level label is edu, indicating it is +at an educational institution, the second-level label is +washington, indicating the University of Washington. +cac is a specific department within the University of Washington, +and olive is the host name. The top-level names are assigned by +Internet organizations, and other names are assigned at the appropriate +level. The Domain Name Service, DNS, is the distributed database used to +look up these names.

+ +Alpine relies on domain names in multiple places. +A domain name is embedded +into the message-id line generated for each piece of email. A domain name +is needed to contact an IMAP server to get access to remote INBOXes and +folders. Most importantly, domain names are needed to construct the From: +line of your outgoing messages so that people on the Internet will be able +to get email back to you.

+ +On UNIX systems, you can set the domain via the user-domain +variable in the Alpine configuration file, or rely on the file +/etc/hosts which usually sets the name of the local host. +While Alpine can often deliver email without the domain name +being properly +configured, it is best to have this set correctly. Problems can usually be +solved by adjusting the system's entry in the /etc/hosts +file. The fully-qualified name should be listed before any abbreviations. +For example, + +

+128.95.112.99 olive.cac.washington.edu olive +
+ +is preferred over + +
+128.95.112.99 olive olive.cac.washington.edu +
+

+ +On PCs, the task of configuring the domain name is a bit different. Often +times PCs do not have domain names-they have IP addresses. IP +addresses are the numbers which uniquely identify a computer on the +network. The way you configure your IP address depends on the networking +software which you use on the PC. You can refer to the documentation +which came with your networking software or see the PC specific installation notes for +help configuring the IP address with your network software.

+ +With PCs, it is vital that users set the variable user-domain in the Alpine +configuration file (PINERC).

+ +Details on configuring Alpine with correct domain names can be +found in the Domain Settings +section of this document.

+ +


+ +

RFC 2822 Compliance

+ +Alpine tries to adhere +to RFC 2822 +fairly strictly.

+ +As far as outgoing email is concerned, Alpine fully-qualifies addresses +whenever possible. They are even displayed in fully-qualified form on the +terminal as the user composes a message. This makes addresses more clear +and gives a hint to the user that the network extends beyond the local +organization. +Alpine implements fully-qualified domain names by tacking on +the local domain to all unqualified addresses which a user types in. Any +address which does not contain an "@" is considered unqualified.

+ +The format for addresses allows for spaces and special characters in +the full name of an address. For this reason, commas are required to +separate addresses. If any special characters as defined in RFC 2822 +appear in the full name, quotes are required around the address. Alpine +will insert the quotes automatically if needed. The common cases where this happens +are with periods after initials and parentheses.

+ +Alpine expects dates to be in the standard RFC 822 format +which is something like: + +

+	[www, ] dd mmm yy hh:mm[:ss] [timezone] 
+
+ +It will attempt to parse dates that are not in this format. When an +unparsable date is encountered it is shown as question marks +in the FOLDER INDEX screen.

+ +


+ +

SMTP and Sendmail

+ +Alpine is a user agent not a message transfer agent (MTA). In +plain English, that means Alpine does not know how to interact with other +computers on the Internet to deliver or receive email. What Alpine does +know how to do is help users read, organize and create email. The "dirty +work" of delivering and accepting email is handled by other programs.

+ +All outgoing email is delivered to an SMTP server +or to a mail transfer agent. +A common mail transfer agent is sendmail. +The usual method of delivery used by Alpine is to use either a +local or a remote SMTP server. + +

The selection of which MTA to use depends on the settings of +smtp-server, +sendmail-path, +and compile-time options. +The first MTA specified in the following list is used: + +

    + +
  1. sendmail-path in +/usr/local/lib/pine.conf.fixed + +
  2. smtp-server in /usr/local/pine.conf.fixed + +
  3. sendmail-path specified on the command line. + +
  4. smtp-server specified on the command line. + +
  5. sendmail-path in the user's .pinerc file. + +
  6. smtp-server in the user's .pinerc file. + +
  7. sendmail-path in /usr/local/lib/pine.conf + +
  8. smtp-server in /usr/local/pine.conf + +
  9. DF_SENDMAIL_PATH defined at compile time. + +
  10. SENDMAIL and SENDMAILFLAGS defined at +compile time. + +

+ +If the sendmail-path form is used, a child process is forked, +and the specified command is executed with the message passed on standard +input. Standard output is then passed back and displayed for the user. +NOTE: The program MUST read the message to be posted on standard +input, AND operate in the style of sendmail's "-t" option. This +method is not recommended unless there are special reasons you +want to do this.

+ +If an smtp-server is specified, +Alpine operates as an SMTP client. SMTP stands for Simple Mail +Transfer Protocol; it specifies the rules by which computers on the +Internet pass email to one another. In this case, Alpine passes outgoing +email messages to a designated SMTP server instead of to a mail transfer +program on the local machine. A program on the server then takes care of +delivering the message. To make Alpine operate as an SMTP client, the +smtp-server variable +must be set to the IP address or +host name of the SMTP server within your organization. This variable accepts a +comma separated list of servers, so you can specify multiple alternate SMTP servers. +PC-Alpine only runs as an SMTP client so the smtp-server +option is mandatory.

+ +For UNIX Alpine, +if neither smtp-server or sendmail-path is set, +the default sendmail program is +invoked with the "-bs -odb -oem" flags, and the message +is sent using the SMTP protocol. +

+ +


+ +

Internet Message Access Protocol (IMAP)

+ +IMAP is a remote access protocol for message stores. Alpine uses IMAP to get +at messages and folders which reside on remote machines. With IMAP, +messages are kept on the server. An IMAP client (such as Alpine) can +request specific messages, headers, message structures, message parts, etc. The client +can also issue commands which delete messages from folders on the server. +IMAP's closest kin is POP, the Post Office Protocol, which works by +transferring an entire mailbox to the client where all the mail is kept. +For a comparison of IMAP and POP, see the paper "Comparing Two Approaches +to Remote Mailbox Access: IMAP vs. POP" by Terry Gray. A more +detailed exploration of message access may be found in the paper " Message Access Paradigms and +Protocols." +

+ +IMAP Features: + +

+ +IMAP4rev1 is described in RFC 3501. Further +information about IMAP may be obtained from the University of Washington's +IMAP Information Center.

+ +Alpine is an IMAP4rev1 client. +

+ +


+ +

Multipurpose Internet Mail Extensions (MIME)

+ +MIME is a way of encoding a multipart message structure into a standard +Internet email message. The parts may be nested and may be of seven +different types: Text, Audio, Image, Video, Message, Application and +Multipart (nested). The MIME specification allows email programs such as +Alpine to reliably and simply exchange binary data (images, spreadsheets, +etc.). MIME includes support for international character sets, tagging each +part of a message with the character set it is written in, and providing +7-bit encoding of 8-bit character sets.

+ +The MIME standard was officially published in June of 1992 as RFC 1341 and subsequently +revised in RFC 2045 +when it became a full Internet Standard. Pine 3.0 was one of the first +email programs to Implement MIME. Now, there are dozens of commercial and +freely available MIME-capable email programs. In addition, MIME is being +added to newsreaders so MIME messages can be posted and read in USENET +newsgroups.

+ +The MIME standard also includes support for non-ASCII text in message +headers through the extensions described in RFC 1342 and subsequently +revised in RFC 2047.

+ +An actual MIME message looks something like this: + +

+Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
+From: David L Miller <dlm@cac.washington.edu>
+To: David L Miller <dlm@cac.washington.edu>
+Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?=    =?iso-8859-1?Q?=E2=E3=29?=
+Message-Id: <Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu>
+Mime-Version: 1.0
+Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
+Content-Id: <Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu>
+
+  This message is in MIME format.  The first part should be readable text,
+  while the remaining parts are likely unreadable without MIME-aware tools.
+  Send mail to mime@docserver.cac.washington.edu for more info.
+
+--0-1737669234-826673975=:21583
+Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
+Content-ID: <Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu>
+
+The text of the message would go here. It is readable if
+one doesn't mind wading around a little bit of the MIME
+formatting. After this is a binary file in base 64
+encoding.
+
+|\ |  |\/|  David L. Miller    dlm@cac.washington.edu  (206) 685-6240
+|/ |_ |  |  Software Engineer, Pine Development Team   (206) 685-4045 (FAX)
+University of Washington, Networks & Distributed Computing, JE-20
+4545 15th Ave NE, Seattle WA 98105, USA
+
+--0-1737669234-826673975=:21583
+Content-Type: APPLICATION/ZIP; NAME="test.zip"
+Content-Transfer-Encoding: BASE64
+Content-ID: <Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu>
+Content-Description: Test Attachment
+
+UEsDBBQAAAAIAGh8bCBbZKT4ygIAAHgFAAAEAAAAdGVzdIVUX2vbMBB/16c4
+9rSBNyjsYX1UHSUROLInycv2qNhKI5ZYxlLa5dvvpDRLw6CFgJF09/t3Rxo3
+WDBDD43rPJjJQpxMbw9m+h3AbyHuLLSDe7JTcPGUbtYm7NzwGP3wBYQnnT8c
+7NQ5s4djsC8t4QbmYE6wsfjpLTy7uPPHCOPk/ATPk4vRDmS008GF4PzwPich
+zY3m4LfxOQlPNy4GcEO3P/a2h2j/xGyp9ONpco+7CHf33+4/393ff4XNibzL
+c1UVfXJXQIdIBRx877b4TYy9C3Fym2NEyzsX/pNDet8dD3aIJiagLbo2wwnG
+4zT6cK66ZLK1NhH9J4tcZQEy7OxkNyd4nMwQbV9glP7JZb87E3O32fgnm7We
+XQ8+us4SM47WTCkgMPt9enc2ZAW5c+Pj7o32l0IXXk/r8pSRE3A4jqOfIqqF
+G+PFlSdRDOaQduXNESTwtDcYfJ8191gWXUjYmOJ43Oxdh11JTzRuSPcY37+B
+vNqmf0O5RB1G27mt64rLCp4X8pW1L6BvxunCeYHNk3F7s9lb+GAwyvAhOyNE
+Lxm0gv9gUnH9C+o5rKlacrHQtYAZV2VF+UoBrSp8kJIKzZkqgP1sJFMKagl8
+1VSczQqy5noJki2onIGuQS+5AlXPNfaxArgoq3aGwJDq6lZDxVdcU82RKMG/
+4JArTVKzYrJc4pE+8CoJpGIGc65FIp8jO4WGSs3LtqISmlY2tUKyVMUFETWw
+H0xoUMvE8KbXB4aC6EPFzrDiF6iGlZxWBeFixiUrdXJb1kKx7y2C4hPM6Iou
+WI4hdVyO6yXVqkZqiXmottLJ9lzWK1LVKttqk8oZ1TS1NrJGS5jqeslQI0aK
+ieCvzNlgNZJqiccCc5WafLxmKdii4gsmSvYpISkteamzkRwXJiG5SoUpcERK
+8xIE8QQ7o+eh5WAUy1qYRP8rioip/maI+OfyF1BLAQIUAxQAAAAIAGh8bCBb
+ZKT4ygIAAHgFAAAEAAAAAAAAAAEAAACkgQAAAAB0ZXN0UEsFBgAAAAABAAEA
+MgAAAOwCAAAAAA==
+--0-1737669234-826673975=:21583--
+
+
+ +For details about Alpine's implementation of MIME, see the two MIME sections +"MIME: Reading a Message" and +"MIME: Sending a Message" later +in this document.

+ +


+ +

Folder Collections

+ +Folder Collections are Alpine's way of dealing with more than a single group +of folders.

+ +For a more complete description of Folder Collections, see the section on +"Syntax for Collections."

+ +The Alpine distribution is designed to require as little configuration and +effort at compile time as possible. Still, there are some Alpine behaviors +which are set at the time you compile Alpine. For each of these, there is a +reasonable (our opinion) default built into the code, so most systems +administrators will have no need for these steps.

+ + + + diff --git a/doc/tech-notes/cmd-line.html b/doc/tech-notes/cmd-line.html new file mode 100644 index 00000000..cb6d1efb --- /dev/null +++ b/doc/tech-notes/cmd-line.html @@ -0,0 +1,553 @@ +Alpine Technical Notes: Command Line Arguments +

Command Line Arguments

+ +

Alpine

+ +Alpine and PC-Alpine can accept quite a few +command-line arguments. +Many of these arguments overlap with variables +in the Alpine configuration file. +If there is a difference, then a flag set in the command line takes precedence. +Both Alpine and PC-Alpine expect command line arguments (other +than addresses) to be +preceded by the "-" (dash) as normally used by UNIX programs. +

+ +

+ +
[addresses] + +
Send-to: If you give Alpine an argument or arguments which +do not begin with a dash, Alpine treats them as email addresses. +Alpine will startup in +the composer with a message started to the addresses specified. +Once the message is sent, the Alpine session closes. +Standard input redirection is allowed. +Separate multiple addresses with a space between them. +Addresses are placed in the "To" field only. +

+ +

< file + +
Alpine will startup in the composer with file read +into the body of the message. +Once the message is sent, the Alpine session closes. +

+ +

-attach file + +
Go directly into composer with given file attached. +

+ +

-attachlist file-list + +
Go directly into composer with given files attached. +This must be the last option on the command line. +

+ +

-attach_and_delete file + +
Go directly into composer with given file attached, delete when finished. +

+ +

-aux local_directory + +
PC-Alpine only. +This tells PC-Alpine the local directory to use for storing auxiliary +files, like debug files, address books, and signature files. The pinerc may +be local or remote. +

+ +

-nosplash + +
PC-Alpine only. +This tells PC-Alpine to not display the splash screen upon startup. +This may be helpful for certain troubleshooting or terminal server scenarios. +

+ +

-bail + +
If the personal configuration file doesn't already exist, exit. +This might be useful if the configuration file is accessed using some +remote filesystem protocol. If the remote mount is missing this will cause +Alpine to quit instead of creating a new pinerc. +

+ +

-c n + +
When used with the -f option, apply the nth context. +This is used when there are multiple folder collections (contexts) and you +want to open a folder not in the primary collection. +

+ +

-conf + +
Configuration: Prints a sample system configuration file to the +screen or standard output. To generate an initial system configuration +file, execute + +

+		alpine -conf > /usr/local/lib/pine.conf
+
+

+ +To generate a system configuration file using settings from an old +system configuration file, execute + +


+		alpine -P old-pine.conf -conf > /usr/local/lib/pine.conf
+
+

+A system configuration file is not required. +

+ +

-convert_sigs -p pinerc + +
Convert signatures contained in signature files into literal signatures. +

+ +

-copy_abook <local_abook_file> <remote_abook_folder> + +
Copy an address book file to a remote address book folder. +If the remote folder doesn't exist, it will be created. +If it exists but the first message in the folder isn't a remote address +book header message, the copy will be aborted. +This flag will not usually be used by a user. +Instead, the user will create a remote address book from within Alpine +and copy entries from the local address book by using aggregate Save in +the address book screen. +

+ +

-copy_pinerc <local_pinerc_file> <remote_pinerc_folder> + +
Copy a pinerc configuration file to a remote pinerc folder. +If the remote folder doesn't exist, it will be created. +If it exists but the first message in the folder isn't a remote pinerc +header message, the copy will be aborted. +This flag may be useful to users who already have a local pinerc file and +would like to convert it to a remote pinerc folder and use that instead. +This gives a way to bootstrap that conversion without having to manually +reset all of the variables in the remote pinerc folder. +

+ +

-d debug-level + +
Debug Level: Sets the level of debugging information written by +Alpine. +Debug-level can be set to any integer 0-9. +A debug level of 0 turns off debugging for the session. +(Actually there are some levels higher than 9, but you probably don't +want to see them. Sensitive authentication information is hidden at +levels less than 10.) +

+ +

-d keywords + +
You may use a more detailed version of the debugging flag to set +the debug level in separate parts of Alpine. +The possibilities are flush, timestamp, imap=0..4, tcp, numfiles=0..31, and +verbose=0..9. +Flush causes debugging information to be flushed immediately to +the debug file as it is written. +Verbose is the general debugging verbosity level. +Timestamp causes timestamps to be added to the debug file, which +is useful when you are trying to figure out what is responsible for delays. +Numfiles sets the number of debug files saved. +Imap sets the debug level for the debugging statements related +to the conversation with the IMAP server, and more generally, for the +debugging related to Alpine's interaction with the C-Client library. +If imap is set higher than 4, sensitive authentication information +will be included in the debug file. +Tcp adds more TCP/IP debugging information. +

+ +

-f folder + +
Startup folder: Alpine will open this folder in place +of the standard INBOX. +

+ +

-F file + +
Open named text file for viewing and forwarding. +

+ +

-h + +
Help: Prints the list of available command-line arguments to the +screen. +

+ +

-i + +
Alpine will start up in the FOLDER INDEX +screen instead of the MAIN MENU. +

+ +Configuration equivalent: initial-keystroke-list=i. +

+ +

-I a,b,c,... + +
Initial Keystrokes: Alpine will execute this comma-separated +sequence of commands upon startup. +This allows users to get Alpine to start in any +of its menus/screens. +You cannot include any input to the composer in the initial keystrokes. +The key <Return> is represented by a ``CR'' in +the keystroke list; the spacebar is designated by the letters ``SPACE''. +Control keys are two character sequences beginning with ``^'', such as +``^I''. +A tab character is ``TAB''. +Function keys are ``F1'' - ``F12'' and the arrow keys are ``UP'', +``DOWN'', ``LEFT'', and ``RIGHT''. +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 of characters surrounded by double +quotes (") then it will be expanded into the individual characters in +the string, excluding the double quotes. +

+ +Configuration equivalent: initial-keystroke-list +

+ +

-install + +
For PC-Alpine only, this option prompts for some basic +setup information, then exits. +

+ +

-k + +
Function-Key Mode: When invoked in this way, Alpine expects +the input of commands to be function-keys. +Otherwise, commands are linked to the regular character keys. +

+ +Configuration equivalent: use-function-keys included in +feature-list. +

+ +

-n n + +
Message-Number: When specified, Alpine starts up in the +FOLDER INDEX screen with the current message being the specified +message number. +

+ +

-nowrite_password_cache + +
This tells Alpine to use the local password cache if there is one, but to +never offer writing new passwords to the cache. +

+ +

-o folder + +
Opens the INBOX (or a folder specified via the -f argument) ReadOnly. +

+ +

-p pinerc + +
Uses the named file as the personal configuration file instead of +~/.pinerc or the default PINERC search sequence PC-Alpine uses. +Pinerc may be either a local file or a remote configuration folder. +

+ +

-P pinerc + +
Uses the named file as the system wide configuration file instead of +/usr/local/lib/pine.conf on UNIX, or nothing on PC-Alpine. +Pinerc may be either a local file or a remote configuration folder. +

+ +

-passfile passfile + +
This tells Alpine what file should be used as the password file. +This should be a fully-qualified filename. +

+ +

-pinerc file + +
Output fresh pinerc configuration to file, preserving the +settings of variables that the user has made. +Use file set to ``-'' to make output go to standard out. +

+ +

-r + +
Restricted Mode: For UNIX Alpine only. +Alpine in restricted mode can only send email to itself. +Save and export are limited. +

+ +

-registry cmd + +
For PC-Alpine only, this option affects the values of +Alpine's registry entries. +Possible values for cmd are set, noset, clear, clearsilent, and dump. +Set will always reset Alpine's registry +entries according to its current settings. +NoSet will never set any values in the registry, but it will +still use the values already set in the registry. +Clear will clear the registry values. +Clearsilent will silently clear the registry values. +Dump will display the values of current registry settings. +Note that the dump command is currently disabled. +Without the -registry option, PC-Alpine will write values into +the registry only if there currently aren't any values set. +

+ +

-sort key + +
Sort-Key: Specifies the order messages will be displayed in for the +FOLDER INDEX screen. +Key can have the following values: +arrival, date, subject, orderedsubj, thread, from, size, score, to, cc, +arrival/reverse, date/reverse, subject/reverse, orderedsubj/reverse, thread/reverse, +from/reverse, size/reverse, score/reverse, to/reverse, and cc/reverse. +The default value is "arrival". +The key value reverse is equivalent to arrival/reverse. +

+ +Configuration equivalent: sort-key. +

+ +

-supported + +
Some options may or may not be supported depending on how Alpine +was compiled. +This is a way to determine which options are supported in the particular +copy of Alpine you are using. +

+ +

-install + +
For PC-Alpine only, this option removes references to Alpine +in Windows settings. The registry settings are removed and +the password cache is cleared. +

+ +

-url url + +
Open the given URL. +

+ +

-v + +
Version: Print version information to the screen. +

+ +

-version + +
Version: Print version information to the screen. +

+ +

-x exceptions_config + +
Configuration settings in the exceptions config override your normal +default settings. +Exceptions_config may be either a local file or a remote pinerc folder. +

+ +

-z + +
Enable Suspend: When run with this flag, the key sequence ctrl-z +will suspend the Alpine session. +

+ +Configuration equivalent: enable-suspend included in +feature-list. +

+ +

-option=value + +
Assign value to the config option option. +For example, -signature-file=sig1 or +-feature-list=signature-at-bottom. +(Note: feature-list values are +additive and features may be preceded with no- to turn them off). +

+ +

+

+ +

Pico

+ +The following command line options are supported in Pico: + +
+ +
+n + +
Causes Pico to be started with the cursor located n +lines into the file. (Note: no space between "+" sign and number)

+ +

-a + +
Display all files and directories, including those beginning +with a period (.).

+ +

-b + +
Enable the option to Replace text matches found using the +"Where is" command. This now does nothing. Instead, the option is +always turned on (as if the -b flag had been specified).

+ +

-d + +
Rebind the "delete" key so the character the cursor is on is rubbed +out rather than the character to its left.

+ +

-e + +
Enable file name completion.

+ +

-f + +
Use function keys for commands. This option supported only in +conjunction with UW Enhanced NCSA telnet.

+ +

-g + +
Enable "Show Cursor" mode in file browser. Cause cursor to be +positioned before the current selection rather than placed at the lower +left of the display.

+ +

-k + +
Causes "Cut Text" command to remove characters from the cursor +position to the end of the line rather than remove the entire line.

+ +

-m + +
Enable mouse functionality. This only works when Pico is +run from within an X Window System "xterm" window.

+ +

-nn + +
The -nn option enables new mail notification. The +n argument is optional, and specifies how often, in seconds, your +mailbox is checked for new mail. For example, -n60 causes Pico +to check for new mail once every minute. The default interval is 180 +seconds, while the minimum allowed is 30. (Note: no space between "n" and +the number)

+ +

-o dir + +
Sets operating directory. Only files within this directory are +accessible. Likewise, the file browser is limited to the specified +directory subtree.

+ +

-p + +
Preserve the "start" and "stop" characters, typically Ctrl-Q + and Ctrl-S, which are sometimes used in communications paths to control data flow +between devices that operate at different speeds.

+ +

-q + +
TermdefWins. Termcap or terminfo escape sequences are used in preference +to default escape sequences.

+ +

-Q quotestr + +
Set the quote string. Especially useful when composing email, setting this +allows the quote string to be checked for when Justifying paragraphs. +A common quote string is "> ".

+ +

-rn + +
Sets column used to limit the "Justify" command's right margin.

+ +

-t + +
Enable "tool" mode. Intended for when Pico is used as the +editor within other tools (e.g., Elm, Pnews). Pico will not +prompt for save on exit, and will not rename the buffer during the "Write +Out" command.

+ +

-v + +
View the file only, disallowing any editing.

+ +

-version + +
Print version information.

+ +

-w + +
Disable word wrap (thus allow editing of long lines).

+ +Note: Pico will break any lines over 255 characters when reading a +file, regardless of word wrapping.

+ +

-x + +
Disable keymenu at the bottom of the screen.

+ +

-z + +
Enable ^Z suspension of Pico.

+ +

+ +

Pilot

+ +The following command line options are supported in Pilot: + +
+ +
-a + +
Display all files including those beginning with a period (.).

+ +

-f + +
Use function keys for commands. This option supported only in +conjunction with UW Enhanced NCSA telnet.

+ +

-g + +
Enable "Show Cursor" mode. Cause cursor to be positioned before the +current selection rather than placed at the lower left of the display.

+ +

-m + +
Enable mouse functionality. This only works when Pilot is +run from within an X Window System "xterm" window.

+ +

-nn + +
The -nn option enables new mail notification. The +n argument is optional, and specifies how often, in seconds, your +mailbox is checked for new mail. For example, -n60 causes Pilot +to check for new mail once every minute. The default interval is 180 +seconds, while the minimum allowed is 30. (Note: no space between "n" and +the number)

+ +

-o dir + +
Sets operating directory. Only files within the specified directory +are accessible and browsing is limited to the specified directory subtree. +

+ +

-v + +
Enable single vertical column display.

+ +

-x + +
Disable keymenu at the bottom of the screen.

+ +

-z + +
Enable ^Z suspension of Pilot. + +
+ + + + + diff --git a/doc/tech-notes/config-notes.html b/doc/tech-notes/config-notes.html new file mode 100644 index 00000000..bc8e7459 --- /dev/null +++ b/doc/tech-notes/config-notes.html @@ -0,0 +1,1681 @@ +Alpine Technical Notes: Notes on Configuration and +Preferences +

Notes on Configuration and Preferences

+ +

Alpine in Function Key Mode

+ +The standard Alpine 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.

+ +Alpine can also operate in a function-key mode. To go into this mode invoke +alpine -k or (on some UNIX systems) alpinef. On a UNIX +system, you can link or copy the Alpine executable to +alpinef to install alpinef. Alternatively, users and systems +administrators can set the use-function-keys feature in the +personal or system-wide Alpine 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 Alpine 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 four screens of commands are operational; +function-key users can get to all of them, just not all at once.

+ +


+ +

Domain Settings

+ +Alpine 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 or on an +LDAP server). The domain +name is also used to generate message-id lines for each outgoing message +and to allow Alpine to check if an address is that of the current Alpine user. +

+ +Alpine 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 in 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-only-domain-name +set to yes + +
  5. Value from an external database (DNS, /etc/hosts, NIS) as +modified by a personal configuration file if use-only-domain-name +set to yes + +
  6. Value from an external database (DNS, /etc/hosts, NIS) as +modified by a system configuration file if use-only-domain-name +set to yes + +
  7. Unmodified value (host name) from an external database

    + +

+ +

The easiest way for this system to work is for PC-Alpine +users and UNIX Alpine 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.

+ +


+ +

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 Alpine, access to these archives is just as simple as access to +folders on Alpine's local disk.

+ +"Collection" is the word we use in Alpine 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 Alpine will adjust its menus and prompts to help navigate +them.

+ +The way collections are defined in Alpine is with the +folder-collections +variable in the Alpine 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, Alpine adjusts its menus and behavior to allow +choosing files by their simple name within the collection. +

+ +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). Alpine +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 Alpine, 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". +By default, 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. (See also +saved-msg-name-rule.

+ +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}#news.[],
+			Local-State	{news.u.example.edu/nntp}#news.[]
+
+ +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}#news.[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 Alpine configuration file you get simple +management of multiple folders in diverse locations.

+ +Collection setup is handled by the +Setup/collectionList screen.

+ +


+ +

Syntax for Folder Names

+ +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 remote server and is in a +form compatible with that server (i.e., path delimiters and naming syntax +relative to that server). +

+ +The full syntax for a Alpine folder name looks like + +

+

[{<remote-specification>}][#<namespace>]<namespace-specific-part>
+

+ +The square brackets ([]) mean that the part is optional. +

+ +If there is no remote-specification, then the folder name is interpreted +locally on the computer running Alpine. +Local folder names depend on the operating system used by the computer +running Alpine, as well as the configuration of that system. For example, +"C:\ALPINE\FOLDERS\OCT-94" might exist on a PC, and +"~/mail/september-1994" might be a reasonable folder name on a +system running Unix. + +

+Alpine users have the option of using folders which are stored on some other +computer. Alpine accesses remote folders via IMAP (the Internet Message +Access Protocol), or in the case of news, via NNTP (the Network News +Transport Protocol). To be able to access remote folders in Alpine, the +remote host must be running the appropriate server software (imapd or +nntpd) and you must correctly specify the name of the folder to Alpine, +including the domain name of the remote machine. For example, +

+

{monet.art.example.com}INBOX
+

+could be a remote folder specification, and so could +

+

{unixhost.art.example.com}~/mail/september-1994
+and +

+

{winhost.art.example.com}\mymail\SEP-94
+

+Note that in the case of remote folders, the directory/file path in the specification is +determined by the operating system of the remote computer, not by +the operating system of the computer on which you are running Alpine. +

+As you can tell, the name of the computer is in {} brackets +followed immediately by the name of the folder. (In each of these cases the +optional namespace is missing.) If, as in these +examples, there is no remote access protocol specified, then IMAP is +assumed. Check +Server Name Syntax +for a more detailed look at what options can be placed between the brackets. +If there are no brackets at all, then the folder name is interpreted locally +on the computer on which you are running Alpine. + +

+To the right of the brackets when a server name is present, or at the +start of the foldername if no server is present, the sharp sign, +"#", holds special meaning. It indicates a folder name +outside the area reserved for your personal folders. In fact, it's +used to indicate both the name of the folder, and a special phrase +telling Alpine how to interpret the name that follows. + +

+So, for example, Alpine can be used to access a newsgroup that might be +available on your computer using: +

+

#news.comp.mail.pine
+

+The sharp sign indicates the folder name is outside your personal +folder area. The "news." phrase after it tells Alpine to +interpret the remainder of the name as a newsgroup. + +

+Similarly, to access a newsgroup on your IMAP server, you might +use something like: +

+

{wharhol.art.example.com}#news.comp.mail.misc
+ +

+There are a number of such special phrases (or "namespaces") +available. For a more detailed explanation read about +Namespaces. + +

+Note that "INBOX" has special meaning in both local and remote folder +names. The name INBOX refers to your "principal incoming +message folder" and will be mapped to the actual file name used for your +INBOX on any given host. Therefore, a name like +"{xxx.art.example.com}INBOX" refers to whatever file is used to +store incoming mail for you on that particular host. +

+ +


+ +

Server Name Syntax

+ +This section describes the syntax which may be used for server names +which may be associated with remote folders or SMTP servers. + +

+A server name is the hostname of the server. +It's a good idea to use the host's fully-qualified network name. + +

+

foo.example.com
+

+ +However, IP addresses are allowed if surrounded +with square-brackets. + +

+

[127.0.0.1]
+

+ +An optional network port number may be supplied by appending +a colon (:) followed by the port number +to the server name. +By default, the IMAP port number, 143, is used. + +

+

foo.example.com:port
+

+ +Besides server name and optional port number, various other optional +parameters may be supplied that alter Alpine's interaction with the server. +A parameter is supplied by appending a slash (/) character followed by +the parameter's name and, +depending on the particular parameter, the value assigned to that +name, to the server name (and optional port number). +Parameter names are not case sensitive. +Currently supported parameters include: + +

+ +
User
+
This parameter requires an associated value, and is intended to +provide the username identifier with which to establish the server +connection. +If your SMTP server offers SMTP AUTH authentication, adding this +parameter to the +SMTP-Server +option will cause Alpine to attempt to authenticate to the server using the +supplied username. +Similarly, if your NNTP server offers NNTP "AUTHINFO SASL" +or "AUTHINFO USER" authentication, adding this parameter to the +NNTP-Server +option (or to the server name for any folder collection using NNTP) +will cause Alpine to attempt +to authenticate to the server using the supplied username. +An example might be: + +

+

/user=katie
+

+ +

+ +
TLS
+
+Normally, when a new connection is made an attempt is made to +negotiate a secure (encrypted) session using Transport Layer Security (TLS). +If that fails then a non-encrypted connection will be attempted instead. +This is a unary parameter indicating communication with the server must +take place over a TLS connection. If the attempt to use TLS fails then +this parameter will cause the connection to fail instead of falling +back to an unsecure connection. + +

+

/tls
+

+ +

+ +
SSL
+
+This is a unary parameter indicating communication with the server should +take place over a Secure Socket Layer connection. The server must support +this method, and be prepared to accept connections on the appropriate +port (993 by default). +Alpine must be linked with an SSL library for this option to be operational. + +

+

/ssl
+

+ +

+ +
NoValidate-Cert
+
Do not validate certificates (for TLS or SSL connections) from the server. +This is needed if the server uses self-signed certificates or if Alpine +cannot validate the certificate for some other known reason. +

+

+ +
Anonymous
+
This is a unary parameter (that means it does not have a value) +indicating that the connection be logged in as +"anonymous" rather than a specific user. +Not all servers offer anonymous +access; those which do generally only offer read-only access to certain +"public" folders. + +

+

/anonymous
+

+ +

+ +
Secure
+
This is a unary parameter indicating that the connection use the +most secure authentication method mutually supported by Alpine and the +server. +Alpine is capable of authenticating connections to +the server using several methods. +By default, Alpine will attempt each +method until either a connection is established or the +list of methods is exhausted. +This parameter causes Alpine to instead fail +the connection if the first (generally most "secure") method fails. + +

+

/secure
+

+ +

+ +
Submit
+
This is a unary parameter for use with the +"SMTP-Server" option. +It indicates that the connection should be made to the Submit server +(RFC 3676) +(port 587) instead of the SMTP port (25). +At the time this help was written the submit option was equivalent to +specifying port 587. + +

+

/submit
+

+or +

+

host:587
+

+ +

+ +
Debug
+
This is a unary parameter indicating that the connection be established +in a verbose mode. Basically, it causes Alpine to log the communication with +the server in Alpine's debug file. +Normally, the alpine -d command-line flag would be used instead. +

+

+ +
NoRsh
+
By default, Alpine attempts to login using "rsh", +the UNIX remote shell program. +Including "NoRsh" will cause connections to this server to skip +the "rsh" attempt. +This might be useful to avoid long timeouts caused by rsh firewalls, for +example. +

+

+ +
Service
+
This parameter requires an associated value. The default value is +"IMAP" which indicates communication with the server based +on the IMAP4rev1 protocol (defined in RFC 3501 -- see +http://www.imap.org/docs/rfc3501.html).
+ +Other service values include: +
+
NNTP
+
This value indicates communication with the server takes place via +the Network News Transfer Protocol. Use this to define a collection +of newsgroups on a remote news server. So + +

+

/service=NNTP
+

+or just +

+

/NNTP
+

+ +is the way to specify NNTP access. +

+

+ +
POP3
+
This value indicates communication with the server takes place via the +Post Office Protocol 3 protocol. + +

+

/service=POP3
+

+or just +

+

/POP3
+

+ +Note that there are several important issues +to consider when selecting this option: +

    +
  1. POP3 provides access to only your INBOX. In other words, +secondary folders such as your "saved-messages" are inaccessible. +
  2. Alpine's implementation of POP3 does not follow the traditional POP +model and will leave your mail on the server. Refer to the +Mail Drop +functionality for a possible way around this problem. +
  3. See the discussion about new-mail checking in Folder-Reopen-Rule. +
+
+
+
+ +

+Note that it is possible to include more than one parameter in a server +specification by concatenating the parameters. For example: + +

+

foo.example.com:port/user=katie/novalidate-cert/debug
+

+ +


+ +

Folder Namespaces

+ +A Alpine folder name looks like + +

+

[{<remote-specification>}][#<namespace>][<namespace-specific-part>]
+

+ +The local part of a folder name has an optional "Namespace" which +tells Alpine how to interpret the rest of the name. + +

+By default the folder name is interpreted as defining a section of your personal +folder area. This area and how you specify it are defined by the +server, if one is specified, or, typically, the home +directory, if no server is defined. + +

+If a namespace is specified, it begins with the +sharp, "#", character followed by the name of the namespace +and then the namespace's path-element-delimiter. Aside from the +path's format, namespaces can also imply access rights, content +policy, audience, location, and, occasionally, access methods. + +

+Each server exports its own set (possibly of size one) of +namespaces. Hence, it's likely communication with your server's +administrator will be required for specific configurations. Some of +the more common namespaces, however, include: + +

+
#news.
+
This specifies a set of folders in the newsgroup namespace. Newsgroup +names are hierarchically defined with each level delimited by a period. +

+

#news.comp.mail.pine
+

+

+
#public/
+
This specifies a folder area that the server may export to the general +public. +
+
#shared/
+
This specifies a folder area that the folder may export to groups +of users. +
+
#ftp/
+
This specifies a folder area that is the same as that it may have +exported via the "File Transfer Protocol". +
+
#mh/
+
This specifies the personal folder area associated with folders +and directories that were created using the MH message handling system. +
+
#move/
+
This namespace is interpreted locally by Alpine. It has an unusual interpretation and format. +

+

#move<DELIM><MailDropFolder><DELIM><DestinationFolder>
+

+The #move namespace is followed by two folder names separated by a delimiter +character. +The delimiter character may be any character which does not appear in +the MailDropFolder name. +The meaning of #move is that mail will be copied from the MailDropFolder to +the DestinationFolder and then deleted (if possible) from the MailDropFolder. +Periodic checks at frequency +Mail-Check-Interval, but with a minimum time between checks set by +MailDrop-Check-Minimum, +are made for new mail arriving in the MailDropFolder. +An example which copies mail from a POP inbox to a local folder follows +

+

#move+{popserver.example.com/pop3/ssl}inbox+local folder
+

+To you it appears that mail is being delivered to the local folder when it +is copied from the MailDropFolder, and you read mail from the local folder. +

+Note that if the DestinationFolder does not exist then the messages are not +copied from the MailDropFolder. +A #move folder may only be used as an +Incoming folder or +an Inbox. +When you are in the FOLDER LIST of Incoming Message Folders (after turning +on the enable-incoming-folders option) +the Add command has a subcommand "Use Mail Drop" +which may be helpful for defining the folder in your Alpine configuration. +The same is true when you edit the +Inbox-Path +option in Setup/Config. +Each of these configuration methods will also create the DestinationFolder +if it doesn't already exist. +If you are having problems, make sure the DestinationFolder exists. +

+
+

+ +In addition, the server may support access to other user's folders, +provided you have suitable permissions. Common methods use a prefix +of either "~user/", or "/user/" to +indicate the root of the other user's folder area. +

+ +


+ +

What is a Mail Drop?

+ +In some situaions it may make sense to have your mail delivered to one +folder (the Mail Drop) and then when you want to read mail that has been +delivered to the Mail Drop folder Alpine will move it to another +destination folder. +Often the Mail Drop will be a remote folder and messages will be moved from +there to a local destination folder. + +

+One example where this might make sense is if the Mail Drop folder is accessible +only with the POP protocol. +You could designate your POP inbox as the Mail Drop folder and have Alpine move +mail from there to a local (on the same machine Alpine is running on) +destination folder, where you'll read it. + +

+A Mail Drop may only be used as your Inbox or as an +Incoming folder. + +

+There is no attempt to synchronize the contents of the destination folder +with the contents of the Mail Drop folder. +All that happens is that all of the messages in the Mail Drop folder are +copied to the destination folder and then they are deleted and expunged (if possible) +from the Mail Drop folder. +The next time a check for new mail is made, any messages in the Mail +Drop folder are once again copied to the destination folder and deleted +and expunged from the Mail Drop folder. +(If the Mail Drop folder is a news group, then the messages can't be +expunged from the newsgroup. Instead, only Recent messages are copied from +the newsgroup to the destination folder.) + +

+Configuration of a Mail Drop is a little different from configuration of +a folder which does not use a Mail Drop because you have to specify two +folder names instead of one. +The two folders may be any types of folders that Alpine can normally use. +They don't have to be a remote folder and a local folder, that is +simply the most common usage. +When you use a Mail Drop folder Alpine will periodically re-open the Mail +Drop to check for new mail. +The new-mail checks will happen at the frequency set with the +Mail-Check-Interval option, +but with a minimum time +(MailDrop-Check-Minimum) +between 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. +If the user initiates the check by typing ^L (Ctrl-L) or the Next command when at +the end of the folder index, then the check will happen, regardless of how +long it has been since the previous check. +

+If there is new mail, that mail will be copied to the destination folder +and then will be deleted from the Mail Drop. +Note that using a Mail Drop with a local destination folder does not make +sense if you read mail from more than one machine, because the mail is +downloaded to the destination folder (which is accessible from only one +machine) and deleted from the Mail Drop. +

+The feature Maildrops-Preserve-State +modifies the operation of Mail Drops. + +

+The actual syntax used by Alpine for a folder that uses a Mail Drop is: + +

+

#move<DELIM><MailDropFolder><DELIM><DestinationFolder>
+

+The brackets are not literal. +

+

<DELIM>
+

+is a single character which does not appear in the MailDropFolder name. +If the name doesn't contain spaces then it can be a space character. +The two folder names are full technical +folder names +as used by Alpine. +Here are a couple examples to give you an idea what is being talked about: + +

+

#move {popserver.example.com/pop3}inbox localfolder
+

+

#move+{nntpserver.example.com/nntp}#news.comp.mail.pine+local folder
+

+ +A #move folder may only be used as an +Incoming folder or +an Inbox. +When you are in the FOLDER LIST of Incoming Message Folders (after turning +on the Enable-Incoming-Folders option) +the Add command has a subcommand "Use Mail Drop" +which may be helpful for defining the folder in your Alpine configuration. +The same is true when you edit the +Inbox-Path +option in Setup/Config. + +if it doesn't already exist. +If you are having problems, make sure the DestinationFolder exists. +

+ +


+ +

Sorting a Folder

+ +The mail index may be sorted by arrival, date, subject, +from, size, score, to, or cc 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. +Sorting by Thread was added after OrderedSubj +and is usually a better method. +Thread sorting uses information in the message headers References, +Message-ID, and Subject. +It is possible the sort will be slightly slower with a Thread sort than +with an OrderedSubj sort. +The +sort by sender sorts by the user-id (part before the "@"), not the full name. +The arrival sort is 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 Alpine, only the first sort is slow since Alpine +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. Alpine will show progress as it is sorting.

+ +


+ +

Alternate Editor

+ +In the Alpine 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 +Alpine 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. +If the feature enable-sigdashes +is turned on then the line consisting of the +three characters "-- " is prepended to the signature file. +When Replying or Forwarding a message different signatures my be automatically +included by configuring them in the +Roles +setup screen. +It's easy to include different signatures by hand, 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. +

+ +Alpine'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. +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

+ +Alpine used to have feature levels for +users with different amounts of experience. +We found that this was too restrictive. Alpine 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 description of each in Configuration Features. There is also 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.

+ +


+ +

Configuration Inheritance

+ +We start with an explanation of how configuration works in hopes of making +it easier to describe how inheritance works. +

+Alpine uses a hierarchy of configuration values from different locations. +There are five ways in which each configuration option (configuration +variable) can be set. +In increasing order of precedence they are: +

+

    +
  1. the system-wide configuration file. + +
  2. the personal configuration file + +
  3. the personal exceptions file + +
  4. a command line argument + +
  5. the system-wide fixed configuration file (Unix Alpine only) +
+

+The fixed configuration file is normally +/usr/local/lib/pine.conf.fixed. +

+The system-wide configuration file is normally +/usr/local/lib/pine.conf for Unix Alpine and is normally not +set for PC-Alpine. +For PC-Alpine, if the environment variable $PINECONF is set, that +is used for the system-wide configuration. +This location can be set or changed on the command line with the -P flag. +The system-wide configuration file can be either a local file or a +remote configuration folder. +

+For Unix Alpine, the personal configuration file is normally the file +.pinerc in the user's home directory. +This can be changed with the -p command line flag. +For PC-Alpine, the personal configuration file is in +$PINERC or <PineRC registry value> or +${HOME}\ALPINE\PINERC or +<ALPINE.EXE dir>\PINERC. +This can be changed with the -p command line flag. +If -p or $PINERC is used, the configuration data may be in +a local file or a remote config folder. +

+For Unix Alpine, the personal exceptions configuration file is +specified with the "-x exceptions_config" command line argument. +"Exceptions_config" may be either a local file or a remote +configuration folder. +If there is no "-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, the personal exceptions configuration file is +specified with the "-x exceptions_config" command line argument. +If there is no "-x" command line argument the environment +variable $PINERCEX may be set to the name of the +"exceptions_config" instead. +"Exceptions_config" may be either a local file or a remote +configuration folder. +If there is no "-x" command line option and $PINERCEX +is not set, +PC-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 PC-Alpine looks in the +local directory specified by the "-aux local_directory" command +line argument, or the directory ${HOME}\ALPINE, or +in <ALPINE.EXE directory> for a file named +"PINERCEX". +

+To reiterate, the value of a configuration option is taken from the +last location in the list above in which it is set. +Or, thinking about it slightly differently, a default value for an option +is established in the system-wide configuration file (or in the source +code if there is no value in the system-wide file). +That default remains in effect until and unless it is overridden by a value in a +location further down the list, in which case a new "default" +value is established. +As we continue down the list of locations we either retain the +value at each step or establish a new value. +The value that is still set after going through the whole list of +configuration locations is the one that is used. +

+So, for example, if an option is set in the system-wide configuration +file and in the personal configuration file, but is not set in the +exceptions, on the command line, or in the fixed file; then the value +from the personal configuration file is the one that is used. +Or, if it is set in the system-wide config, in the personal config, not +in the exceptions, but is set on the command line; then the value +on the command line is used. +

+Finally we get to inheritance. +For configuration options which are lists, like "smtp-server" or +"incoming-folders", +the inheritance mechanism makes it possible to combine +the values from different locations instead of replacing the value. +This is true of all configuration lists other than the "feature-list", +for which you may already set whatever you want at +any configuration location (by using the "no-" prefix if +necessary). +

+To use inheritance, set the first item in a configuration list to the +token "INHERIT". +If the first item is "INHERIT", +then instead of replacing the default value established so far, the rest of +the list is appended to the default value established so far and that is +the new value. +

+Here is an example which may make it clearer. Suppose we have: +

+

+ System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
+ Personal config    :   smtp-server = INHERIT, mysmtp.home
+ Exceptions config  :   smtp-server = <No Value Set>
+ Command line       :   smtp-server = <No Value Set>
+ Fixed config       :   smtp-server = <No Value Set>
+
+

+ +This would result in an effective smtp-server option of +

+

+ smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home
+
+

+The "INHERIT" token can be used in any of the configuration files +and the effect cascades. +For example, if we change the above example to: +

+

+ System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
+ Personal config    :   smtp-server = INHERIT, mysmtp.home
+ Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
+ Command line       :   smtp-server = <No Value Set>
+ Fixed config       :   smtp-server = <No Value Set>
+
+

+ +This would result in: +

+

+ smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home, yoursmtp.org
+
+

+Unset variables are skipped over (the default value is carried forward) so +that, for example: +

+

+ System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
+ Personal config    :   smtp-server = <No Value Set>
+ Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
+ Command line       :   smtp-server = <No Value Set>
+ Fixed config       :   smtp-server = <No Value Set>
+
+

+ +produces: +

+

+ smtp-server = smtp1.corp.com, smtp2.corp.com, yoursmtp.org
+
+

+ +If any later configuration location has a value set (for a particular list +option) which does not begin with "INHERIT", +then that value replaces whatever value has been defined up to that point. +In other words, that cancels out any previous inheritance. +

+

+ System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
+ Personal config    :   smtp-server = INHERIT, mysmtp.org
+ Exceptions config  :   smtp-server = yoursmtp.org
+ Command line       :   smtp-server = <No Value Set>
+ Fixed config       :   smtp-server = <No Value Set>
+
+

+ +results in: +

+

+ smtp-server = yoursmtp.org
+
+

+ +For some configuration options, like "viewer-hdr-colors" or +"patterns-roles", it is +difficult to insert the value "INHERIT" into the list of values +for the option using the normal Setup tools. +In other words, the color setting screen (for example) does not +provide a way to input the text "INHERIT" as the first +item in the viewer-hdr-colors option. +The way to do this is to either edit the pinerc file directly and manually +insert it, or turn on the "expose-hidden-config" feature and insert it +using the Setup/Config screen. +

+ +


+ +

Using Environment Variables

+ +The values of Alpine configuration options may include environment variables +which are replaced by the value of the variable at the time Alpine is run +(and also at the time the config option is changed). +The syntax to use environment variables is a subset of the common Unix +shell dollar-syntax. +For example, if + +

$VAR

+ +appears in the value of a Alpine configuration option it is looked up in the +environent (using getenv("VAR")) and its +looked-up value replaces the $VAR part of the option value. +To include a literal dollar sign you may precede the dollar sign with another +dollar sign. +In other words, if the text + +

$$text

+ +is the value of a configuration option, it will be expanded to + +

$text

+ +and no environment lookup will be done. +For Unix Alpine it will also work to use a backslash character to +escape the special meaning of the dollar sign, but $$ is preferable since +it works for both PC-Alpine and Unix Alpine, allowing the configuration option +to be in a shared configuration file. +

+ +This all sounds more complicated than it actually is. +An example may make it clearer. +Unfortunately, the way in which environment variables are set is OS-dependent +and command shell-dependent. +In some Unix command shells you may use + +

PERSNAME="Fred Flintstone"

+

export PERSNAME

+ +Now, if you use Alpine's Setup/Config screen to set + +

personal-name=$PERSNAME

+ +the $PERSNAME would be replaced by Fred Flintstone +so that this would be equivalent to + +

personal-name=Fred Flintstone

+ +Note, environment variable substitution happens after configuration +options which are lists are split into the separate elements of the list, +so a single environment variable can't contain a list of values. + +

+The environment variable doesn't have to be the only thing +after the equal sign. +However, if the name of the variable is not at the end of the line or +followed by a space (so that you can tell where the variable name ends), +it must be enclosed in curly braces like + +

${VAR}

+ +It is always ok to use the braces even if you don't need to. +

+It is also possible to set a default value for an environment variable. +This default value will be used if the environment variable is not +set (that is, if getenv("VAR") returns NULL). +The syntax used to set a default value is + +

${VAR:-default value}

+ +If the config file contains + +

personal-name=${VAR:-Fred Flintstone}

+ +then when Alpine is run VAR will be looked up in the environment. +If VAR is found then personal-name will have +the value that VAR was set to, otherwise, +personal-name will be set to Fred Flintstone, +the default value. + +

+An example where an environment variable might be useful is the +variable inbox-path in the global configuration file. +Suppose most users used the server + +

imapserver.example.com

+ +but that there were some exceptions who used + +

altimapserver.example.com

+ +In this case, the system manager might include the following line in +the systemwide default Alpine configuration file + +

inbox-path=${IMAPSERVER:-imapserver.example.com}

+ +For the exceptional users adding + +

IMAPSERVER=altimapserver.example.com

+ +to their environment should work. +

+Another example might be the case where a user has to use a different +SMTP server from work and from home. +The setup might be something as simple as + +

smtp-server=$SMTP

+ +or perhaps a default value could be given. +Note that, as mentioned above, the variable SMTP cannot contain +a list of SMTP servers. +

+ +


+ +

SMTP Servers

+ +It is sometimes desirable to set smtp-server=localhost +instead of setting +sendmail-path +to overcome the inability to +negotiate ESMTP options when sendmail is invoked with the +-t option. Sendmail can also be subject to unacceptable delays +due to slow DNS lookups and other problems.

+ +It is sometimes desirable to configure an SMTP server on a port other +than the default port 25. This may be used to provide an alternate +service that is optimized for a particular environment or provides +different features from the port 25 server. An example would be a program +that negotiates ESMTP options and queues a message, but does not attempt +to deliver messages. This would avoid delays frequently encountered when +invoking sendmail directly.

+ +A typical configuration would consist of + +

+ +
+ +

MIME.Types file

+ +Alpine's MIME-TYPE support is based on code contributed by Hans Drexler +<drexler@mpi.nl>. Alpine assigns MIME Content-Types according +to file name extensions found in the system-wide files +/usr/local/lib/mime.types and /etc/mime.types, +and a user specific ~/.mime.types file.

+ +In Windows, +Alpine looks in the same directory as the PINERC file and +the same dir as ALPINE.EXE. This is similar to the UNIX situation with +personal config info coming before potentially shared config data. An +alternate search path can be specified by setting the +mimetype-search-path +variable in the user or system-wide +configuration or by setting the MIMETYPES environment +variable.

+ +These files specify file extensions that will be connected to a mime type. +Lines beginning with a '#' character are treated as comments +and ignored. All other lines are treated as a mime type definition. The +first word is a type/subtype specification. All following words +are file extensions belonging to that type/subtype. Words are +separated by whitespace characters. If a file extension occurs more than +once, then the first definition determines the file type and subtype. +A couple sample lines from a mime.types file follow:

+ +

+image/gif         gif
+text/html         html htm
+video/mpeg        mpeg mpg mpe
+
+ +
+ +

Color Details

+ +UNIX Alpine may display color if the terminal or terminal emulator you +are using is capable of displaying colors. +If the terminal supports ANSI color escape sequences you will be able to +turn color on using the color-style +option and setting it to the value force-ansi-8color or +force-ansi-16color. +If instead you'd like Alpine to automatically detect whether or not +you are on a color terminal, set color-style to use-termdef +and configure the termcap entry to describe your terminal's +color capabilities. +

+ +If the color-style option is set to use-termdef, +Alpine looks in +the terminal capabilities database, TERMINFO or TERMCAP, depending on +how Alpine was compiled, to decide whether or not your terminal is +capable of color. +For TERMINFO compiled Alpines, the capabilities that are used for +color are +"colors", "setaf", "setab", +"op", and "bce". +If you have a terminal with color capabilities described by +the "scp" capability, Alpine does not support it. +The capabilities +"setf" and "setb" may be used instead of +"setaf" and "setab". +The capability "bce" is optional and is used as an optimization, +the other capabilities are required. +For TERMCAP compiled Alpines, the capabilities that are used for +color are +"Co", "AF", "AB", "op", +and "ut". +The capabilities +"Sf" and "Sb" may be used instead of +"AF" and "AB", though this isn't a useful feature. +

+ +Here are some short descriptions of the capabilities listed +above. +The TERMINFO name is listed, followed by the TERMCAP name in parentheses. +

+ +
colors (Co) + +
The number of different colors. +

+ +

setaf (AF) + +
Set ANSI foreground color. +

+ +

setab (AB) + +
Set ANSI background color. +

+ +

setf (Sf) + +
Set foreground color. Alternate form of setaf. +

+ +

setb (Sb) + +
Set background color. Alternate form of setab. +

+ +

op (op) + +
Set default pair to its original value. +

+ +

bce (ut) + +
Screen is erased with current background color instead +of default background. +

+ +

+

+

+A standard ANSI terminal which supports color will have +a TERMINFO entry which contains: +

+  colors#8
+  setaf=\E[3%p1%dm
+  setab=\E[4%p1%dm
+  op=\E[39;49m
+  bce
+
+

+or the TERMCAP equivalent: +

+  Co#8
+  AF=\E[3%dm
+  AB=\E[4%dm
+  op=\E[39;49m
+  ut
+
+

+ +If there are eight colors, the program uses colors 0, 1, ..., 7. +For an ANSI terminal, the foreground color is set by sending the escape +sequence "Escape LeftBracket 3 color_number m" to the terminal. +The background color is set by sending the sequence +"Escape LeftBracket 4 color_number m". +ANSI colors zero through seven are defined to be "black", +"red", "green", "yellow", "blue", +"magenta", "cyan", and "white". +Some terminal emulators will swap blue and red and swap yellow and cyan. +The capabilities "setf" and "setb" are usually designed +for those terminals so that they will flip the color numbers 1 and 4 and +the numbers 3 and 6 to compensate for this. +Alpine will use the ANSI versions of the capabilities if they exist, +and will use the non-ANSI versions (setf and setb) if the ANSI versions +don't exist. +Here's a version which does the flipping. +This can only be used with TERMINFO Alpines, because of the arithmetic, +which is not supported by TERMCAP. +

+  colors#8
+  setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
+  setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
+  op=\E[39;49m
+  bce
+
+

+ +Some terminal emulators are capable of displaying eight more colors when +the foreground colors 30-37 are replaced with 90-97 and the background +colors 40-47 are replaced with 100-107. +These terminals require a fancy termcap entry which can take foreground +colors 0, 1, ..., 15 and map that into 30, 31, ..., 37, 90, 91, ..., 97, +and similarly for the background colors. +Here is a terminfo entry which will do just that: +

+  colors#16
+  setaf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%dm
+  setab=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%dm
+  op=\E[39;49m
+  bce
+
+and here is the termcap equivalent: +
+  Co#16
+  AF=\E[%i%i%>\001\034%>\045\064%dm
+  AB=\E[%i%i%>\001\046%>\057\064%dm
+  op=\E[39;49m
+  ut
+
+

+This is a terminfo entry for 16 colors that also does the color flipping: +

+  colors#16
+  setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
+  setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
+  op=\E[39;49m
+  bce
+
+

+ +If you are always using the same display it probably won't matter to you +if the color pairs red/blue and cyan/yellow are flipped, since you'll +always be seeing them flipped. +You will get different defaults than on a display with them not flipped, +but that's about all. +If you are trying to use the same pinerc file from displays with different +color characteristics, or from Alpine and PC-Alpine, you will +have to be more careful. +The colors numbered 0 through 7 may be used portably between different +systems if you are careful to make them correspond to the ANSI order mentioned +above. +You can check this by looking at a color configuration screen for one of the +colors. +The first eight colors should be in the order above. +If they aren't, you could fix that by modifying your termcap entry on +the UNIX system. +This is not possible if your system uses TERMCAP instead of TERMINFO. + +


+ +

S/MIME Overview

+ +UNIX Alpine only. +

+S/MIME is a standard for the public key encryption and signing of email. +UNIX Alpine contains a basic implementation of S/MIME based on +the OpenSSL libraries. +

+Some limitations: +

+

+The S/MIME configuration screen is reached by going to the Main Menu and typing +the "S Setup" command followed by "M S/MIME". +

+ +

S/MIME BASICS

+ +In order to digitally sign messages you send you must have a public/private key-pair. +This may be obtained from a public Certificate Authority (CA) such as Thawte, Verisign, Comodo, +or GoDaddy; or from a smaller CA such as a university which provides certificates for its +users or a company which provides certificates for its workers. +These certificates are bound to an email address, so the identity being verified is the +email address not a person's name. +

+Mail is signed by using the sender's private key, which only the owner of the private key +has access to. +The signature is verified using the signer's public key, which anyone can +have access to. +With Alpine, the first time you receive a signed message the public key of the +sender will be stored for future use. + +

+Mail is encrypted using the recipient's public key and decrypted by +the recipient with their private key. + +

+You need a key of your own in order to sign outgoing messages and to have others +encrypt messages sent to you. +You do not need a key of your own to verify signed messages sent by others or to +encrypt messages sent to others. + +

ALPINE S/MIME CERTIFICATE STORAGE

+ +By default UNIX Alpine stores the certificates it uses in a directory in your +home directory. +The directory name is +

+

.alpine-smime
+

+Within that directory are three subdirectories. +Each of the three subdirectories contains files with PEM-encoded contents, +the default format for OpenSSL. +The "public" directory contains public certificates. +The files within that directory have names that are email addresses with the +suffix ".crt" appended. +An example filename is +

+

user@example.com.crt
+

+The "private" directory contains private keys, probably just one for +your private key. +These are also email addresses but with the suffix ".key" instead. +The third directory is "ca" and it contains certificates for any Certificate +Authorities that you want to trust but that aren't contained in the set of system CAs. +Those files may have arbitrary names as long as they end with the +suffix ".crt". + +

HOW TO SIGN AND ENCRYPT

+ +If you have a certificate you may sign outgoing messages. +After typing the Ctrl-X command to send a message you will see the prompt +

+

Send message?
+

+Available subcommands include "G Sign" and "E Encrypt". +Typing the "G" command will change the prompt to +

+

Send message (Signed)?
+

+Typing the "E" command will change the prompt to +

+

Send message (Encrypted)?
+

+You may even type both to get +

+

Send message (Encrypted, Signed)?
+

+ +

HOW TO READ SIGNED OR ENCRYPTED MESSAGES

+ +The reading of a signed message should not require any special action on +your part. +There should be an editorial addition at the start of the message which +says either +

+

This message was cryptographically signed.
+

+or +

+

This message was cryptographically signed but the signature could not be verified.
+

+If an encrypted message is sent to you the encrypted text will not +be shown. +You will have to type the "Ctrl-D Decrypt" command (from the screen where +you are viewing the message) and supply your passphrase when asked. +

+For a signed or encrypted message there is also a "Ctrl-E Security" command +which gives you some information about the certificate used to sign or encrypt the message. + +

MISCELLANEOUS

+ +You may have access to a private certificate in the PKCS12 format, +which would sometimes be in a file with a ".p12" suffix. +The UNIX shell command +

+

openssl pkcs12 -in file.p12 -out file.pem
+

+may work to convert that from the PKCS12 format to the PEM format. +Then that file could be placed in the "private" +directory with a filename of your email address followed by the +suffix ".key". + +


+ +

Additional Notes on PC-Alpine

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

+ +As PC-Alpine 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-Alpine: + +

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

+ +By popular demand of system administrators, PC-Alpine has been modified to +prevent sending messages until the user has successfully logged into a +remote mail server. Even though PC-Alpine cannot prevent users from +changing the apparent identity of the sender of a message, the IMAP server +login name and 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-Alpine has no user database to consult for user-id, +personal-name, etc., necessary information must be provided by +the user/installer before PC-Alpine can properly construct the "From" +address required for outbound messages. PC-Alpine 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 +Alpine session, and no opportunity to save them in the PINERC will +be offered.

+ +Another feature of DOS is the lack of standard scratch area for temporary +files. During the course of a session, PC-Alpine 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-Alpine observes the +TMPDIR, TMP, and +TEMP environment variables, and creates temporary files in the +directory specified by either. In their absence, PC-Alpine creates these +files in the root of the current working drive. +Some temporary files have to be created in the same directory as the file +they are a temporary copy of. For example, a pinerc file or a address book +file. +

+ + + + + diff --git a/doc/tech-notes/config.html b/doc/tech-notes/config.html new file mode 100644 index 00000000..b9354838 --- /dev/null +++ b/doc/tech-notes/config.html @@ -0,0 +1,12523 @@ +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-----
+
+

+

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

+

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

+

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

+

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

+

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

+

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

+

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

+

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

+

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

+

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

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

+ +This group is usually correct but may be changed by system managers or +users in special cases. + +

+

+ +System managers are usually interested in setting these in the system-wide +configuration files, though users may set them if they wish. + +

+

+ +

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

+ +

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: +

+

+

+

+

+ +

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: +

+

+

+

+ +
+

+ +

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


+ + + + + diff --git a/doc/tech-notes/for.pnuts b/doc/tech-notes/for.pnuts new file mode 100644 index 00000000..ca60d61d --- /dev/null +++ b/doc/tech-notes/for.pnuts @@ -0,0 +1,9 @@ +index.html +introduction.html +background.html +installation.html +cmd-line.html +config.html + config-notes.html +low-level.html +porting.html diff --git a/doc/tech-notes/index.html b/doc/tech-notes/index.html new file mode 100644 index 00000000..92240e86 --- /dev/null +++ b/doc/tech-notes/index.html @@ -0,0 +1,122 @@ + +Alpine Technical Notes + +

Alpine Technical Notes

+ +Version 2.10, January 2013 + +

Table of Contents

+ +

Introduction

+ + + +

Background Details

+ + + +

Building and Installation

+ + + +

Command Line Arguments

+ + + +

Configuration and Preferences

+ + + +

Behind the Scenes

+ + + + + diff --git a/doc/tech-notes/installation.html b/doc/tech-notes/installation.html new file mode 100644 index 00000000..d36214ae --- /dev/null +++ b/doc/tech-notes/installation.html @@ -0,0 +1,577 @@ +Alpine Technical Notes: Building and Installation +

Building and Installation

+ +

Compile-time Options

+ +Alpine's UNIX build environment +is based on Autotools (the GNU Build System). +Once you've unpacked the source distribution find the file +configure in the top-level directory. +You may look at the many options available by typing +

+

+ ./configure --help +
+ +

+or you could just try building with the command +

+

+ ./configure +
+ +

+ +followed by + +

+

+ make +
+ +

+ +Note, while the UW IMAP Toolkit (whose c-client +library Alpine uses for mailbox access) build is not based on +Autotools, Alpine's configure script should set an +appropriate make target and compilation options for most systems. + +

+ +Some of the following can only be set when you build. Others, +however, can be overridden by command-line flags to Alpine or settings in +Alpine's user or system configuration files. +Some of the options which can be set when building: + +

Including LDAP Functionality

+ +By default, the configure script will attempt to find the LDAP library +support for you. +If you are having trouble with LDAP take a look at the configure options +
+
--with-ldap-dir=DIR +
Specify the root of the LDAP lib/include path. +
--with-ldap-include-dir=DIR +
Specify the LDAP include path. +
--with-ldap-lib-dir=DIR +
Specify the LDAP library path. +
--without-ldap +
Disable LDAP support. +

+ +Alpine uses LDAPv3 protocol. +When using the LDAPv3 protocol, the results are assumed to be in the +UTF-8 character set, which Alpine handles well. +If the LDAP server returns non-ascii data which is not encoded as UTF-8 +you will probably run into problems. +

+ +

Including Kerberos 5 Functionality

+ +This works analogously to the LDAP build. +By default, the configure script will attempt to find the Kerberos library +support for you. +If you are having trouble with Kerberos take a look at the configure options +
+
--with-krb5-dir=DIR +
Specify the root of the Kerberos lib/include path. +
--with-krb5-include-dir=DIR +
Specify the Kerberos include path. +
--with-krb5-lib-dir=DIR +
Specify the Kerberos library path. +
--without-krb5 +
Disable Kerberos support. +

+ +

Other Alpine Compile-time Options

+ +
+ +
--disable-nls +
Do not use Native Language Support. NLS refers to the use of GNU +gettext utilities to localize a program, in the sense that English +is translated to some other language. +At the time this was written the low-level support for NSL is included +in Alpine but no translations have been done. +If there is no translation available, that means that disabling NLS +will make no difference. If you have trouble building which is due +to gettext or libintl you could try this option, or one of the following. + +
--with-libintl-prefix[=DIR] +
--without-libintl-prefix + +
--with-ssl-dir=DIR +
Specify the root of the SSL lib/include path (OpenSSL). +
--with-ssl-include-dir=DIR +
Specify the SSL include path. +
--with-ssl-lib-dir=DIR +
Specify the SSL library path. +
--with-ssl-certs-dir=DIR +
Specify the path to the SSL certificates directory. +
--without-ssl +
Disable SSL support. + +
--without-pthread +
Do not test for nor build with POSIX thread support, which is used +only for the Busy-Cue in the status line at this time. + +
--without-smime +
Disable S/MIME support. + +
--disable-debug +
Never create debug files. + +
--with-smtp-msa=PATH +
Local Mail Submission Agent (sendmail, by default). +
--with-smtp-msa-flags=FLAGS +
MSA flags for SMTP on stdin/stdout (-bs -odb -oem). + +

+ +There are many more options which you can see using the +

+

+ ./configure --help +
+ +

+command. +

+ +

IMAPd Compile-time Options

+ +There are no options or settings required for the version of IMAPd +distributed with Alpine. If you need to be doing more complex modifications +to IMAP, then you should pick up the IMAP development package and work +with that code. The developer's version of IMAP is available for +anonymous ftp from ftp.cac.washington.edu +in the directory mail. The file is called imap.tar.Z. +Unless it has changed since Alpine was released, the directory +imap in the Alpine distribution is the IMAP +development package. +

+The c-client library has not been converted to use the +GNU Build System's autotools. +The Alpine configure script will try to correctly guess +the arguments needed for the c-client make command and will build +the library, but if you need to change anything you should take a +look at imap/docs/BUILD for more detailed instructions. +

+ +


+ +

Building the Alpine Programs

+ +You may have already compiled Alpine and tried it out. If so, great! If +not, you should be able to do it without too much trouble by following +these step-by-step instructions:

+ +

    + +
  1. Make sure you're in the root of the Alpine source. When you type +ls you should see the following files and directories (or +something close to it): + +
    +aclocal.m4    config.sub    imap        Makefile.am    packages  web
    +alpine        configure     include     Makefile.in    pico
    +build.bat     configure.ac  install-sh  mapi           pith
    +build.cmd     contrib       LICENSE     missing        po
    +config.guess  depcomp       ltmain.sh   mkinstalldirs  README
    +config.rpath  doc           m4          NOTICE         VERSION
    +
    +

    + +

  2. Give the command ./configure +Configure should grind away for a few minutes.

    + +

  3. When configure is complete, give the command make. +If make stops and asks + +

    +

    + Do you want to build with IPv6 anyway? Type y or n please: +
    + +

    +you should answer with a 'y'. +The compiler should grind away for a few minutes. The Alpine +binary will end up in .../alpine/alpine and the +Pico and Pilot binaries in .../pico/pico +and .../pico/pilot. Other binaries you may be interested +in are .../alpine/rpdump and .../alpine/rpload +and c-client binaries in the directories .../imap/imapd, +.../imap/ipopd, .../imap/mailutil, and so on. +

    + +

  4. If you need to try again, make sure you're getting a clean start by giving the command +make clean.

    + +

+

+ +


+ +

Installing Alpine and Pico on UNIX Platforms

+ +Installing Alpine and Pico is simple. You take the program files +which you have just transferred or built and you move them to the correct +directory on your system. Most often the binaries go in +/usr/local/bin though sometimes they are placed in +/usr/bin. All the help text is compiled into Alpine so there +are no required auxiliary files. Instead of copying the +binaries manually, you may use make install to install +them.

+ +There are three optional auxiliary files: +/usr/local/lib/pine.info, +/usr/local/lib/pine.conf, and +/usr/local/lib/pine.conf.fixed. The file +pine.info contains text on how to get further help on the +local system. It is part of the help text for the +main menu and should probably refer to the local help desk or the system +administrator. If this file doesn't exist a generic version which +suggests ``talking to the computer support staff at your site'' is shown. +The file pine.conf is used to set system-wide default +configurations for Alpine. The file pine.conf.fixed is also +used to set system-wide default configurations for Alpine. +The difference +between these two files is that configuration variables set in the +pine.conf.fixed file may not normally be over-ridden by a +user. See the section on Alpine Configuration +later in this document for details about +the pine.conf and pine.conf.fixed files.

+ +


+ +

Installing PC-Alpine

+ +

+The PC-Alpine distribution comes as a .zip file. To install, unzip the +files to a directory where you would like the program to reside. Modern +Windows versions come with the capability of unzipping .zip files. Failing +that, you can use one of the many .zip file extractors out there. +Following current Windows conventions, a common directory into which the files +could be extracted would be C:\Program Files\PC-Alpine\. + +

+Having extracted PC-Alpine's .zip file to the directory of choice, you can +now run that directory's alpine.exe, which is the actual PC-Alpine program. +For convenience, you could place shortcuts to it on the task bar, start +menu, etc. + +

+Upon first running PC-Alpine, you may be asked where you would like to +access your Configuration file (called the pinerc). This +is useful in accessing already existing configuration files, and it +does not matter where this file gets created. If you are connecting +to an IMAP server to access your email, it is also possible to store +this Configuration data on that server, which facilitates accessing +the same configuration from multiple machines (in fact, your configuration +may have already been set up this way for use with other Alpine programs). + +

+After having established the location of the configuration file, it may be +necessary to specify a few configuration settings before reading or sending +mail. You may be prompted for the following (which may also be edited from +the (S)etup (C)onfig screen from the Main Menu): + +

  • Folder to open as inbox (or inbox-path) - This can +be an inbox residing on an IMAP or POP3 server, or one residing locally. +An example of an INBOX for an IMAP server is: +{server.example.com}INBOX. + +
  • User-id, Personal name, and +host/domain, which are to be used as your email address. + +
  • SMTP server to forward message - You must enter your SMTP +server before you can send any messages. + +

    +At this point, you will be able to read and send email messages. There are, +however, many more preferences that you can set in the Configuration +screen. +


    + +

    Installing IMAPd

    + +When the Alpine distribution is built on a UNIX system, the IMAP server +binary, imapd, is compiled. Installing imapd +requires placing the binary in the appropriate directory, usually +/usr/etc, and adding entries to /etc/services +and /etc/inetd.conf or their counterparts. +

    +Instead of including installation instructions here we'll just include +a pointer to detailed instructions in the c-client distribution. +Please take a look at the file +imap/docs/BUILD in the source tree. + +


    + +

    Support Files and Environment Variables: UNIX Alpine

    + +This section lists the various files which Alpine uses which are not email +folders. All of these are the default names of files, they may vary based +on Alpine's configuration. + +
    + +
    /usr/local/lib/pine.conf + +
    Pine's global configuration file. + +
    /usr/local/lib/pine.conf.fixed + +
    Non-overridable global configuration file. + +
    /usr/local/lib/pine.info + +
    Local pointer to system administrator. + +
    ~/.pinerc + +
    Personal configuration file for each user. + +
    ~/.pinercex + +
    Personal exceptions configuration file for each user. + +
    ~/.addressbook + +
    Personal addressbook + +
    ~/.newsrc + +
    Personal USENET subscription list. This is shared with other +newsreading programs. + +
    ~/.pine-debugX + +
    The files created for debugging Alpine problems. By default, there are +4 .pine-debug files kept at any time. + +
    ~/.signature + +
    A signature file which will be included in all outgoing email +messages. + +
    ~/.pine-interrupted-mail + +
    The text of a message which was interrupted by some unexpected error +which Alpine detected. + +
    ~/mail/postponed-msgs + +
    A folder of messages which the user chose to postpone. + +
    /etc/mailcap + +
    System-wide mail capabilities file. Only used if +$MAILCAPS not set. + +
    ~/.mailcap + +
    Personal mail capabilities file. Combines with system-wide mailcap. +Only used if $MAILCAPS not set. + +

    + +The location of the following support files may be controlled by variables +in the personal or global Alpine configuration file: signature, addressbook +and its index file, postponed messages, and newsrc.

    + +Unix Alpine uses the following environment variables: + +

    + +
    TERM + +
    Tells Alpine what kind of terminal is being used. + +
    DISPLAY + +
    Determines if Alpine will try to display IMAGE attachments. + +
    TMPDIR, TMP, or TEMP + +
    Specifies location of temporary storage area, first one set wins + +
    SHELL + +
    If not set, default is /bin/sh + +
    MAILCAPS + +
    A semicolon delimited list of path names to mailcap files.

    + +

    + +
    + +

    Support Files, Environment Variables, and Registry Settings: PC-Alpine

    + +This section lists the various files which PC-Alpine uses which are not +normal mail folders. All of these are the default names of files, they +may vary based on Alpine's configuration.

    + +

    + +
    $PINERC or <PineRC registry value> or $HOME\PINE\PINERC or +<PINE.EXE dir>\PINERC + +
    Path to (required) personal configuration file. + +
    $PINERCEX or $HOME\PINE\PINERCEX or <PINE.EXE dir>\PINERCEX + +
    Path to personal exceptions configuration file. + +
    $PINECONF + +
    Path of optional global configuration file. + +
    <PINERC directory>\ADDRBOOK + +
    Personal addressbook + +
    <PINERC directory>\PINEDEBG.TXT + +
    Location of Alpine debug file. + +
    <PINERC directory>\MAILCAP and/or <PINE.EXE dir>\MAILCAP + +
    These paths are only used if $MAILCAPS not set. + +
    $HOME\NEWSRC or <PINERC directory>\NEWSRC + +
    Personal USENET subscription list. This may be shared with other +newsreading programs. + +
    $HOME\MAIL\INTRUPTD + +
    The text of a message which was interrupted by some unexpected error +which Alpine detected. + +
    $HOME\MAIL\POSTPOND + +
    A folder of messages which the user chose to postpone. + +

    +Registry Values: +

    + +
    HKEY_LOCAL_MACHINE\Software\University of Washington\Alpine\1.0 + +
    Pinedir: The directory that contains the Alpine executable. + +
    PineEXE: The name of the Alpine executable (most commonly +"alpine.exe"). + +
    HKEY_CURRENT_USER\Software\University of Washington\Alpine\1.0 + +
    PineRC: The path that points to the default pinerc to use. + +
    HKEY_LOCAL_MACHINE\Software\Clients\Mail\Alpine + +
    DLLPath: The path that points to Alpine's pmapi32.dll. + +
    HKLM\Software\Clients\Mail\Alpine\shell\open\command + +
    (Default): When set as the default mailer, this is the +command that is run by external programs. + +
    HKLM\Software\Clients\Mail\Alpine\Protocols\Mailto\DefaultIcon + +
    (Default): This points to the icon to display in relation to +Alpine's mailto URL rendering. + +
    HKLM\Software\Clients\Mail\Alpine\Protocols\Mailto\shell\open\command + +
    (Default): This value is the command that gets run by external +programs when a mailto URL is run with PC-Alpine set as the +default mailer. + +
    HKLM\Software\Clients\News\Alpine\shell\open\command + +
    (Default): When set as the default newsreader, this is the + command that is run by external programs. + +
    HKLM\Software\Clients\News\Alpine\Protocols\news\DefaultIcon + +
    (Default): This points to the icon to display in relation to + Alpine's news URL rendering. + +
    HKLM\Software\Clients\News\Alpine\Protocols\news\shell\open\command + +
    (Default): This value is the command that gets run by external +programs when a news URL is run with Alpine set as the +default newsreader. + +
    HKLM\Software\Clients\News\Alpine\Protocols\nntp\DefaultIcon + +
    (Default): This points to the icon to display in relation to +Alpine's nntp URL rendering. + +
    HKLM\Software\Clients\News\Alpine\Protocols\nntp\shell\open\command + +
    (Default): This value is the command that gets run by external +programs when a nntp URL is run with Alpine set as the +default newsreader. + +

    +Alpine's personal configuration file +may be in the same directory as the executable, or if that is inconvenient +because the executable is on a shared or read-only drive, then it can be +in a file named by the $PINERC environment variable, or in +$HOME\ALPINE\PINERC, where if not set, $HOME +defaults to the root of the current working drive.

    + +Most of the other support files key off of the location of the +PINERC file. However, in the case of the NEWSRC file, the +path $HOME\NEWSRC is checked first. Also, the postponed +messages and interrupted message folders are placed in the default folder +collection, normally in the directory $HOME\MAIL.

    + +The location of the following support files may be controlled by variables +in the personal or global Alpine configuration file: signature, addressbook +(and its index file), postponed messages, and newsrc.

    + +PC-Alpine uses the following environment variables: + +

    + +
    PINERC + +
    Overrides default path to pinerc file. + +
    PINERCEX + +
    Overrides default path to personal exceptions configuration file. + +
    PINECONF + +
    Optional path to global Alpine config file. + +
    HOME + +
    If not set, Alpine uses the root of the current drive, e.g. C: + +
    TMPDIR, TMP, or TEMP + +
    Specifies location of temporary storage area, first one set wins + +
    COMSPEC + +
    Specifies shell for external commands. + +
    MAILCAPS + +
    A semicolon delimited list of path names to mailcap files. + +

    + + + + + diff --git a/doc/tech-notes/introduction.html b/doc/tech-notes/introduction.html new file mode 100644 index 00000000..d7293842 --- /dev/null +++ b/doc/tech-notes/introduction.html @@ -0,0 +1,122 @@ +Alpine Technical Notes: Introduction +

    Introduction

    + +

    Design Goals

    + +Throughout Alpine development, we have had to strike a balance +between the +need to include features which advanced users require and the need to keep +things simple for beginning users. To strike this balance, we have tried +to adhere to these design principles:

    + +

    + +
    + +
    - The model presented to the user has to be simple and +clear. Underlying system operation is hidden as much as possible. + +
    + +
    - It's better to have a few easily understood commands that can be +repeated than to have some more sophisticated command that will do the job +all at once. + +
    + +
    - Whenever the user has to select a command, file name, address, +etc., the user should be given (or can get) a menu from which to make the +selection. Menus need to be complete, small, organized and well thought +out. + +
    + +
    - Alpine must provide immediate feedback for the user with each +operation. + +
    + +
    - Alpine must be very tolerant of user errors. Any time a user is +about to perform an irreversible act (send a message, expunge messages +from a folder), Alpine should ask for confirmation. + +
    + +
    - Users should be able to learn by exploration without fear of doing +anything wrong. This is an important feature so the user can get started +quickly without reading any manuals and so fewer manuals are required. + +
    + +
    - The core set of Alpine functions should be kept to a +minimum so new +users don't feel "lost" in seemingly extraneous commands and concepts. +

    + +

    + +Just as there were goals relating to the look and feel of Alpine, +there were +equally important goals having to do with Alpine's structure-the +things that +users never see but still rely on every time they use Alpine. +While Alpine +can be used as a stand-alone mail user agent, one of its strongest assets +is its use of the Internet Message Access Protocol (IMAP) for accessing +remote email folders. In addition, Pine (the predecessor of Alpine) was one of +the first programs to +support the Multipurpose Internet Mail Extensions (MIME) specification. +With MIME, Alpine users can reliably send any binary file to any other +person on the Internet who uses a MIME compliant email program.

    + +The decision to use IMAP and MIME reflects the importance of +interoperability, standardization and robustness in Alpine. As you work +with Alpine more, you will see other features which reflect +the same values. +For example, Alpine enforces strict compliance with RFC 2822, implements a +strong mail folder locking mechanism and verifies a process before +overwriting any files (e.g. addressbook, expunging messages).

    + +

    Alpine Components

    + +If you have picked up the Alpine distribution, then you already know that +Alpine comes in a few different pieces. They are:

    + +

    + +
    Alpine + +
    The main code from which the Alpine program is compiled.

    + +

    Pico + +
    Pico is the name for the Alpine composer. +The Pico code is used in two +ways: (1) it is compiled on its own to be a stand-alone editor and, (2) +it is compiled as a library for Alpine to support composition +of messages within Alpine. +Pico is Alpine's internal editor invoked when users +need to fill in header lines or type the text of an email message.

    + +

    Imap + +
    An API for IMAP. Includes the C-Client library, which is compiled +into Alpine, and the IMAP server IMAPd. +C-Client implements the IMAP +protocol and also negotiates all access between Alpine and +the mail folders +it operates on, even if the folders are local. +The C-Client routines are used for email folder parsing +and interpreting MIME messages. IMAPd is a separate server that handles +IMAP connections from any IMAP-compliant email program. When Alpine +accesses a remote mailbox, the Alpine program is the IMAP client and the +IMAPd program is the IMAP server. Of course, Alpine can +use any IMAP-compliant IMAP server, not just IMAPd.

    + +

    + + + + + + diff --git a/doc/tech-notes/low-level.html b/doc/tech-notes/low-level.html new file mode 100644 index 00000000..ee5264ac --- /dev/null +++ b/doc/tech-notes/low-level.html @@ -0,0 +1,975 @@ +Alpine Technical Notes: Behind the Scenes +

    Behind the Scenes

    + +Many people ask how certain Alpine features are implemented. This section +outlines some of the details. + +

    Address Books

    + +There are two types of address book storage. There +are local address books, which are the address books that are +stored in a local file; and there +are remote address books, which are stored on an IMAP server. + +

    Information About Remote Address Books

    + +
    +NOTE: The remote address book capability does not allow you to access an +existing local address book from a remote system! That is, you can't set +the remote address book to something like {remote.host}.addressbook +and expect to access the existing .addressbook file +on remote.host. Instead, you need to create a new remote address book in +a new, previously unused remote mail folder. Then you can use the +Select and Apply Save commands in the address book screen to +Save all of the entries from an existing local address book to +the new remote address book. +
    +

    + +A remote address book is stored in a mail folder on an +IMAP server. +An Alpine remote address book is just like an Alpine local address book +in that it is not interoperable with other email clients. +The folder is a regular folder containing mail messages but +those messages are special. The first message must be an alpine remote +address book header message which contains the header x-pine-addrbook. +The last message in the folder contains the address book data. +In between the first +and the last message are old versions of the address book data. The address +book data is simply stored in the message as it would be on disk, with no MIME +encoding. When it is used the data from the last message in the folder is +copied to a local file and then that file is used exactly like a local +address book file is used. When a change is made the modified local file +is appended to the remote folder in a new message. In other words, the +local file is just a cache copy of the data in the remote folder. Each client +which uses the remote address book will have its own cache copy of the data. +Whenever a copy is done the entire address book is copied, not just the +entries which have changed. +

    + +Alpine can tell that the remote data has changed +by one of several methods. +If the date contained in the Date header of the last message has changed then +it knows it has changed. If the UID of the last message has changed, or the +number of messages in the folder has changed, it knows that it has changed. +When Alpine discovers the folder has changed it gets +a new copy and puts it in the local cache file. +

    + +There is a configuration file variable for remote address books called +remote-abook-metafile. +The variable is the name of a file in which +information about remote address books is stored. There is one line in the +metafile for each remote address book. The information stored there is the +name of the cache file and information to help figure out when the remote +folder was last changed. If the metafile or any of the cache files is deleted +then Alpine will rebuild them the next time it runs. +

    + +Remote address books have names that look just like regular +remote mail folder names. +For example: + +

    + {host.domain}foldername
    +
    + +Alpine decides whether or not an address book is remote simply by +looking at the first character of the address book name and comparing +it to '{'. + +

    Information About All Address Books

    + +The address book is named, by default, .addressbook in the +user's Unix home directory, or in the case of PC-Alpine, +ADDRBOOK, in the same directory as the PINERC file. +There may be more than +one address book, and the default name can be overridden via an entry in +any of the Alpine configuration files. The two configuration variables +address-book +and global-address-book +are used to specify the names of the address books. +Each of these variables is a list +variable. The total set of address books for a user is the combination of +all the address books specified in these two lists. Each entry in the +list is an optional nickname followed by an address book name. The nickname is +everything up to the last space before the file name. The +global-address-book list will typically be configured in the +system-wide configuration file, though a user may override it like most +other variables. Address books which are listed in the +global-address-book variable are forced read-only, and are +typically shared among multiple users.

    + +Local address books (or local cache files for remote address books) are +simple text files with lines in the format: + +

    + <nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
    +
    + +The last two fields are optional. A "line" may be made up of multiple +actual lines in the file by using continuation lines, which are lines +beginning with SPACE characters. The line breaks may be after TABs or in +between addresses in a distribution list. +Each actual line in the file must +be less than 1000 characters in length. +

    + +Nicknames (the first field) are short names that the user types instead of +typing in the full address. There are several characters which aren't +allowed in nicknames in order to avoid ambiguity when parsing the address +(SPACE, COMMA, @, ", ;, :, (, ), [, ], <, >, \). +Nicknames aren't required. In fact, +none of the fields is required.

    + +The fullname field is usually stored as Last_name, First_name, in order +that a sort on the fullname field comes out sorted by Last_name. +If there is an unquoted comma in the fullname, +Alpine will flip the first and last name around and get rid of +the comma when using the entry in a composition. It isn't required that +there be a comma, that's only useful if the user wants the entries to sort +on last names.

    + +The address field takes one +of two forms, depending on whether the entry +is a single (simple) address or a distribution list. For a simple entry, +the address field is an RFC 2822 address. This could be either the +email-address part of the address, i.e., the part that goes inside the +brackets (<>), or it could be a full RFC 2822 address. The phrase part +of the address (the fullname) is used unless there is a fullname present +in the fullname field of the address book entry. In that case, the fullname +of the address book entry replaces the fullname of the address. For a +distribution list, the <address> is in the format: + +

    + "(" <address>, <address>, <address>, ... ")"
    +
    +

    + +The only purpose for the parentheses around the list of addresses is to +make it easier for the parsing routines to tell that it is a simple entry +instead of a list. The two are displayed differently and treated slightly +differently in some cases, though most of the distinction has disappeared. +Each of the addresses in a list can be a full RFC 2822 address with +fullname included, or it may be just the simple email-address part of the +address. This allows the user to have a list which includes the fullnames +of all the list members. In both the simple and list cases, +addresses may also be other nicknames which appear in this address book or +in one of the other address books. (Those nicknames are searched for by +looking through the address books in the order they appear in the address +book screen, with the first match winning.) Lists may be nested. If +addresses refer to each other in a loop (for example, list A includes +list B which includes list A again) this is detected and flagged. In that +case, the address will be changed to "**** address loop ****".

    + +The optional fcc field is a folder name, just like the fcc field in the +composer headers. If the first address in the To field of a composition +comes from an address book entry with an fcc field, then that fcc is +placed in the fcc header in the composer.

    + +The comments field is just a free +text field for storing comments about an +entry. By default, neither the fcc nor the comments field is shown on the +screen in the address book screen. You may make those fields visible by +configuring the variable +addressbook-formats. +They are also searched when you use the WhereIs +command in the address book screen and are visible when you +View or Update an entry.

    + +The address book is displayed in the order that it is stored. +When the user chooses a different sorting criterion, the data is actually +sorted and stored, as opposed to showing a sorted view of the data.

    + +When the address book is written out, it is first written to a temporary +file and if that write is successful it is renamed. This guards +against errors writing the file that might destroy the whole address book. +The address book is re-written after each change. If the address book +is a remote address book, the file is then appended to the remote mail +folder using IMAP.

    + +The end-of-line character(s) in the address book file are those native to +the system writing it. So it is <LF> on Unix and +<CR><LF> on PC's. However, both Unix and PC versions of Alpine +can read either format, so it should be possible to share a read-only +address book among the two populations (using NFS, for example). +

    + +


    + +

    Address Book Lookup File

    + +Pine used an additional file for each address book, called +the LookUp file. It had the same name as the address book file +with the suffix ".lu" appended. +Alpine no longer uses a lookup file. +

    + +

    Validity Checking of Address Books

    + +There is no file locking done on Alpine address books, however, there +is considerable validity checking done to make sure that the address book +hasn't changed unexpectedly. Whenever the address book is about to be changed, +a check is made to see if the file is newer than when we read it or the +remote address book folder has changed since we last copied it. If either +of these is true, the change is aborted. +

    + +There is an automatic, behind-the-scene check that happens every so often, +also. For example, if someone else changes one of the address books that +you have configured, your Alpine's copy of the address book will usually +be updated automatically without you noticing. This checking happens at the +same time as new mail checking takes place, unless you are actively using +the address book, in which case it happens more frequently. +

    + +


    + +

    Remote Configuration

    + +Configuration information may be stored remotely. +Remote configuration information is stored in a folder on an IMAP server. +This should be a folder which is used only for storing the configuration +information. +In other words, it should be a folder which didn't exist before. +

    +Remote configuration folders are very similar to remote address book folders. +They both consist of a header message, which serves to identify the type +of folder; the last message, which contains the data; and intermediate +messages, which contain old versions of the data. +The first message must contain the header x-pine-pinerc. +

    +When a remote configuration is being used, the folder is checked to make +sure it is a remote configuration folder, then the data contained in the +last message is copied to a temporary file. +That file is treated just like any regular local configuration file from +that point on. +Whenever a configuration change is made, the entire file is copied back +to the IMAP server and is appended to the folder as a new message. +

    +Because remote configuration folders are so similar to remote address books, +the configuration variable +remote-abook-metafile +is used by both. +

    +Remote configuration folders have names that look just like regular +remote mail folder names. +For example: + +

    + {host.domain}mypinerc
    +
    + +Alpine decides whether or not a configuration file is remote simply by +looking at the first character of the name and comparing +it to '{'. +

    + +


    + +

    Checkpointing

    + +Periodically Alpine will save the whole +mail folder to disk to prevent loss +of any mail or mail status in the case that it gets interrupted, +disconnected, or crashes. The period of time Alpine waits to do the +checkpoint is calculated to be minimally intrusive. The timing can be +changed (but usually isn't) at compile time. Folder checkpointing happens +for both local folders and those being accessed with IMAP. The delays are +divided into three categories:

    + +

    +The exact algorithm given below is no longer correct. +It has gotten more complicated over time. +However, this gives the general idea Alpine uses +when deciding whether or not to do a checkpoint. +
    + +
    + +
    Good Time: + +
    This occurs when Alpine has been idle for more than 30 seconds. In +this case Alpine will checkpoint if 12 changes +to the file have been made or +at least one change has been made and a checkpoint hasn't been done for +five minutes.

    + +

    Bad Time: + +
    This occurs just after Alpine has +executed some command. Alpine will +checkpoint if there are 36 outstanding changes to the mail file or at +least one change and no checkpoint for ten minutes.

    + +

    Very Bad Time: + +
    Done when composing a message. In this case, Alpine will only +checkpoint if at least 48 changes have been made or at least one change has been +made in the last twenty minutes with no checkpoint.

    + +

    + +
    + +

    Debug Files

    + +If UNIX Alpine is compiled with the compiler +DEBUG option on (the default), +then Alpine will produce debugging output to a file. +This can be disabled at compile-time with the --disable-debug configure option, +or at run-time with the command line flag -d0. +The file is +normally .pine-debugX in the user's home directory where +X goes from 1 to 4. Number 1 is always the most recent session +and 4 the oldest. Four are saved because often the user has gone in and +out of Alpine a few times after a problem has occurred before the expert +actually gets to look at it. The amount of output in the debug files +varies with the debug level set when Alpine is +compiled and/or as a command +line flag. The default is level 2. This shows very general things and +records errors. Level 9 produces copious amounts of output for each +keystroke.

    + +Similarly, PC-Alpine creates debug files +named pinedebg.txtX in the +same directory as the PINERC file.

    + +


    + +

    INBOX and Special Folders

    + +The INBOX folder is treated specially. It is normally kept open +constantly so that the arrival of new mail can be detected. The name +INBOX refers to wherever new mail is retrieved on the system. If +the inbox-path variable is set, +then INBOX refers to +that. IMAP servers understand the concept of INBOX, so +specifying the folder {imap.u.example.edu}INBOX is meaningful. +The case of the word INBOX is not important, +but Alpine tends to display it in all capital letters.

    + +The folders for sent mail +and saved messages folders are +also somewhat special. +They are automatically created if they are absent and recreated +if they are deleted.

    + +


    + +

    Internal Help Files

    + +The file pine.hlp in the alpine subdirectory of the +distribution contains all the help text for Alpine. +It is compiled right into the Alpine binary as strings. +This is done to simplify installation and configuration. +The pine.hlp file is in a +special format that is documented at the beginning of the file. +It is divided into sections, each with a name that winds up being referenced as +a global variable. This file is processed during the build process and +turned into a C file that is compiled into Alpine.

    + +


    + +

    International Character Sets

    + +Alpine uses Unicode characters internally and +it is a goal for Alpine to handle email in many different languages. +Alpine will properly display only left-to-right character sets +in a fixed-width font. Specifically, Alpine assumes that a fixed-width +font is in use, in the sense that +characters are assumed to take up zero, one, or two character cell +widths from left to right on the screen. This is true even in PC-Alpine. +

    + +Alpine recognizes some local character sets which are right-to-left +(Arabic, Hebrew, and Thai) or not representable in a fixed-width font +(Arabic) and properly converts texts in these character sets to/from +Unicode; however, there are known display bugs with these character +sets. +

    + +There are three possible configuration character settings and some +environment variable settings which can affect how Alpine +handles international characters. +The first two of these are only available in UNIX Alpine. +The three configuration options are +display-character-set, +keyboard-character-set, and +posting-character-set. +The keyboard-character-set defaults to being the same value +as the display-character-set, and that is usually correct, because +the keyboard almost always produces characters in the same character set +as the display displays. +The display-character-set is the character set that Alpine +will attempt to use when sending characters to the display. +

    +Besides those variables there is also +use-system-translation +which can be used instead of these. +That usage is only lightly tested and is not recommended. +

    + +By default, the display-character-set variable is not set and UNIX Alpine +will attempt to get this information from the environment. +In particular, the nl_langinfo(CODESET) call is used. +This usually depends on the setting of the environment variables LANG or LC_CTYPE. +An explicit configuration setting for display-character-set will, +of course, override any default setting. +

    +For PC-Alpine the display-character-set +and the keyboard-character-set +are always equivalent to UTF-8 and this is not settable. +

    + +It is probably best to use UNIX Alpine in a terminal emulator +capable of displaying UTF-8 characters, since that will allow you to +view just about any received text that is correctly formatted (note, +however, the above comments about known index display bugs with certain +character sets). You'll need to have an emulator which uses a UTF-8 font +and you'll need to set up your environment to use a UTF-8 charmap. For +example, on a Linux system you might include +

    +

    setenv LANG en_US.UTF-8
    +

    + +or something similar in your UNIX startup files. +You'd also have to select a UTF-8 font in your terminal emulator. +

    + +The types of values that the character set variables may be set to are +UTF-8, ISO-8859-1, or EUC-JP. +The ISO-2022 character sets are not supported for input or +for display, but as a special case, ISO-2022-JP is supported +for use only as a posting-character-set. +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. +Here is a list of many of the possible character sets: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UTF-8 Unicode
    US-ASCII 7 bit American English characters
    ISO-8859-1 8 bit European "Latin 1" character set
    ISO-8859-2 8 bit European "Latin 2" character set
    ISO-8859-3 8 bit European "Latin 3" character set
    ISO-8859-4 8 bit European "Latin 4" character set
    ISO-8859-5 8 bit Latin and Cyrillic
    ISO-8859-6 8 bit Latin and Arabic
    ISO-8859-7 8 bit Latin and Greek
    ISO-8859-8 8 bit Latin and Hebrew
    ISO-8859-9 8 bit European "Latin 5" character set
    ISO-8859-10 8 bit European "Latin 6" character set
    ISO-8859-11 Latin and Thai
    ISO-8859-12 Reserved
    ISO-8859-13 8 bit European "Latin 7" character set
    ISO-8859-14 8 bit European "Latin 8" character set
    ISO-8859-15 8 bit European "Latin 9" character set
    ISO-8859-16 8 bit European "Latin 10" character set
    KOI8-R 8 bit Latin and Russian
    KOI8-U 8 bit Latin and Ukranian
    WINDOWS-1251 8 bit Latin and Russian
    TIS-620 8 bit Latin and Thai
    VISCII 8 bit Latin and Vietnamese
    GBK Latin and Chinese Simplified
    GB2312 Latin and Chinese Simplified
    CN-GB Latin and Chinese Simplified
    BIG5 Latin and Chinese Traditional
    BIG-5 Latin and Chinese Traditional
    EUC-JP Latin and Japanese
    SHIFT-JIS Latin and Japanese
    EUC-KR Latin and Korean
    KSC5601 Latin and Korean
    +

    + +When reading incoming email, Alpine understands many different +character sets and is able to convert the incoming mail into Unicode. +The Unicode will be converted to the display-character-set +for display on your terminal. +Characters typed at the keyboard will be converted from the +keyboard-character-set to Unicode for Alpine's internal +use. +You may find that you can read some malformed messages that do not +contain a character set label by setting the option +unknown-character-set. +

    + +The posting-character-set is used when sending messages. +The default behavior obtained by leaving this variable unset is usually +what is wanted. In that default case, Alpine will attempt +to label the message with the most specific character set from the +rather arbitrary set +

    +US-ASCII, ISO-8859-15, +ISO-8859-1, ISO-8859-2, VISCII, KOI8-R, KOI8-U, ISO-8859-7, ISO-8859-6, +ISO-8859-8, TIS-620, ISO-2022-JP, GB2312, BIG5, EUC-KR, and UTF-8. +

    + +For example, if the message is made up of only US-ASCII characters, it +will be labeled US-ASCII. Otherwise, if it is all ISO-8859-15 characters, +that will be the label. If that doesn't work the same is tried for the +remaining members of the list. + +

    +It might make sense to set posting-character-set to an +explicit value instead. +For example, if you usually send messages in Greek, setting this +option to ISO-8859-7 will result in messages being labeled as +US-ASCII if there are no non-ascii characters, ISO-8859-7 if there +are only Greek characters, or UTF-8 if there are some characters +which aren't representable in ISO-8859-7. +Another possibility is to set this option explicitly to UTF-8. +In that case +Alpine labels only ascii messages as US-ASCII and all other +messages as UTF-8. +

    + +


    + +

    Interrupted and Postponed Messages

    + +If the user is composing mail and is interrupted by being disconnected +(SIGHUP, SIGTERM or end of file on the standard input), Alpine will save the +interrupted composition and allow the user to continue it when he or she +resumes Alpine. As the next Alpine session starts, a message will be given +that an interrupted message can be continued. To continue the interrupted +message, simply go into the composer. To get rid of the interrupted +message, go into the composer and then cancel the message with +^C.

    + +Composition of half-done messages may be postponed to a later time by +giving the ^O command. Other messages can be composed while +postponed messages wait. All of the postponed messages are kept in a +single folder. Postponing is a good way to quickly reference other +messages while composing.

    + +


    + +

    Message Status

    + +The c-client library allows for several flags or status marks to be set +for each message. Alpine uses four of these flags: UNSEEN, DELETED, +ANSWERED, and FLAGGED. The N in Alpine's +FOLDER INDEX means that a +message is unseen-it has not been read from this folder yet. The D +means that a message is marked for deletion. +Messages marked with D are +removed when the user Expunges the folder (which usually happens +when the folder is closed or the user quits Alpine). +The A in Alpine's +FOLDER INDEX means that the message has been replied-to. The * in +Alpine's FOLDER INDEX means that the message has been ``flagged'' as +important. That is, the user used the Flag command to turn the +FLAGGED flag on. This flag can mean whatever the user wants it to mean. +It is just a way to mark some messages as being different from others. It +will usually probably be used to mark a message as somehow being +``important''. For Berkeley format folders, the message status is written +into the email folder itself on the header lines marked Status: +and X-Status. +

    +It is also possible for a user to define their own flags in addition to the +standard system flags above. +In Alpine these user defined flags are called Keywords. +

    + +


    + +

    MIME: Reading a Message

    + +Alpine should be able to handle just about any MIME message. When a MIME +message is received, Alpine will display a list of all the parts, their +types and sizes. It will display the attachments when possible and +appropriate and allow users to Save all other attachments.

    + +Alpine honors the "mailcap" +configuration system for specifying external programs for handling attachments. +The mailcap file maps MIME attachment types to the external programs +loaded on your system which can display and/or print the file. +A sample mailcap file +comes bundled with the Alpine distribution. It includes comments which +explain the syntax you need to use for mailcap. With the mailcap file, +any program (mail readers, newsreaders, WWW clients) can use the same +configuration for handling MIME-encoded data.

    + +If a MAILCAPS environment variable is defined, +Alpine will use that to look +for one or more mailcap files, which are combined. In the absence of +MAILCAPS, Unix Alpine will look for +a personal mailcap file in ~/.mailcap +and combine that with a system-wide file in /etc/mailcap. +PC-Alpine will look for a file named MAILCAP in the +same directory as the PINERC file, +and/or the directory containing the ALPINE.EXE executable.

    + +Messages which include rich text or enriched text in the +main body will be displayed in a very limited way (it will show bold and +underlining).

    + +If Alpine sees a MIME message part tagged as type IMAGE, +and Alpine's +image-viewer +configuration variable is set, Alpine will attempt to +send that attachment to the named image viewing program. In the case of +UNIX Alpine, the DISPLAY environment variable is +checked to see if an X-terminal is being used (which can handle the images). +If the image-viewer variable is not set, +Alpine uses the mailcap +system to determine what to do with IMAGE types, just as it does for any +other non-TEXT type, e.g. type APPLICATION. For MIME's generic "catch +all" type, APPLICATION/OCTET-STREAM, the mailcap file will +probably not specify any action, but Alpine users may always +Save any MIME attachment to a file.

    + +MIME type "text/plain" is handled a little bit differently than the +other types. If you are viewing the main body part in the MESSAGE TEXT +viewing screen, then Alpine will use its internal viewer to display it. +This happens even if there is a mailcap description which matches this +particular type. +However, if you view a part of +type "text/plain" from the ATTACHMENT INDEX screen, then Alpine will check +the mailcap database for a matching entry and use it in preference to +its internal viewer.

    + +Some text attachments, specifically those which are just other email messages +forwarded as MIME messages, are displayed as part of the main body of the +message. This distinction allows easy display when possible (the forward +as MIME case) and use of an attachment viewer when that is desirable (the +plain text file attachment case).

    + +If the parts of a multipart message are alternate versions of the same +thing Alpine will select and display the one best suited. +For parts of type "message/external-body", the parameters showing the +retrieval method will be displayed, and the retrieval process is automated. +Messages of type "message/partial" are not supported.

    + +


    + +

    MIME: Sending a Message

    + +There are two important factors when trying to include an attachment in a +message: encoding and labeling. +Alpine has rules for both of these which +try to assure that the message goes out in a form that is robust and can +be handled by other MIME mail readers.

    + +MIME has two ways of encoding data-Quoted-Printable and Base64. +Quoted-Printable leaves the ASCII text alone and only changes 8-bit +characters to "=" followed by the hex digits. For example, "=09" is a +tab. It has the advantage that it is mostly readable and that it allows +for end of line conversions between unlike systems. Base64 encoding is +similar to uuencode or btoa and just encodes a raw bit +stream. This encoding is designed to get text and binary files through +even the most improperly implemented and configured gateways intact, even +those that distort uuencoded data.

    + +All attachments are encoded using Base64 encoding. This +is so that the attachment will arrive at the other end looking exactly +like it did when it was sent. Since Base64 is completely unreadable +except by MIME-capable mailers or programs, there is an obvious tradeoff +being made here. We chose to ensure absolutely reliable transport of +attachments at the cost of requiring a MIME-capable mailer to read them. +If the user doesn't want absolute integrity he or she may always +include text (with the ^R command) in the body of a +message instead of attaching it. With this policy, the only time +quoted-printable encoding is used is when the main body of a message +includes special foreign language characters.

    + +When an attachment is to be sent, Alpine sniffs through it to try to set the +right label (content-type and subtype). An attachment with any lines +longer than 500 characters in it or more than 10% of the characters are +8-bit it will be considered binary data. Alpine will recognize (and +correctly label) a few special types including GIF, JPEG, PostScript, and +some audio formats. Another method which can be more robust and flexible for +determining the content-type and subtype is to base it on the file extension. +This method uses a MIME.Types File. +

    + +If it is not binary data (has only a small proportion of 8-bit characters +in it,) the attachment is considered 8-bit text. 8-bit text attachments +are labeled "text/plain" with charset set to the value of the user's +keyboard-character-set variable. If an attachment is ASCII (no 8-bit +characters) and contains no control characters +then it is considered plain ASCII text. Such attachments are given the MIME label +"text/plain; charset=US-ASCII", regardless of the setting of the user's +keyboard-character-set variable.

    + +All other attachments are unrecognized and therefore given the generic +MIME label "application/octet-stream".

    + +


    + +

    New Mail Notification

    + +Alpine checks for new mail in the INBOX and in +the currently open folder every two and a half minutes by default. +This default can be changed in the system-wide configuration file or +at compile-time with the --with-mailcheck-interval=VALUE configuration +option. +A user can change it by changing the option +mail-check-interval. +A new mail check can be manually forced by redrawing the screen with a ^L.

    + +When there is new mail, the message(s) will appear in the index, the +screen will beep, and a notice showing the sender and subject will be +displayed. If there has been more than one new message since you last +issued a command to Alpine, the notice will show the count of new messages +and the sender of the most recent one.

    + +


    + +

    NFS

    + +It is possible to access mail folders on NFS mounted volumes with +Alpine, but there are some drawbacks to doing this, especially in the case +of incoming-message folders that may be concurrently updated by Alpine and +the system's mail delivery agent. One concern is that Alpine's +user-contention locks don't work because /tmp is usually not +shared, and even if it was, flock() doesn't work across +NFS.

    The implementation of the standard UNIX ".lock" file +locking has been modified to work with NFS as follows. Standard +hitching post locking is used so first a uniquely named file is created, +usually something like xxxx.host.time.pid. Then a link to it is +created named xxxx.lock where the folder being locked is +xxxx. This file constitutes the lock. This is a standard UNIX +locking scheme. After the link returns, a stat(2) is done on the +file. If the file has two links, it is concluded that the lock succeeded +and it is safe to proceed.

    + +In order to minimize the risks of locking failures via NFS, we strongly +recommend using IMAP rather than NFS to access remote incoming message +folders, e.g. your INBOX. However, it is generally safe to access +personal saved-message folders via NFS since it is unlikely that +more than one process will be updating those folders at any given time. +Still, some problems may occur when two Alpine sessions try to access the +same mail folder from different hosts without using IMAP. Imagine the +scenario: Alpine-A performs a write that changes the folder. Alpine-B then +attempts to perform a write on the same folder. Alpine-B will get upset +that the file has been changed from underneath it and abort operations on +the folder. Alpine-B will continue to display mail from the folder that it +has in its internal cache, but it will not read or write any further data. +The only thing that will be lost out of the Alpine-B session when this +happens is the last few status changes.

    + +If other mail readers besides Alpine are involved, all bets are off. +Typically, mailers don't take any precautions against a user opening a +mailbox more than once and no special precautions are taken to prevent +NFS problems.

    + +


    + +

    Printers and Printing

    + +UNIX Alpine can print to the standard UNIX line printers or to generic +printers attached to ANSI terminals using the escape sequences to turn the +printer on and off. The user has a choice of three printers in the +configuration.

    + +The first setting, attached-to-ansi, makes use of escape +sequences on ANSI/VT100 terminals. It uses "<ESC>[5i" to begin +directing all output sent to the terminal to the printer and then +"<ESC>[4i" to return to normal. Alpine will send these escape +sequences if the printer is set to attached-to-ansi. This works +with most ANSI/VT100 emulators on Macs and PCs such as kermit, NCSA +telnet, VersaTerm Pro, and WinQVT. Various terminal emulators implement +the print feature differently. +There is also a closely +related method called attached-to-ansi-no-formfeed which is +the same except for the lack of formfeed character at the end of the +print job. +

    +Attached-to-wyse and attached-to-wyse-no-formfeed are +very similar to "attached-to-ansi". +The only difference is in the control characters sent to turn the printer +on and off. +The Wyse version uses Ctrl-R for on, and Ctrl-T for off. +

    + +The second selection is the standard UNIX print command. The default is +lpr, but it can be changed on a system basis to anything so +desired in /usr/local/lib/pine.conf.

    + +The third selection is +the user's personal choice for a UNIX print command. The text to be +printed is piped into the command. Enscript or lpr with +options are popular choices. The actual command is retained even if one +of the other print selections is used for a while.

    + +Both the second and third sections are actually lists of possible commands +rather than single commands.

    + +If you have a PostScript printer attached to a PC or Macintosh, then you +will need to use a utility called ansiprt to get printouts on +your printer. Ansiprt source code and details can be found in +the ./contrib directory of the Alpine distribution.

    + +


    + +

    Save and Export

    + +Alpine users get two options for moving +messages in Alpine: Save and Export. +Save is used when the message should remain ``in the +Alpine realm.'' Saved messages include the complete header +(including header lines normally hidden by Alpine), +are placed in a Alpine folder collection and +accumulate in a standard folder format which Alpine can read. +In contrast, the Export command is used to write the contents +of a message to a file for use outside of Alpine. +Messages which have been exported are +placed in the user's home directory (unless the feature +use-current-dir is +turned on), not in a Alpine folder collection. +Unless FullHeaderMode is toggled on, all delivery-oriented headers are +stripped from the message. Even with Export, Alpine retains +message separators so that multiple messages can accumulate in a single +file and subsequently be accessed as a folder. On UNIX systems, the +Export command pays attention to the standard umask for +the setting of the file permissions.

    + +


    + +

    Sent Mail

    + +Alpine's default behavior is to keep a copy of each outgoing message in a +special "sent mail" folder. This folder is also called the fcc for "file +carbon copy". The existence, location and name of the sent mail folder +are all configurable. Sent mail archiving can be turned off by setting +the configuration variable +default-fcc="". The sent mail folder +is assumed to be in the default collection for Saves, +which is the first collection named in +folder-collections. +The name of the folder +can be chosen by entering a name in default-fcc. +With PC-Alpine, +this can be a bit complicated. If the default collection for Saves is +local (DOS), then the default-fcc needs to be SENTMAIL, +which is syntax for a DOS file. However, if the default collection +for Saves is +remote, then the default-fcc needs to be sent-mail +to match the UNIX syntax.

    + +The configuration variable +fcc-name-rule +also plays a role in selecting the folder to save sent mail in.

    + +A danger here is that the sent mail could grow without bound. For this +reason, we thought it useful to encourage the users to periodically prune +their sent mail folder. The first time Alpine is used each month it will +offer to archive all messages sent from the month before. Alpine also +offers to delete all the sent mail archive folders which are more than 1 +month old. If the user or system has disabled sent mail archiving (by +setting the configuration variable default-fcc="") +there will be no pruning question. +

    + +


    + +

    Spell Checker

    + +Both UNIX Alpine and PC-Alpine +depend on the system for their spell checking and dictionary. Pico, the +text editor, uses the same spell checking scheme as Alpine.

    + +Lines beginning with ">" (usually messages included in replies) are not +checked. The message text to be checked is on the standard input and the +incorrect words are expected on the standard output.

    + +The default spell checker is UNIX spell. You can replace this +by setting the speller configuration +variable. +A common choice for a superior replacement is ispell. + +

    +PC-Alpine relies on the aspell library being installed. +Aspell is independent of Alpine. The Windows version has +traditionally been available at +http://aspell.net/win32/. You'll +need to download and install both Aspell and a precompiled dictionary. +Aspell is provided in an installer package. Dictionaries, to be +installed after Aspell, are in '.exe' files to download and run. +

    + +


    + +

    Terminal Emulation and Key Mapping

    + +UNIX Alpine has been designed to require as little as possible from the terminal. +At the minimum, Alpine requires cursor positioning, clear to end of line, +and inverse video. Unfortunately, there are terminals that are missing +some of these such as a vt52. Alpine makes no assumptions as to whether the +terminal wraps or doesn't wrap. If the terminal has other capabilities it +may use some of them. Alpine won't run well on older terminals that require +a space on the screen to change video attributes, such as the Televideo +925. One can get around this on some terminals by using "protected field" +mode. The terminal can be made to go into protected mode for reverse +video, and then reverse video is assigned to protected mode.

    + +Alpine handles screens of most any size and resizing on the fly. It catches +SIGWINCH and does the appropriate thing. +

    + +On the input side of things, Alpine uses all the standard keys, most of the +control keys and (in function-key mode) the function keys. Alpine avoids +certain control keys, specifically ^S, ^Q, ^H, and ^\ +because they have other meanings outside of Alpine (they control data flow, +etc.) ^H is treated the same as the delete key, so the +backspace or delete keys always work regardless of any +configuration. There is a feature compose-maps-delete-key-to-ctrl-d +which makes the delete key behave like ^D rather than ^H (deletes current +character instead of previous character).

    + +Sometimes a communications program or communications server in between you +and the other end will eat certain control characters. There is a +work-around when you need it. If you type two escape characters followed +by a character that will be interpreted as the character with the control +key depressed. For example, ESC ESC T is equivalent to +^T.

    + +When a function key is pressed and Alpine is in regular (non-function key) +mode, Alpine traps escape sequences for a number of common function keys so +users don't get an error message or have an unexpected command executed +for each character in the function key's escape sequence. Alpine expects +the following escape sequences from terminals defined as VT100:

    + +

    + ANSI/VT100
    +F1: <ESC>OP
    +F2: <ESC>OQ
    +F3: <ESC>OR
    +F4: <ESC>OS
    +F5: <ESC>Op
    +F6: <ESC>Oq
    +F7: <ESC>Or
    +F8: <ESC>Os
    +F9: <ESC>Ot
    +F10: <ESC>Ou
    +F11: <ESC>Ov
    +
    +

    + +Arrow keys are a special case. Alpine has the escape sequences for a number +of conventions for arrow keys hard coded and does not use termcap +to discover them. This is because termcap is sometimes +incorrect, and because many users have PC's running terminal emulators +that don't conform exactly to what they claim to emulate. +There is a feature called +termdef-takes-precedence +which can be set to cause the termcap +or terminfo definitions to be used instead of the built in definitions. +Some arrow keys on old terminals send single control characters +like ^K (one even sends ^\). +These arrow keys will not work with Alpine. +The most popular escape sequences for arrow keys are:

    + +

    +Up: <ESC>[A <ESC>?x <ESC>A <ESC>OA
    +Down: <ESC>[B <ESC>?r <ESC>B <ESC>OB
    +Right: <ESC>[C <ESC>?v <ESC>C <ESC>OC
    +Left: <ESC>[D <ESC>?t <ESC>D <ESC>OD
    +
    +

    + + + diff --git a/doc/tech-notes/pn4tn b/doc/tech-notes/pn4tn new file mode 100755 index 00000000..aad2b87e --- /dev/null +++ b/doc/tech-notes/pn4tn @@ -0,0 +1,7 @@ +#!/bin/ksh +echo This script will add the PNUTS generated navigation bar to the bottom +echo of the PIC Technical Notes HTML files. +echo '----------------------------------------------------------------------' +# Written by Stefan Kramer, last modified by skramer on 1995/11/02. +pnuts.4tech-notes for.pnuts +# for.pnuts is the file that specifies the sequence of HTML files diff --git a/doc/tech-notes/pnuts.4tech-notes b/doc/tech-notes/pnuts.4tech-notes new file mode 100755 index 00000000..33e8d49f --- /dev/null +++ b/doc/tech-notes/pnuts.4tech-notes @@ -0,0 +1,134 @@ +#!/usr/local/bin/perl +################################################# +#pnuts version 0.4 part of the WN server package +################################################# +# for more info, see http://hopf.math.nwu.edu/docs/utility.html#pnuts +# Modified by Stefan Kramer for use with Pine Technical Notes +# Last modified on 1995 Nov. 02 + + +require "getopts.pl"; + +# Edit to specify what should appear as text of navigation bar. Note: +# If the HTML files processed by PNUTS will be converted to plain-text files, +# the PNUTS-generated link text will probably be stripped out, so this +# text should be unique (i.e., not expected to occur elsewhere in text). + +# This is the original link appearance, without graphic buttons +# $prevw="Previous"; +# $nextw="Next"; +# $upw="Up one level"; +# $topw="Table of Contents"; +# $searchw="Search"; +# $indexw="Index"; + +$prevw='[Previous]'; +$nextw='[Next]'; +$upw=''; # not needed and don't have a graphic for UP +$topw='[Table of Contents]'; +$searchw='[Search]'; +$indexw=''; # no index here and no graphic for it + + + +$VERSION = "0.4"; + + &Getopts('s:i:'); + $search = $opt_s if $opt_s ne ""; + $index = $opt_i if $opt_i ne ""; + + $file = shift; + $marker = ""; + + + open( LIST, "<$file") || die "Can't open file: $!"; + + + $nextfile = ; + print $nextfile; + chop( $nextfile); + $top = $nextfile; + + while ( &getnextfile() ) { + $curcopy = $currentfile."~"; + + rename( $currentfile, $curcopy) + || die "Can't rename file: $currentfile"; + open( OLDCURR, "<$curcopy" ) || die "Can't open file: $!"; + open( NEWCURR, ">$currentfile" ) || die "Can't open file: $!"; + while ( $line = ) { + if ( $line =~ "^$marker") { + &pnutline(); + } + else { + print NEWCURR $line; + } + } + close( OLDCURR); + close( NEWCURR); + } + + +close( LIST); +exit(0); + +sub pnutline { + printf( NEWCURR "$marker"); + printf( NEWCURR "


    "); + if ( $previous ) { + printf( NEWCURR " $prevw", $previous); + } + if ( $nextfile ) { + printf( NEWCURR " $nextw", $nextfile); + } + if ( $up[$curlevel - 1] ) { + printf( NEWCURR " $upw", + $up[$curlevel-1]); + } + if ( $top && ( $top ne $currentfile) ) { + printf( NEWCURR " $topw", $top); + } + if ( $search ) { + printf( NEWCURR " $searchw", $search); + } + if ( $index ) { + printf( NEWCURR " $indexw", $index); + } + printf( NEWCURR "\n"); +} + +sub getnextfile { + if ( $nextfile eq "") { + return 0; + } + $previous = $currentfile; + $up[$curlevel] = $currentfile; + + $currentfile = $nextfile; + while ( 1 ) { + ($nextfile = ) || ($nextfile = ""); + $nextfile =~ s/(\t*)//; + last if $nextfile eq ""; + print $nextfile; + chop( $nextfile); + if ( -d $nextfile ) { + print "$nextfile is directory, ignoring it\n"; + next; + } + last; + } + $curlevel = $nextlevel; + $nextlevel = length( $1); + return 1; +} + + + + + + + + + + + diff --git a/doc/tech-notes/porting.html b/doc/tech-notes/porting.html new file mode 100644 index 00000000..14025372 --- /dev/null +++ b/doc/tech-notes/porting.html @@ -0,0 +1,336 @@ +Pine Technical Notes: Notes for Porting and Modification +

    Notes for Porting and Modification

    + +

    Porting Pine to Other Platforms

    + +Substantial effort has gone into making Pine/Pico portable. +There are +still, of course, a number of machine dependencies. Some of the ports are +well-tested and some are untested. In particular, the most heavily used +ports are the Ultrix, AIX, NeXT, Windows, and Dec Unix ports.

    + +Each platform is given a three letter name (see the file +doc/pine-ports). Make up a new one for your new port. We've +attempted to bring all potential platform dependencies into the files: +{pico,pine}/osdep/os-xxx.h, +{pico,pine}/osdep/os-xxx.ic, +and {pico,pine}/makefile.xxx, where xxx +is the three letter name of the port. Thus any new port will hopefully +just result in new versions of these files and some notes for the +pine-ports file. +There are separate dependencies in the c-client source, but that +is handled in separate documentation there. +Regrettably, the source code is also full of instances of ifdef DOS. +Most of these are due to memory limit problems on DOS as +opposed to actual system dependencies.

    + +The makefiles are kept as simple and straight-forward as possible, because +many previous attempts at automatically figuring out what to do seem to +have become complex and ineffective in what they set out to do: which is +to make compiling and installing the program easy. Each port is for a +specific hardware/software platform, also because past attempts to +generalize on versions of Unix or some CPU architecture don't seem to have +gained much. Thus, there is a separate makefile for each platform that +calls the appropriate compiler and linker with the appropriate flags. +Most of these makefiles are pretty similar. The makefile also specifies +which of the os-xxx.c and os-xxx.h files to use. +It is +the root from which most platform dependencies are selected. In most cases +the makefile also defines a symbol named after the platform on which there +can be dependencies in the source code, though we've tried to minimize +relying on this where reasonable. +When different "ports" are very similar, it is sometimes possible to use +the same pine code (for example) with only a small change in the c-client +or pico code. In those cases, that kind of dependency is reflected in +the top-level build script. +The build script can usually be +used to invoke the various makes correctly. +It may set some variables before running make so look to see what build +does before trying a make in one of the subdirectories. This is especially true +if LDAP is being included.

    + +It is almost always easier to start with an existing port when trying to port +to a new system. There is a port called gen (generic) which may be +a good starting point. On the other hand, if another port is close to what +you want, start with it instead. +

    + +The file pico/osdep/os-xxx.h contains most of the general +platform dependent #include's and #defines. +There are a number +of Pine configuration settings that are defined in +pine/osdep/os-xxx.h, as well, such as the +place it looks for certain files, defaults for the printer and folder +names, the maximum screen size, and so on. +Start by looking at the generic pico/osdep/os-gen.h file +and comparing it to some of the specific os-xxx.h files there.

    + +The osdep/os-xxx.c files contain functions that are potentially +platform dependent. Again, the idea is to gather all the dependencies in +one place. +We use a complicated looking method to produce +the os-xxx.c files from a set of included files. Each included +file usually contains a single implementation method and we've +found that there are +usually only two or three different methods in the +ports we've done so far. Hopefully, coming up with an os-xxx.c +for a new port will usually be a matter of including the right set of +these already written functions. This is done by writing a new +os-xxx.ic file in the osdep subdirectories. +Starting with the generic os-gen.ic, as you did with +the os-gen.h file above, may be a useful strategy.

    + +We strongly encourage that no changes be made to the general source when +porting and that all changes be contained in the system +dependent files if possible. The object is to maintain source code +integrity and assimilate ports to new platforms rapidly. The more +conventional way to do this is with a large collection of +#ifdefs. The problem with this is that adding a port for a new +platform implies changing the source code for all the other platforms and +thereby risks breaking them. (We readily admit that there are still too +many ifdefs in the code.)

    + +If you do port Pine to a new platform we hope that you will send us the +changes required so that we may attempt to include it in a later release. +Thanks!

    + +


    + +

    Test Checklist

    + +The following is a checklist of some things to check when testing a new +port:

    + +

    +
    + ___ +
    +Sending mail, check that headers are correct +
    + ___ +
    +Sending mail with attachments +
    + ___ +
    +Sending mail with SMTP server +
    + ___ +
    +Sending mail without SMTP server +
    + ___ +
    +Sending mail with list of two SMTP servers, first one doesn't answer +
    + ___ +
    +Replying to and forwarding a message +
    + ___ +
    +Postponing messages under composition +
    + ___ +
    +Composer operations +
    + ___ +
    +Alternate editor, enable-alternate-editor-implicitly +
    + ___ +
    +Make sure local user names are expanded +
    + ___ +
    +Test spelling checker +
    + ___ +
    +Catching of SIGHUP while message is being composed +
    + ___ +
    +Setting of variables in .pinerc +
    + ___ +
    +New mail notification. Should happen with Pine idle to check timeouts +
    + ___ +
    +Reading mail (attachments, MIME, MIME with mailcap viewers) +
    + ___ +
    +Deleting, undeleting, expunging, sorting +
    + ___ +
    +Expunge to empty folder +
    + ___ +
    +Make sure that ~ expansion works in config files +
    + ___ +
    +Make sure that $VAR expansion works in config files +
    + ___ +
    +Save message to folder, check error conditions such as permission denied +
    + ___ +
    +Export message with FullHeaderMode on and off +
    + ___ +
    +Checkpointing (see the section on checkpointing) +
    + ___ +
    +Open IMAP and RIMAP folders +
    + ___ +
    +Default-fcc on remote IMAP server +
    + ___ +
    +Fcc-name-rule, fcc in addrbook (while composing) +
    + ___ +
    +Test opening bogus folders: invalid format, no permission +
    + ___ +
    +Open a USENET news group, list in folder-lister, read news, post news +
    + ___ +
    +Command line arguments +
    + ___ +
    +Change password +
    + ___ +
    +Lock keyboard +
    + ___ +
    +Address book operations (edit, delete, add, lists, whereis, composeto) +
    + ___ +
    +ReadOnly address book +
    + ___ +
    +Look at addrbook, change addrbook-sort-rule in Config, go back to +addrbook screen +
    + ___ +
    +No permission to write in same directory as addrbook, should create +addrbook.lu in a temp directory +
    + ___ +
    +Multiple address books +
    + ___ +
    +Address book loops from one addrbook to another and back +
    + ___ +
    +TakeAddr command with one address, with multiple addresses +
    + ___ +
    +TakeAddr command with ReadOnly address books +
    + ___ +
    +TakeAddr command with one of two address books ReadOnly +
    + ___ +
    +Send mail with empty address book +
    + ___ +
    +Config Screen operation, does pinerc get written? +
    + ___ +
    +Make sure SIGTSTP, ^Z works +
    + ___ +
    +Sent-mail pruning (set back last-time-prune-questioned variable) +
    + ___ +
    +Printing using all three printer configurations, various screens +
    + ___ +
    +View help text and news +
    + ___ +
    +Folder list operations (rename, create, delete...) +
    + ___ +
    +Saved-msg-name-rule +
    + ___ +
    +Screen redrawing in various screens (^L) +
    + ___ +
    +Window resizing in various screens +
    + ___ +
    +Error messages for incorrect terminal types (try "foo" and "vt52") +
    + ___ +
    +Reading of /usr/local/lib/pine.conf +
    + ___ +
    +Fixing variables and features in /usr/local/lib/pine.conf.fixed +
    + ___ +
    +Flag command (check message status changed in mail folder) +
    + ___ +
    +Initial-keystroke-list +
    + ___ +
    +Aggregate operations (save, delete, export, takeaddr, ...) +
    + ___ +
    +Build xxx from scratch, build clean +
    + + + + + -- cgit v1.2.3-54-g00ecf