Article 156030 of comp.os.vms: Path: nntpd.lkg.dec.com!lead.zk3.dec.com!pa.dec.com!decwrl!lll-winken.llnl.gov!enews.sgi.com!news.mathworks.com!mvb.saic.com!info-vax From: Andy Harper - KCL Systems manager Newsgroups: comp.os.vms Subject: PINE for VMS - new beta available Message-ID: <009A9029.47F0AAA0.2472@alder.cc.kcl.ac.uk> Date: Fri, 27 Sep 1996 18:22:18 BST Organization: Info-Vax<==>Comp.Os.Vms Gateway X-Gateway-Source-Info: Mailing List Lines: 282 A new beta of PINE for VMS is available (PINE 3.91 for VMS BETA 8) which contains a number of changes to improve stability. PINE is a mail program that supports the IMAP protocols to access mailboxes on remote servers. The package includes PINE (an IMAP client) and IMAPD (an IMAP server). More Details are enclosed below for those interested. Note that this will likely be the last beta of PINE 3.91 (unless any problems show up) and I'll concentrate my efforts on porting a more recent version (the latest is 3.95) now that the basic VMS requirements are understood. Regards, Andy Harper Kings College London What is IMAP ? -------------- Several people asked 'what is IMAP' after my earlier message went around. Well it's a protocol that allows a client to access mailboxes on a server. It differs from the POP protocol in a number of key areas: * POP only accesses the NEWMAIL folder; IMAP can access any folder * POP downloads messages to the client; IMAP keeps them on the server (in either case, messages can be downloaded or left on the server if you wish but access to such messages with POP becomes tricky). POP is not good for people who move from PC to PC, whereas IMAP handles this neatly. * POP can only read a mailbox and delete items from it; IMAP can additionally search, rename and store (though these are not implemented in this VMS port). This allows suitable clients to move messages between folders on different systems. What Mail clients use IMAP? --------------------------- Most of the clients around still use POP (Eudora, pegasus, netscape mail etc.) but a number are starting to incorporate IMAP access to. The commercial one we use is called Simeon by ESYS Corporation (this is not a recommendation and I have no connection with the company!) and there is a freeware one called ATISMAIL around. There's also talk of adding IMAP to NETSCAPE mail and perhaps EUDORA. It IS an internet 'standard' and is therefore likely to become more prevalent over time. What about this IMAP server? ---------------------------- We had a need for a functional IMAP server on our VMS systems, and a number of others seemed to be interested too, so I set about finding one. One such is the IMAPD server included with the PINE software from Univ. of Washington, which was ported to VMS by Yehavi Bourvine (based on the one included in the PINE 3.91 kit from U of Washington). This was known as 3.91 beta 5 for VMS. I've updated Yehavi's port with some additional bug fixes and features and my latest beta is 3.91 Beta 8. Although there are later releases of pine (3.95 is current I believe) there are no working VMS ports (though 3.95 does include a partial port which is grossly incomplete). My improvements to 3.91 are primarily: * Fixing some problems with PINE sending mail out * Completing the port of the IMAP server * Fully supporting the NETLIB TCP/IP interface * Adding a few new features, such as logging and decnet node mapping * Supporting builds with DEC C 5.3 and VAXC 3.2, on both VAX and ALPHA AVAILABILITY: ------------- FTP: ftp://ftp2.kcl.ac.uk/zip/pine_3_91_beta_8.zip (ZIP format) RECENT CHANGES -------------- 3.91 Beta 8 - Changes since 3.91 Beta 7 --------------------------------------- C-CLIENT LIBRARY CHANGES: ========================= * [.IMAP.ANSI.C-CLIENT]VMSIO.C : Added a 'special_puts' routine to intercept 'puts' calls for the network. Implemented for the IPOP3D server. 27-SEP-1996 * [.IMAP.ANSI.C-CLIENT]VMSIO.C : added a check on the LOG macro; if not defined, define it to do nothing (in case user program has not set up logging). 27-SEP-1996 * [.IMAP.ANSI.C-CLIENT]VMSIO.C : Fixed up a bug in the size of the input buffer. It was one too small and didn't leave room for the terminating null. 27-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSM.C : Fixed up the get_local_host_name to use mylocalhost() and avoid code duplication. 26-SEP-1996 * [.IMAPD.ANSI.C-CLIENT]TCP_VMSL.C : Added the tcp_clienthost routine to get the name of the calling host. This returns returns, in order of precedence, one of: calling system name, calling system address or "UNKNOWN". 26-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSM.C : Various minor problems fixed up in the MULTINET interface. 25-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSL.C : Various minor problems fixed up in the NETLIB interface. 25-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSN.C : Modified the 'get_local_host_name' routine to call mylocalhost and avoid code duplication. 25-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSL.C : Modified the 'get_local_host_name' routine to call mylocalhost and avoid code duplication. 25-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSM.C : Modified the 'get_local_host_name' routine to call mylocalhost and avoid code duplication. 25-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSL.C : Added a routine (tcp_server_init) to the NETLIB interface to set up a TCPSTREAM for the standard I/O channels allocated by netlib when started by the master server. 24-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSM.C : Added a routine (tcp_server_init) to the MULTINET interface to set up a TCPSTREAM for the standard I/O channels allocated when started by the master server. 24-SEP-1996 * [.IMAP.ANSI.C-CLIENT]TCP_VMSL.C : Modified NETLIB interface modules to support NETLIB 2.0 (NETLIB 2.0 or above is now required). 24-SEP-1996 IMAPD CHANGES: ============= * [.IMAP.ANSI.IMAPD]IMAPD.C : Replaced the definitions for the SYSLOG calls (which don't exist on VMS) to generate no compiler warnings. 27-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Split out the special vmsio network server intercept code into separate modules VMSIO.H and VMSIO.C. This way, they can be included into other modules as needed (also makes editing of new releases much easier). 27-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Added a call to log the calling host if logging is on. 26-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Fixed up the special_printf code to return the proper status and, in particular, the error status. Also tidied up a few odds and ends. 26-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Fixed up bug whereby vms_mail_open routine could not find mailbox. Don't know why this occurs for sure but it's fixed by checking for a user specified mailbox directory and adding in the default if it's not there. The VMS_MAIL open routine should do this but it doesn't seem to work right. The previous fix prevented the user specifying an alternative. 25-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Modified the special I/O routine 'special_printf' to use var_args constructs. 25-SEP-1996 * [.IMAP.ANSI.IMAPD]IMAPD.C : Modified network interface code to use only calls to the TCP interface modules, rather than ifdefing code to support MULTINET/NETLIB. The main IMAPD program should now be independent of the particular stack used. 25-SEP-1996 PINE CHANGES: ============= * [.PINE]OS_VMS.C : Fixed a problem with inode comparisons that was preventing compilation under VAX C. 26-SEP-1996 * [.PINE]OS_VMS.C : Modified the network interfaces to use the routines in the tcp interface module rather than using ifdefs to select different code for different network interfaces. PINE itself should now be free of stack dependencies (all hidden in the tcp_vmsx.c modules from the c-client library). 24-SEP-1996 * [.PICO]COMPOSER.C : function packheader did not allow for a null length string when checking for a terminating comma. This could cause an access violation. I've patched the code to check for a null string and ignore it if it's there. 13-SEP-1996 * [.PINE]PINE.H : Updated version string to indicate beta 8. 13-SEP-1996 POP3 SERVER CHANGES: ==================== * [.IMAP.ANSI.IPOPD]IPOP3D.C : First stab at building the POP3 server for VMS. Included the VMSIO code, some changes to mailbox naming and sorted out the SYSLOG calls (which don't exist on VMS). It works! Must be started by a master server on port 110. It is NOT usable as a detached process listening out for calls. 27-SEP-1996 GENERAL CHANGES: ================ * VMSBUILD.COM : Modified each one to accept a VAXC option to allow the use of the VAXC compiler instead of the default DEC C compiler. This is most useful for testing that the whole thing compiles under the various compilers. The default is to select whichever compiler exists, with DEC C being preferred. 27-SEP-1996 * AAAREADME.TXT : Added information about special setups that might be necessary for specific stacks (MULTINET and UCX). 27-SEP-1996 * VMSBUILD.COM : Tidied these up to add /NOLOG to delete and purge commands, turn off redundant verification and add progress messages, document parameters, add LINK-ONLY option. 27-SEP-1996 * [.PINE]VMSBUILD.COM : removed all references to stack type from the /DEFINE list as it's no longer referenced anywhere. 26-SEP-1996 * [.IMAP.ANSI.C-CLIENT]VMSBUILD.COM : removed all references to stack type from the /DEFINE list as it's no longer references anywhere. 26-SEP-1996 * Updated details of multiple smtp-servers in the configuration instructions. 13-SEP-1996 * Added a MAKECLEAN.COM procedure to delete the various .EXE, .OBJ and .OLB files created after a build. 12-SEP-1996