Changes in metamail release 2.4 First of all, the distribution has been separated into several tar files: mm.2.4.tar.Z -- the metamail distribution that NSB supports. contrib2.4.tar.Z -- contributed sources dos2.4.tar.Z -- DOS binaries (still one version downlevel, may be upgraded soon) amiga2.4.tar.Z -- Amiga binaries & utilities Also, for those who have an ATOMICMAIL license, the sources are in a separate tar file. Changes in the main tar file: The default mailcap file has several new entries, and should be perused by system administrators with established mailcap files. It has a compose entry for external references, and it has an entry to use the "kterm" program for Japanese plain text mail. New script in bin directory: mailserver, a simple MIME mailserver easily installable via sendmail alias files. The metasend program can now take multiple files and pack them together as multipart MIME mail. These can be specified interactively or on the command line. See the man page for details. Metasend now works properly if you use -e when you aren't in batch mode. There's a new .mailrc option recognized by mailto: "set commasonly" tells mailto NOT to use spaces as address separators in the To and CC lists. This is not the default because the mailto defaults mimic BSD mail, but this setting will probably be preferred by anyone who is accustomed to a more modern Internet mail program. Metamail has a new switch, '-h' (for Hardcopy), which causes it to print things instead of display them. Printing mechanisms are specified by the "print" field in mailcap entries. Mailto now understands the mailcap "composetyped" field, which is like the compose field but allows the composing program to specify content-type and encoding. This is necessary when variable information needs to be included in the content-type parameters. There's a new program, "extcompose", which is used by mailto to compose "external-body" parts. There's even a man page, though it shouldn't really be needed. New "MM_RUNASROOT" environment variable has the same effect as "-r" switch. New metamail option, -w, tells metamail to forget about mailcap files. Instead, it simply decodes each part and writes it to a file in its pure (possibly binary) format. The splitmail program now puts quotation marks around "id" parameters -- they contain periods, so the quotes are required by MIME. Splitmail now reproduces the Newsgroup headers on the outer messages, to permit split messages to work properly in netnews. Splitmail now checks the syntax of the content-type header field carefully, and rejects messages that are syntactically invalid. Since splitmail is called by metasend and mailto, they now also enforce content-type syntax in this manner. The metamail build now uses relative path names rather than absolute ones for the symbolic links in the "bin" directory. Showexternal now handles the mail-server access type properly, using "server" instead of "name" and "site". However, for backward compatibility it will still use name & site if server is not specified. A few other showexternal bugs were also fixed. The base64 routines (used by metamail, metasend, mmencode, etc.) now handle CRLF translation properly. This is a tricky business. It depends on the correct setting of a new constant in config.h, NEWLINE_CHAR, which declares the local newline convention, if any. In "portable newline" mode, this character will always be translated into CRLF during base64 encoding. Similarly, during base64 decoding in this mode, CRLF will be mapped back onto the local newline convention. With the mmencode program, this mode is under user control, with the new "-p" option. FOR THOSE USING THE CODE, the "from64" and "to64" routines have a new parameter which causes this mode to be used. In metamail and mailto, the mode is turned on by default for base64 encodings of data of type "text" (any subtype), but not for other subtypes by default. However, the default behavior can be overriden by the mailcap flag "textualnewlines". A mailcap flag of "textualnewlines=1" will cause CRLF to be mapped to the local newline convention on decoding, while "textualnewlines=0" will prevent the mapping from taking place. This flag is necessaray only if the default rule (map CRLF to newline for text/*, but not for anything else) is not satisfactory in some context. The mailcap field "label" has been renamed "description" to conform to RFC 1343, although metamail & mailto still recognize "label" for backward compatibility. If a mailcap entry has a "label" or "description" field, metamail will now use it in the "do you want to run it" question to make things more intelligible. If you use "metamail -p" on something that is multipart/parallel, the parallelism is now inhibited, because this caused all sorts of strange interactions, e.g. with "more". In metamail, the "press return to go on" has become "press any key to go on". However, this still probably needs a little work before it works on SYSV, DOS, or Amiga. When it receives data of type application/octet-stream, or of an unrecognized type, and it decodes it and writes it to a file, metamail is now sensitive to the "name" parameter in choosing the file name, although it is also careful about overwriting existing files. The mailto program now watches for 8-bit characters in headers and encodes them properly, more or less, according to the prevailing value of MM_CHARSET. Mailto now understands continuation lines in .mailrc files -- lines that end with backslash are continued, e.g. for long aliases. Showpicture now works better for multiple files. It also tells you how to save a copy of the image file if you want to. The "mmencode" program has been renamed "mimencode", although the old name should also work. Fixed a bug where 'Q' didn't work right in the "do you want to run XXX" question. Fixed a bug in mailcap file parsing (in both mailto & metamail) where a subfield was ignored if there was no whitespace after the preceding semicolon. Fixed a mailto bug where if you included a file and hand-typed a content-type of "text/xxx", where "xxx" is neither "plain" nor "richtext", it got turned into "plain". Fixed so that when metamail gives the short description of a command to be executed, it skips over "csh", "sh", and any following "-" options. Mailto and metamail now use mktemp to generate temporary file names, which is more portable (especially to SYSV). Fixed a richtext bug that made some indentation screwy. Changed the makefiles from hardwired "cc" to "$(CC)" to make Gnu-philes happy. At Marshall Rose's suggestion, changed the quoted-printable-encoding routines to change any line that starts with "From " to start instead with "=46rom " Changed the mailer patch for Sun Mail to use "shell" instead of "system", avoiding problems when people have Mail running setuid or setgid. Picked up some more DOS fixes, including patches to work with the Microsoft compiler. Picked up some metamail fixes related to core leaks, core dumps, and file descriptor leaks. Mailto now writes a dead letter file if delivery fails. Audiosend now takes a single argument as the To: address. Fixed several scripts so that multi-word input doesn't cause errors on switch() statements. Fixed showpicture so that it doesn't ask you questions in MM_NOTTTY mode. In the mailto program, aliases are now case-sensitive, to better mimic the Mail program. Shownonascii now looks at an auxilliary variable, MM_AUXCHARSETS, and assumes the terminal can handle any character set which is a textual substring of that string. Thus if you have a kterm window going that can handle several character sets, you can set MM_AUXCHARSETS to something like "iso-2022-jp,iso-8859-1,us-ascii" and avoid opening unnecessary windows. When shownonascii can't find your font directory, it now tells you where it was looking, at least. Installed a newer & better Hebrew font. Mailto and metasend now generate Content-ID fields for each body part. Mailto now checks and warns you if you've typed in an unrecognized content-type when inserting a file. Mailto now has built-in support, under "~*", for sending untyped files as application/octet-stream. The contrib directory now includes "mime-compose.el" in the "emacs" subdirectory, for MIME composition under Emacs, courtesy of Marc Andreessen. The top-level Makefile now has an "install-all" and "uninstall-all" target that some sites might find useful for installing the system. Fixed the Elm patch to handle non-ASCII text properly. Fixed a bug in quoted-printable decoding that often added an extra newline when decoding quoted-printable data in a multipart message. Fixed a metamail bug whereby boundaries were matched improperly when the data line started with a matching boundary but then contained additional stuff and hence were not really boundary lines. Fixed a mailto bug that generated encoded non-ASCII strings in headers slightly incorrectly. New version of trn patch for metamail. Fixed several more metamail bugs, as per Tony Hansen's help. Renamed files in the fonts directory to keep file names under 14 chars. Moved "ezview" into "contrib" because it isn't very important any more.