debug ANSI_X3.4-1968
debug ANSI_X3.4-1968
                              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.

   Pine  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  Pine configuration file, or rely on the file /etc/hosts which
   usually  sets the name of the local host. While Pine 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.

     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
   Pine configuration file (PINERC).

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

RFC 822 Compliance

   Pine tries to adhere to RFC 822 a little more strongly than some other
   mailers  and  uses  the  "full  name <address>" format rather than the
   older "address (full name)" format. The intent of the standard is that
   parentheses  should  only be for comments. Pine displays and generates
   the newer format, but will parse the old format and attempt to turn it
   into the new one.

   As  far as outgoing email is concerned, Pine 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.  Pine  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   newer  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  822  appear  in the full name, quotes are required around the
   address.  Pine  will insert the quotes automatically. The common cases
   where this happens are with periods after initials and parentheses.

   Because Pine fully complies with RFC 822, it is sometimes difficult to
   use  non-Internet address formats such as UUCP's host!user or DECNet's
   USER::HOST  with  Pine. People who run Pine on these systems have made
   local  modifications  to  Pine  or  to  the mail transport agent (e.g.
   sendmail) to make things work for them.

   Pine  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 displayed as xxx xx when shown in
   the FOLDER INDEX screen.
     _________________________________________________________________

SMTP and Sendmail

   Pine  is  a user agent not a message transfer agent. In plain English,
   that  means Pine does not know how to interact with other computers on
   the  Internet  to deliver or receive email. What Pine 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 a mail transfer program or to an
   SMTP server. The most common mail transfer program is sendmail.

   Pine 3.91 and earlier:
          When  Pine on a UNIX computer uses the local sendmail, it first
          writes  the message to a temporary file in /tmp. Then Pine runs
          a  shell  in the background that runs sendmail on the temporary
          file  and  then  removes  it.  This is done with a shell in the
          background  so  the  user  doesn't have to wait for sendmail to
          finish.  By  default,  sendmail  is invoked with the -t flag to
          cause  it  to  read  and  parse  the  header  to  determine the
          recipients;  the  -oem  flag to cause errors to be mailed back;
          and  the  -oi flag to ignore dots in incoming messages. Systems
          administrators  can choose to configure Pine to use a different
          mail  transfer  program  or even sendmail with different flags.
          See  the  section  on  UNIX  Pine Compile-time Options for more
          details on this.

          Pine can also operate 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,  Pine 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  Pine  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 SMTP servers. PC-Pine only runs as an SMTP client.

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

         1. sendmail-path in /etc/pine.conf.fixed
         2. smtp-server in /etc/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 /etc/pine.conf
         8. smtp-server in /etc/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.

          If  an  smtp-server is specified, a connection to the server is
          opened.  If  the  message  contains  8-bit text, ESMTP 8BITMIME
          negotiation  is  attempted. The message is then sent using SMTP
          commands.

          If  none  of the above are set, the default sendmail program is
          invoked  with  the  "-bs -odb -oem" flags, ESMTP negotiation is
          attempted, and the message is sent.
     _________________________________________________________________

Internet Message Access Protocol (IMAP)

   IMAP is a remote access protocol for message stores. Pine uses IMAP to
   get  at  messages  and  folders  which reside on remote machines. With
   IMAP,  all  messages  are  kept on the server. An IMAP client (such as
   Pine) can request specific messages, headers, message structures, 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." These papers
   may  be  found  in  the /mail directory of the anonymous FTP server at
   ftp.cac.washington.edu.

   IMAP Features:
     * Allows access to mail folders from more than one client computer.
     * 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
       2MB  audio  file via MIME, you can choose when (or if) you want to
       get that part of the message.
     * Email  can  be  delivered  and  stored  on  a  well-maintained and
       reliable server which is "always-up".
     * Folders  can  be  accessed  and  manipulated  from anywhere on the
       Internet.
     * Users  can  get to messages stored in different folders within the
       same Pine session.
     * Allows use of IMAP server for searching and parsing.
     * The latest revision of IMAP (IMAP4) also provides for disconnected
       operation,  including  resynchronization  of message state between
       mail  servers  and  message  caches  on clients. Pine does not yet
       support this capability, however.

   IMAP2  is  defined  in  RFC 1176. IMAP4rev1, the revision to IMAP2, is
   described  in RFC 2060. Further information about IMAP may be obtained
   from  the  University  of  Washington's IMAP Information Center on the
   World Wide Web.

   Pine 4.00 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  Pine  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. It
   also  provides  a  simple  rich  text format for marking text as bold,
   underlined,  and  so  on.  There is a mechanism for splitting messages
   into multiple parts and reassembling them at the receiving end.

   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. Support for RFC 2047 was added in Pine 3.92.

   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?=    =?i
so-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  Pine'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 Pine's way of dealing with more than a single
   group  of folders. With advent of PC-Pine and the development of tools
   within  IMAP  to  better  manage  remote folders, the time was ripe to
   provide  a  mechanism  for defining a group of remote folders. PC-Pine
   forced  the  issue  in  that  many  potential  PC-Pine  users would be
   migrating  from  UNIX  Pine  in  a time-sharing environment and, thus,
   would have some investment in their archived messages on that host.

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

   The  Pine  distribution is designed to require as little configuration
   and  effort  at  compile  time as possible. Still, there are some Pine
   behaviors  which  are  set  at  the time you compile Pine. 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.
