From 9ad9ae7ccf5862ae06ab65727d194d8ab7216f64 Mon Sep 17 00:00:00 2001 From: Eduardo Chappa Date: Mon, 19 Sep 2016 02:43:33 -0600 Subject: * Alpine failed to read an encrypted password file if too many passwords have been saved in it. --- doc/tech-notes/tech-notes.txt | 180 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) (limited to 'doc/tech-notes') diff --git a/doc/tech-notes/tech-notes.txt b/doc/tech-notes/tech-notes.txt index 8ea8d93b..24de8880 100644 --- a/doc/tech-notes/tech-notes.txt +++ b/doc/tech-notes/tech-notes.txt @@ -1,4 +1,184 @@ + Alpine Technical Notes + + Version 2.20.16, September 2016 + +Table of Contents + + Introduction + + * Design Goals + * Alpine Components + + Background Details + + * Domain Names + * RFC 2822 Compliance + * SMTP and Sendmail + * Internet Message Access Protocol (IMAP) + * Multipurpose Internet Mail Extensions (MIME) + * Folder Collections + + Building and Installation + + * Compile-time Options + * Including LDAP Functionality + * Including Kerberos 5 Functionality + * Other Alpine Compile-time Options + * IMAPd Compile-time Options + * Building the Alpine Programs + * Installing Alpine and Pico on UNIX Platforms + * Installing PC-Alpine + * Installing IMAPd + * Support Files and Environment Variables: UNIX Alpine + * Support Files, Environment Variables, and Registry Values: + PC-Alpine + + Command Line Arguments + + * Alpine + * Pico + * Pilot + + Configuration and Preferences + + * Alpine Configuration + * General Configuration Variables + * Configuration Features + * Hidden Config Variables and Features + * Retired Variables + * Tokens for Index and Replying + * Conditional Inclusion of Text for Reply-Leadin, Signatures, and + Templates + * Per Server Directory Configuration + * Color Configuration + * Index Line Color Configuration + * Role Configuration + * Filtering Configuration + * Scoring Configuration + * Other Rules Configuration + * Search Rules Configuration + * Patterns + * Configuring News + Configuration Notes + + Alpine in Function Key Mode + + Domain Settings + + Syntax for Collections + + Syntax for Folder Names + + Server Name Syntax + + Folder Namespaces + + What is a Mail Drop? + + Sorting a Folder + + Alternate Editor + + Signatures and Signature Placement + + Feature List Variable + + Configuration Inheritance + + Using Environment Variables + + SMTP Servers + + MIME.Types file + + Color Details + + S/MIME Overview + + Additional Notes on PC-Alpine + + Behind the Scenes + + * Address Books + * Remote Configuration + * Checkpointing + * Debug Files + * INBOX and Special Folders + * Internal Help Files + * International Character Sets + * Interrupted and Postponed Messages + * Message Status + * MIME: Reading a Message + * MIME: Sending a Message + * New Mail Notification + * NFS + * Printers and Printing + * Save and Export + * Sent Mail + * Spell Checker + * Terminal Emulation and Key Mapping + + 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_. + Background Details Domain Names -- cgit v1.2.3-70-g09d2