Birth of Mew
============

In April 1994, I started to program Mew. Since there were references,
inc and scan not to wait the exit, dynamic window configuration,
marks, and message cache were implemented in early time.

To tell the truth, Mew displayed MIME messages in MIME mode. When you
type `SPC' on a multipart MIME message, Mew moved from Summary mode to
MIME mode. Utashiro said to me, however, "Why MIME mode? Summary mode
is enough, isn't it?". It's a really breakthrough.

At this time, big problems were how to refile messages and to compose
complex MIME.

It is certain that if users are always forced to write Lisp, message
refile becomes easy. But I really hate to require users to setup Lisp
by themselves. "It is ridiculous to try to choose default
refile-folder from message header since there are thousands of
candidates. Rather, it is quite reasonable to select the default from
existing folder". When this idea hit my head, I could not wait for the
next morning. After that, refile feature was enhanced by Nomura.

How to compose complicated MIME message with easy operations? It is a
tragedy for users to be compelled to learn a composition grammar. I
really wanted to provide simple yet comprehensive method to users. It
was Youki that gave me the answer. Yes, MIME is file structure! We can
consider that a singlepart is a file while a multipart is a
directory. Users can create a file tree without any troubles, of
course, and it is a Mew's job to convert the file structure to MIME
format.

Meet to PGP
===========

I couldn't swipe out reservations to the implementation of FJPEM for a
long time, then PGP finally appeared in front of me in the early
summer of 1994. At that time, MIT tried to find a solution to make
non-commercial PGP legal against the RSA patent, so called PGP
2.5. The release of PGP 2.6 settled down the relationship between Phil
and RSADSI, yet PGP 2.6 based on RSAREF was under US export control.

Meet to 2.6ui based on 2.3a finally leaded me to be a PGP user. I
can't forget my first impression to PGP. It's a really well-designed
program.  In the summer of 1995, I took part in NDSS, so called ISOC
Security Symposium in San Diego. In addition of the proceedings, PGP
by Simson published from O'Reilly was delivered to early registered
participants. It's a masterpiece of masterpieces.  For these reasons,
I have spent time to integrate PGP and MIME rather than to integrate
PEM and MIME.

The idea that marks can represent encryption and signature was given
by Mine when we wrote a paper for IPSJ together. It took a time a bit
to understand its merit that marks could be canceled at any time.

Independence from MH
====================

"Get together in Fukuoka for good sushi!" Under these words, excellent
programmers came to Momochi, Fukuoka, where Fukuoka dome locates, in
April, 1997. Using Institute of Systems & Information Technologies,
Kyushu as a hacking room and Hyatt Regency as sleeping rooms, MH
independence project for 3 nights started.

Eating anyway, hacking as we like, and discussing comprehensively. We
repeated these steps over and over. As we left Fukuoka, Mew became
somehow independent on MH by using IM instead. (Engel's coefficient of
this week is, of course, very high...)

Afterwords, we discussed on mailing list, tried to achieve consensus,
and then hacked again and again. Finally master Utashiro casted a
spell to make IM much faster then IM beta version was released in
early July.

Integration of NetNews
======================

In the fall of 1994, I held Mew BOF(Birds Of a Feather) at WIDE camp.
Mr. Sano left unforgettable words to me: "Mailing-list is some between
Email and NetNews". It's like I saw a light in darkness. Now that Perl
5 become stable, the integration of NetNews is coming soon.

Where will Mew go?
******************

This section describes features and concepts implemented in 2.xx or
later.

Internet message
================

We here explain the concept "Internet message" to integrate Email,
mailing-list, and NetNews.

Categorizing Email, mailing-list, and NetNews results in the following
table. "delivery range" indicates a range that a message is delivered
and "receivers" means whether or not receivers are specified.

                        Email      mailing-list      NetNews
     delivery range     small         middle         huge
     receives         specified   un/specified   unspecified

In this way, Email, mailing-list, and NetNews have a gradual
relationship, so it is a good idea to treat them with the same concept
"Internet message".

You specify To: or Cc: for Email and mailing-list. Since you don't
distinguish To: in Email and To: in mailing-list, it is not matter if
we have the same view for Newsgroups: in NetNews and To: in Email or
mailing-list.

Thus, if interface is intelligent enough, we can specify To:, Cc: and
Newsgroups: at the same time as follows:

     To: person@foo.ac.jp
     Cc: ml@bar.com
     Newsgroups: comp.baz
     Subject: test
     From: kazu@xxx.ac.jp

     The body.

If this kind of representation is allowed, we can handle Email,
mailing-list, and NetNews comprehensively with just three operations
-- writing, answering, and forwarding though the current operations
for them are complicated and imperfect.

Writing a message
=================

You can specify To:, Cc: and Newsgroups: at the same time. Of course,
you can omit them if necessary.

     To: person@foo.ac.jp
     Cc: ml@bar.com
     Newsgroups: comp.baz
     Subject: test
     From: kazu@xxx.ac.jp

     The body.

A message interface speaks SMTP if To: and Cc: is provided, and it
uses NNTP with Newsgroups: for delivery of the message.

Answering a message
===================

When you execute the command of answering, a draft is prepared as
follows.

     To: kazu@xxx.ac.jp
     Cc: person@foo.ac.jp, ml@bar.com
     Newsgroups: comp.baz
     Subject: Re: test
     From: person@foo.ac.jp

     The body.

From: comes to To:, To: and Cc: to Cc:, and Newsgroups: to
Newsgroups:.  If the delivery range is over what you wish, please
remove unnecessary fields. This is a crucial point! Mew provides you
with only a very simple rule that Mew enumerates all possible delivery
range then a user removes unnecessary fields.

I know user requirements such as "I want to reply just by Email" or
"I'd like to follow up just NetNews". But it is very hard to decide
rules for various user action patterns that makes everybody
happy. Perhaps such rules becomes very complicated and hard to
understand. I therefore never change the policy up above.

When we learn a lot after the integration of Email and NetNews, Mew
may provide a method like "reply by Email". But it is not more or less
than a shortcut.

Forwarding a message
====================

When you execute the forwarding operation, you are asked to input To:,
Cc: and Newsgroups:. So, you can forward a message between any kind of
services. MIME format is used for forwarding.

     To: guy@foo.ac.jp
     Cc: ml@bar.com
     Newsgroups: comp.hack
     Subject: Forward: test
     From: Alice
     MIME-Version: 1.0
     Content-Type: Multipart/Mixed; boundary=boundary
     Content-Transfer-Encoding: 7bit

     --boundary
     Content-Type: Text/Plain; charset=us-ascii
     Content-Transfer-Encoding: 7bit

     I received this kind of message.

     // Alice

     --boundary
     Content-Type: Message/Rfc822
     Content-Transfer-Encoding: 7bit

     To: person@foo.ac.jp
     Cc: ml@bar.com
     Newsgroups: comp.baz
     Subject: test
     From: kazu@xxx.ac.jp

     body

     --boundary--

Itchy to implement
==================

I would like to make a multipart editor.

   * It can rewrite improper fields. You can modify, for instance,
     Subject: or record that you certainly replied to this message.
   * It can modify multipart.
   * It can forward encrypted massages to a "third" person.

Availability and mailing-list
*****************************

This chapter describes how to get Mew and related mailing-lists.

How to get Mew?
===============

The latest Mew is available from the following repository.

     ftp://ftp.Mew.org/pub/Mew/mew-current.tar.gz

Samples are given time to time under the following file name:

     ftp://ftp.Mew.org/pub/Mew/samples.tar.gz

Mailing list
============

A new version is announced to

     mew-release@Mew.org

in English. If you wish to join, please send a message to

     mew-release-ctl@Mew.org

whose the first line of its body is "#help" (without quotes). This
list is under access control so that nobody but the author can post.

Acknowledgement
***************

First and foremost, I would like to thank Mine Sakurai. If she had not
have implemented mhpem and inspired me, Mew would not be
realistic. She also implemented most part of mew-url and mew-pem(that
are obsolete, though). It is she that gives me an idea of mark based
composing. To her goes my deepest gratitude.

The author of Mew would sincerely like to acknowledge Kazumasa
Utashiro for telling me simplicity of Summary mode, Youki Kadobayashi
for noticing me a scheme to map file structures to MIME, Motonori
Nakamura for his precious suggestions regarding with Email, and Susumu
Sano for giving me a hint to integrate Email and NetNews.

Kiyotaka Sakai always contributes neat codes. Yoshinari Nomura
enhanced functionality of message refile. Mikitomo Ushijima always
proofreads my poor English. Keiichi Shima encouraged me to write
Info. I very much appreciate.

I would like to thank David Worenklein for contributing many
codes. I'm grateful to Atsushi Shionozaki, Darren Stalder, and David
Worenklein for proofreading my paper. I'd like to acknowledge to
Scandinavia guys for their good suggestions.

My deep gratitude goes to Jun'ichiro Ito, Yoshiaki Kasahara, Motonori
Nakamura, Yoshinari Nomura, Kazunori Nishi, and Hidenori Ohta for
their help to create IM. My thank also goes to Kazumasa Utashiro for
making IM much faster. I would acknowledge to Fujikazu Okunishi for
his contribution on OS/2 area and his comprehensive tests. Significant
works to run Mew on Win95/WNT were mostly accomplished by Shuichi
Kitaguchi and Shuhei Yamaguchi. Yuuichi Teranishi made Mew funny on
XEmacs.

Mew is supported by contributions from many users. I'd like to express
hearty thanks to those who are not listed here. The author is
hell-of-a busy guy, so he can't afford to respond all Emails. I'm so
sorry if you have not received my reply.

Copyright
*********

Mew conforms the following copyright.

Copyright (C) 1994, 1995, 1996, 1997, 1998 Mew developing team.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
  3. All advertising materials mentioning features or use of this
     software must display the following acknowledgement: This product
     includes software developed by Mew developing team and its
     contributors.
  4. Neither the name of the team nor the names of its contributors
     may be used to endorse or promote products derived from this
     software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

If you wish to distribute Mew in CD or something, please let me
know. I never go mad even if you don't tell me but I'm very grad if
you do so.  I have never declined requirements.

The copyright of this Info belongs to the author. It is granted to
copy, modify, redistribute this Info but no warranty.

About the author
****************

Kazuhiko YAMAMOTO // Kazu

In 1970, Kazu was born at Hikari city, Yamaguchi prefecture, Japan,
where is surrounded by a beach with "Rainbow pine forest" in the
south, by an abundant river in the east, by gentle mountains in the
north and the west. When he was a junior high-school student, he
watched the movie "War Game", which made him interested in computer
security. He had been grown with beautiful nature at Hikari city until
high school.

He was moved to Fukuoka city to take a course of electronic
engineering at Kyushu university in 1988. Despite of pain from the
urban city, the dirty ocean, and the language barrier, he somehow
graduated from the university. Email appeared to him in the third year
and the Internet fascinated him through the fourth. The trial to be a
employee of Sun Microsystems to visit the US failed because US' visa
policy became severe at that time.

He took a course of Computer Science and Communication Engineering at
the graduate school of Kyushu university in 1992. The specialty was
Internet routing. He started to make security knowledge and technology
widely spread to the Japan portion of the Internet community. He
finally released "Happy Networking", one of the most popular
beginner's guide of the Internet, in the spring of 1993.

He moved to Nara Institute of Science and Technology as a research
associate in 1994. During the four years of faculty life, he developed
Mew. Since he reached a conclusion that he should concentrate on
programming in young days and it's possible to educate students when
he will became older, he moved to IIJ Research Laboratory in 1998.

Research areas: Messaging sytem, IP version 6
Favorite words: "Challenges start everyday."
Favorite words: "Living is learning. Giving is taking."

Email: Kazu@Mew.org
URL: http://www.mew.org/~kazu/
PGP fingerprint:  6B 63 38 88 67 5E 96 8E  CE A4 62 73 3F 11 64 94

Terminology
***********

Here is terminology for Mew.

`folder'
     Directories to save received messages.
