summaryrefslogtreecommitdiff
path: root/doc/tech-notes/background.html
diff options
context:
space:
mode:
authorEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
committerEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
commit094ca96844842928810f14844413109fc6cdd890 (patch)
treee60efbb980f38ba9308ccb4fb2b77b87bbc115f3 /doc/tech-notes/background.html
downloadalpine-094ca96844842928810f14844413109fc6cdd890.tar.xz
Initial Alpine Version
Diffstat (limited to 'doc/tech-notes/background.html')
-rw-r--r--doc/tech-notes/background.html350
1 files changed, 350 insertions, 0 deletions
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 @@
+<HTML><HEAD><TITLE>Alpine Technical Notes: Background Details</TITLE></HEAD><BODY>
+<H1>Background Details</H1>
+
+<H2><A NAME="DNS">Domain Names</A></H2>
+
+<BR><P>
+
+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:
+
+<BLOCKQUOTE><CODE>
+olive.cac.washington.edu
+</CODE></BLOCKQUOTE>
+
+In this domain name the top-level label is <EM>edu</EM>, indicating it is
+at an educational institution, the second-level label is
+<EM>washington</EM>, indicating the University of Washington.
+<EM>cac</EM> is a specific department within the University of Washington,
+and <EM>olive</EM> 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. <P>
+
+<EM>Alpine</EM> 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. <P>
+
+On UNIX systems, you can set the domain via the <A
+HREF="config.html#user-domain"><EM>user-domain</EM></A>
+variable in the <EM>Alpine</EM> configuration file, or rely on the file
+<CODE>/etc/hosts</CODE> which usually sets the name of the local host.
+While <EM>Alpine</EM> 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 <CODE>/etc/hosts</CODE>
+file. The fully-qualified name should be listed before any abbreviations.
+For example,
+
+<BLOCKQUOTE><CODE>
+128.95.112.99 olive.cac.washington.edu olive
+</CODE></BLOCKQUOTE>
+
+is preferred over
+
+<BLOCKQUOTE><CODE>
+128.95.112.99 olive olive.cac.washington.edu
+</CODE></BLOCKQUOTE>
+<P>
+
+On PCs, the task of configuring the domain name is a bit different. Often
+times PCs do not have domain names-they have <EM>IP addresses</EM>. 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 <A
+HREF="installation.html#install-pc">PC specific installation notes</A> for
+help configuring the IP address with your network software. <P>
+
+With PCs, it is vital that users set the variable <A
+HREF="config.html#user-domain"><EM>user-domain</EM></A> in the <EM>Alpine</EM>
+configuration file (<CODE>PINERC</CODE>). <P>
+
+Details on configuring <EM>Alpine</EM> with correct domain names can be
+found in the <A HREF="config-notes.html#domain">Domain Settings</A>
+section of this document. <P>
+
+<HR>
+
+<H2><A NAME="rfc2822">RFC 2822 Compliance</A></H2>
+
+<EM>Alpine</EM> tries to adhere
+to <A HREF="ftp://ftp.isi.edu/in-notes/rfc2822.txt">RFC 2822</A>
+fairly strictly. <P>
+
+As far as outgoing email is concerned, <EM>Alpine</EM> 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.
+<EM>Alpine</EM> 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. <P>
+
+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. <EM>Alpine</EM>
+will insert the quotes automatically if needed. The common cases where this happens
+are with periods after initials and parentheses. <P>
+
+<EM>Alpine</EM> expects dates to be in the standard RFC 822 format
+which is something like:
+
+<PRE>
+ [www, ] dd mmm yy hh:mm[:ss] [timezone]
+</PRE>
+
+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. <P>
+
+<HR>
+
+<H2><A NAME="SMTP">SMTP and Sendmail</A></H2>
+
+<EM>Alpine</EM> is a <EM>user agent</EM> not a <EM>message transfer agent</EM> (MTA). In
+plain English, that means <EM>Alpine</EM> does not know how to interact with other
+computers on the Internet to deliver or receive email. What <EM>Alpine</EM> 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. <P>
+
+All outgoing email is delivered to an SMTP server
+or to a mail transfer agent.
+A common mail transfer agent is <CODE>sendmail</CODE>.
+The usual method of delivery used by <EM>Alpine</EM> is to use either a
+local or a remote SMTP server.
+
+<P> The selection of which MTA to use depends on the settings of
+<A HREF="config.html#smtp-server"><EM>smtp-server</EM></A>,
+<A HREF="config.html#sendmail-path"><EM>sendmail-path</EM></A>,
+and compile-time options.
+The first MTA specified in the following list is used:
+
+<OL>
+
+<LI><EM>sendmail-path</EM> in
+<CODE>/usr/local/lib/pine.conf.fixed</CODE>
+
+<LI><EM>smtp-server</EM> in <CODE>/usr/local/pine.conf.fixed</CODE>
+
+<LI><EM>sendmail-path</EM> specified on the command line.
+
+<LI><EM>smtp-server</EM> specified on the command line.
+
+<LI><EM>sendmail-path</EM> in the user's <CODE>.pinerc</CODE> file.
+
+<LI><EM>smtp-server</EM> in the user's <CODE>.pinerc</CODE> file.
+
+<LI><EM>sendmail-path</EM> in <CODE>/usr/local/lib/pine.conf</CODE>
+
+<LI><EM>smtp-server</EM> in <CODE>/usr/local/pine.conf</CODE>
+
+<LI><CODE>DF_SENDMAIL_PATH</CODE> defined at compile time.
+
+<LI><CODE>SENDMAIL</CODE> and <CODE>SENDMAILFLAGS</CODE> defined at
+compile time.
+
+</OL><P>
+
+If the <EM>sendmail-path</EM> 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.
+<EM>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. </EM><P>
+
+If an <EM>smtp-server</EM> is specified,
+<EM>Alpine</EM> operates as an SMTP client. SMTP stands for <EM>Simple Mail
+Transfer Protocol</EM>; it specifies the rules by which computers on the
+Internet pass email to one another. In this case, <EM>Alpine</EM> 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 <EM>Alpine</EM> operate as an SMTP client, the
+<A HREF="config.html#smtp-server"><EM>smtp-server</EM></A> 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.
+<EM>PC-Alpine</EM> only runs as an SMTP client so the <EM>smtp-server</EM>
+option is mandatory. <P>
+
+For UNIX <EM>Alpine</EM>,
+if neither <EM>smtp-server</EM> or <EM>sendmail-path</EM> is set,
+the default <CODE>sendmail</CODE> program is
+invoked with the "<CODE>-bs -odb -oem</CODE>" flags, and the message
+is sent using the SMTP protocol.
+<P>
+
+<HR>
+
+<H2><A NAME="IMAP">Internet Message Access Protocol (IMAP)</A></H2>
+
+IMAP is a remote access protocol for message stores. <EM>Alpine</EM> 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 <EM>Alpine</EM>) 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 "<A
+HREF="http://www.imap.org/imap.vs.pop.brief.html">Comparing Two Approaches
+to Remote Mailbox Access: IMAP vs. POP</A>" by Terry Gray. A more
+detailed exploration of message access may be found in the paper "<A
+HREF="http://www.imap.org/imap.vs.pop.html"> Message Access Paradigms and
+Protocols</A>."
+<P>
+
+IMAP Features:
+
+<UL>
+
+<LI> Allows access to mail folders from more than one client computer.
+
+<LI> Works well over low-bandwidth lines because information is sent in
+small pieces as needed by the user. For example, only header information
+is sent to build index lists, and if someone sends a large audio file via
+MIME, you can choose when (or if) you want to get that part of the
+message.
+
+<LI> Email can be delivered and stored on a well-maintained and reliable
+server which is "always-up".
+
+<LI> Folders can be accessed and manipulated from anywhere on the
+Internet.
+
+<LI> Users can get to messages stored in different folders within the same
+<EM>Alpine</EM> session.
+
+<LI> Allows use of IMAP server for searching and parsing.
+
+<LI> The latest revision of IMAP (IMAP4) also provides for disconnected
+operation, including resynchronization of message state between mail
+servers and message caches on clients. <EM>Alpine</EM> does not support this
+capability, however.
+
+</UL>
+
+IMAP4rev1 is described in <A
+HREF="ftp://ftp.isi.edu/in-notes/rfc3501.txt">RFC 3501</A>. Further
+information about IMAP may be obtained from the University of Washington's
+<A HREF="http://www.washington.edu/imap/">IMAP Information Center</A>.<P>
+
+<EM>Alpine</EM> is an IMAP4rev1 client.
+<P>
+
+<HR>
+
+<H2><A NAME="MIME">Multipurpose Internet Mail Extensions (MIME)</A></H2>
+
+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
+<EM>Alpine</EM> 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. <P>
+
+The MIME standard was officially published in June of 1992 as <A
+HREF="ftp://ftp.isi.edu/in-notes/rfc1341.txt">RFC 1341</A> and subsequently
+revised in <A HREF="ftp://ftp.isi.edu/in-notes/rfc2045.txt">RFC 2045</A>
+when it became a full Internet Standard. <EM>Pine</EM> 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. <P>
+
+The MIME standard also includes support for non-ASCII text in message
+headers through the extensions described in <A
+HREF="ftp://ftp.isi.edu/in-notes/rfc1342.txt">RFC 1342</A> and subsequently
+revised in <A HREF="ftp://ftp.isi.edu/in-notes/rfc2047.txt">RFC 2047</A>. <P>
+
+An actual MIME message looks something like this:
+
+<PRE>
+Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
+From: David L Miller &lt;dlm@cac.washington.edu&gt;
+To: David L Miller &lt;dlm@cac.washington.edu&gt;
+Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?= =?iso-8859-1?Q?=E2=E3=29?=
+Message-Id: &lt;Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu&gt;
+Mime-Version: 1.0
+Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
+Content-Id: &lt;Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu&gt;
+
+ 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: &lt;Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu&gt;
+
+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: &lt;Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu&gt;
+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--
+
+</PRE>
+
+For details about <EM>Alpine</EM>'s implementation of MIME, see the two MIME sections
+"<A HREF="low-level.html#MIME-read">MIME: Reading a Message</A>" and
+"<A HREF="low-level.html#MIME-send">MIME: Sending a Message</A>" later
+in this document. <P>
+
+<HR>
+
+<H2><A NAME="collections">Folder Collections</A></H2>
+
+Folder Collections are <EM>Alpine</EM>'s way of dealing with more than a single group
+of folders. <P>
+
+For a more complete description of Folder Collections, see the section on
+"<A HREF="config-notes.html#collections">Syntax for Collections</A>." <P>
+
+The <EM>Alpine</EM> distribution is designed to require as little configuration and
+effort at compile time as possible. Still, there are some <EM>Alpine</EM> behaviors
+which are set at the time you compile <EM>Alpine</EM>. 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. <P>
+
+<!-- pnuts -->
+</BODY>
+</HTML>