Most wiki engines either use the World Wide Web with it’s HTTP protocol and derivatives for communicating with the users. Few are local, with maybe an option to synchronise the database over netwokr with WebDav or something like that. This idea here is to make a wiki that entirely relies on e-mail (SMTP and POP3/IMAP) to operate.
In the standard wiki model, users make HTTP requests for pages (using their borwsers), and the server software sends the content of these pages in form of HTTP responses. The browser is responsible for displaying the information and making more requests whenever needed.
In WikiOverMail, both requests and responses are simply e-mail messages. The user sends an e-mail requesting some page or action, and receives a response from the server, with the needed information. The mail reader is responsible for displaying the page and sending more e-mail messages when needed.
The idea might be a little silly and not really usable, but may be useful for brainstorming.
The HTTP protocol usually uses URIs in form http://domain-name/path-to-page?optional-parameters. There is no need to stick to this with e-mail wiki: we can use e-mail addresses for pages: page-title@domain-name, and then put the optional parameters in the subject line.
Obviously, we don’t need to use links or WikiWords in the message body – most mailreaders are perfectly capable of highlighting e-mail addresses in the mail text.
The default action is to “display” the page – that is, send its content. You request it by just sending an empty (or containing anything non-active) e-mail to the address of the page. The server responds with the page’s text.
The server’s response will contain the ‘edit’ command in the subject line, so simply responding to the e-mail with new page contents will change it.
The server will strip any quoting characters (like “>”) from the beginnings of the lines, and also any “attribution line” and signature.
People can request the RecentChanges page, and will receive the list of all changes performed recently, like on a normal wiki.
They can also (somehow) subscribe to the changes of all or selected pages, in which case they will be receiving diffs of changed pages.
The diffs can be also requested explicitly.
The software could actually act smarter than just replacing the pages with new content – it could parse the quoting characters to determine which parts of the current page they belong, and apply the changes accordingly – this way you don’t have to respond with full text of a pge, just enough to give the context.
This would be especially useful for responding to diffs.
If you send a request for a page that doesn’t exist, you will receive a “home page” of the wiki, but with the subject for creating that page. The page would also include an instruction to reply to the message with just the new page text to create a page.