`Summary mode'
     A mode to display a list of messages.
`Message mode'
     A mode to display a content of a text message.
`Draft mode'
     A mode to write or compose a message.
`MIME'
     A format to contain objects other than text in a body and to
     embed non-alphabetical words in a header. With MIME you can
     enclose text files, picture files and audio files at the same
     time, and insert your first language such as Japanese into
     Subject:. It is an acronym of "Multipurpose Internet Mail
     Extensions". For more information, please refer to MIME.
`PGP'
     A program to accomplish encrypted message and digital signature
     created by Phil Zimmermann. An acronym for "Pretty Good Privacy".
`composer'
     An interface to write or compose a message. Regarding with Mew,
     it is Draft mode.
`viewer'
     An interface to read or view messages. As far as Mew is
     concerned, it is Summary mode and Message mode.
`Email'
     A short word for "electronic mail".
`NetNews'
     It was also known as "USENET news".
`message'
     An integrated concept of Email, NetNews, MIME, etc. A short word
     of "Internet message".

Bibliography
************

This section shows you bibliography. RFC(Request For Comments) is a
series of documents to share our knowledge about the Internet Protocol
suite. It is available, for instance, from the following repository.

     ftp://ftp.isi.edu/in-notes/

If you are a beginner of Email and NetNews and don't know the systems
well, the following would be a cheerful starter(Sorry, it's written in
Japanese).

   * Kazuhiko Yamamoto, "Happy Networking", ASCII Publishing, 1994.

