meillo@0: .H0 "Introduction meillo@0: .P meillo@2: This chapter describes the background of the topics in this thesis. meillo@2: General knowledge of electronic mail is assumed. meillo@0: meillo@0: .H1 "What is MH? meillo@0: .P meillo@2: MH is an electronic mail system, originating in the RAND Corporation. meillo@2: Historically, it had been a all-in-one mail system, with Mail Transfer meillo@2: Agent (MTA) and Mail User Agent (MUA). meillo@2: Later, when electronic mail systems changed, Mail Submission Agent (MSA) meillo@2: and Mail Retrieval Agent (MRA) facilities were added. meillo@2: The MTA became less important, whereas the MUA became even more the meillo@2: central part. meillo@2: .P meillo@2: First of all, MH is a style of a mail handling system. meillo@2: It had started as a design proposal, not as an implementation, and meillo@2: had in spirit remained so. This is similar to Unix, which much less meillo@2: is a specific software product, as it is a style of system design. meillo@2: MH is a toolchest of programs, modelled after the Unix toolchest, meillo@2: and it is a specific mail storage format, like Unix has its file system meillo@2: formats. meillo@2: meillo@2: .H1 "History of MH meillo@2: .P meillo@2: MH is an electronic mail system, originating in the RAND Corporation. meillo@2: In 1977, Norman Shapiro and Stockton Gaines had proposed the design meillo@2: of a new mail handling system, called ``Mail Handler'' (MH) for RAND, meillo@2: to superseed their ``Mail System'' (MS). meillo@2: Two years later, in 1979, XXX took the proposal and implemented a meillo@2: prototype of MH. It proved successful and replaced MS thereafter. meillo@2: .P meillo@2: A decade later, the University of California had started to use MH. meillo@2: They also took over its development and pushed MH forward. meillo@2: This had been the time when the Internet appeared, Berkeley implemented meillo@2: the TCP stack, and Sendmail was born. MH had often contained the first meillo@2: implementation of new RFCs. meillo@2: .P meillo@2: In the nineties, MH had been moved into the public domain, making it meillo@2: attractive to Free Software developers. The Internet had started to become meillo@2: mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler'' meillo@2: (nmh), a fork of MH. He intended to modernize MH, improve its MIME meillo@2: capabilities, and this should be done openly within the Internet meillo@2: community. Today, nmh almost completely replaced the original MH. meillo@0: meillo@0: .H1 "How the Fun Began meillo@0: .P meillo@2: I have discovered nmh in XXX. I used to use mutt, like many meillo@2: command-line-attracted Unix users. Nmh had convinced me conceptually meillo@2: at once. Unfortunately, setting it up to a convenient state became a meillo@2: tendious task. Learning its different model of email handling had, meillo@2: in contrast, been relatively easy. Learning to use MH if you are used meillo@2: to monolithic mail clients is like learning vi if you are used to meillo@2: modeless editors. meillo@2: Once having nmh set up, using it was joy because of its conceptional meillo@2: elegance and scripting capabilities, but on the other hand it was meillo@2: inconvenient in handling attachments, non-ASCII character encodings, meillo@2: and similar stuff. I found it wrong to require more and more scripts meillo@2: and configuration to have it act the expected way. In being a meillo@2: software developer, I wanted to improve the situation. meillo@2: .P meillo@2: In Spring 2010, I asked on the nmh-workers mailing list for the meillo@2: possibility to have a Google Summer of Code project on nmh. Being a meillo@2: student, this appeared attractive to me. Eventually, it had not been meillo@2: possible, but the nmh community started to move. In these months meillo@2: nmh's future was discussed and I became part of a ``Does nmh need an meillo@2: MTA'' discussion. There, my opinion differed from the opinion of meillo@2: most others. meillo@2: .P meillo@2: As it hadn't been possible to work on nmh in a way that would be meillo@2: accepted as part of my official studies, I needed to get my credit meillo@2: points in some other way. But half a year later I was back. Starting meillo@2: in Summer 2010, I took one semester off to travel through Latin America. meillo@2: Within this time, I needed to do practical computer work for three meillo@2: months. Richard Sandelman, an active nmh user, made it possible for meillo@2: me to work on nmh during this time. Juan Granda, from Santiago del meillo@2: Estero in Argentina, provided a computer and Internet connection. meillo@2: Within these three month, I became familiar with nmh's code base and meillo@2: its community. I learned how things work. Quickly it was obvious that meillo@2: I wouldn't succeed to improve on the non-ASCII character encoding meillo@2: problems, as this is one of the most intricate parts of the system. meillo@2: Instead I improved code as I read through it. I found minor bugs in meillo@2: the code and could improve the documentation. When I started with meillo@2: larger code changes, I had to discover that the community's wish for meillo@2: compatibility was stronger than its wish for convenient meillo@2: out-of-the-box setups. This lead to long discussions, again. Finally, meillo@2: I understand their point of view, but it's not mine. meillo@2: At the end of my three-month project, I had became familiar with meillo@2: nmh's code base and community, I had improved both a bit, and I still meillo@2: was convinced that I wanted to go on with it. meillo@2: .P meillo@2: Another half a year later, I needed a topic for my master's thesis. meillo@2: Now it was clear: I wanted to work on nmh. No, not exactly nmh, meillo@2: because I had accepted that the nmh community has different goals meillo@2: than I have. The won't be much progress if generally different opinions meillo@2: lead to long discussions. After careful thought, I had decided to meillo@2: start an experimental version of nmh. I wanted to go my way and see meillo@2: where it would lead to. Time would tell if it would prove successful. meillo@2: Nmh would hardly be hurt by my work, but could profit from my meillo@2: experiences later. meillo@2: .P meillo@2: When I started to work on mmh, my experimental version, in Fall 2011, meillo@2: activity in nmh rose suddenly. While I was working on mmh, XXX were meillo@2: working on nmh. After long years of idleing, nmh was actively meillo@2: developed again. That was a good sign. My own work went in parallel meillo@2: and unrelated. Today, my experimental version became de facto a fork. meillo@2: The mail storage, however, is still compatible.