Please read the following RFC to learn manner on the Internet.

   * S. Hambridge, "Netiquette Guidelines", RFC 1855, 1995

To understand the format of good old text Email and the delivery
system, please refer to:

   * D. Crocker, "Standard for the format of ARPA Internet text
     messages", RFC 822, 1982
   * J. Postel, "Simple Mail Transfer Protocol", RFC 821, 1982

MIME is specified in the following RFCs.

   * N. Freed and N. Borenstein, "Multipurpose Internet Mail
     Extensions (MIME) Part One: Format of Internet Message Bodies",
     RFC 2045, 1996.
   * N. Freed and N. Borenstein, "Multipurpose Internet Mail
     Extensions (MIME) Part Two: Media Types" RFC 2046, 1996.
   * K. Moore, "MIME (Multipurpose Internet Mail Extensions) Part
     Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
     1996.
   * N. Freed, J. Klensin and J. Postel, "Multipurpose Internet Mail
     Extensions (MIME) Part Four: Registration Procedures", RFC 2048,
     1996.
   * N. Freed and N. Borenstein, "Multipurpose Internet Mail
     Extensions (MIME) Part Five: Conformance Criteria and Examples",
     RFC 2049, 1996.

You can find the format and distribution protocol of NetNews in the
following RFCs.

   * M. Horton and R. Adams, "Standard for interchange of USENET
     messages", RFC 1036, 1987.
   * B. Kantor and P. Lapsley, "Network News Transfer Protocol: A
     Proposed Standard for the Stream-Based Transmission of News", RFC
     977, 1986.

The following document contains concise yet comprehensive explanations
about PGP.

   * PGP: Petty Good Privacy, Simson Garfinkel, O'Reilly & Associates,
     Inc, 1995.

For details of an integration of PGP and MIME, please refer to:

   * J. Galvin, S. Murphy, S. Crocker and N. Freed, "Security
     Multiparts for MIME: Multipart/Signed and Multipart/Encrypted",
     RFC 1847, 1995.
   * M. Elkins, "MIME Security with Pretty Good Privacy (PGP)", RFC
     2015, 1996.

The following paper reports the research concerned with PGP/MIME.

   * Kazuhiko Yamamoto, "An Integration of PGP and MIME", in
     proceedings of Symposium on Network and Distributed System
     Security, pp 17 - 24, 1996.