sup
    by William Morgan <wmorgan-sup@masanjin.net>
    http://sup.rubyforge.org

== DESCRIPTION:

Sup is a console-based email client that combines the best
features of GMail, mutt, and emacs. Sup matches the power of GMail
with the speed and simplicity of a console interface.

Sup makes it easy to:
- Handle massive amounts of email.

- Mix email from different sources: mbox files (even across different
  machines), Maildir directories, IMAP folders, POP accounts, and
  GMail accounts.

- Instantaneously search over your entire email collection. Search
  over body text, or use a query language to combine search
  predicates in any way.

- Handle multiple accounts. Replying to email sent to a particular
  account will use the correct SMTP server, signature, and from
  address.

- Add custom code to handle certain types of messages or to handle
  certain types of text within messages.

- Organize email with user-defined labels, automatically track
  recent contacts, and much more!

The goal of Sup is to become the email client of choice for nerds
everywhere.

== FEATURES/PROBLEMS:

Features:

- Scalability to massive amounts of email. Immediate startup and
  operability, regardless of how much amount of email you have.

- Immediate full-text search of your entire email archive, using the
  Ferret query language. Search over message bodies, labels, from: and
  to: fields, or any combination thereof.

- Thread-centrism. Operations are performed at the thread, not the
  message level. Entire threads are manipulated and viewed (with
  redundancies removed) at a time.

- Labels instead of folders. Drop that tired old metaphor and you'll
  see how much easier it is to organize email.

- GMail-style thread management (but better!). Archive a thread, and
  it will disappear from your inbox until someone replies. Kill a
  thread, and it will never come back to your inbox (but will still
  show up in searches.) Mark a thread as spam and you'll never again
  see it unless explicitly searching for spam.

- Console based interface. No mouse clicking required!

- Programmability. It's in Ruby. The code is good. It's easy to
  extend.

- Multiple buffer support. Why be limited to viewing one thread at a
  time?

- Tons of other little features, like automatic context-sensitive
  help, multi-message operations, MIME attachment viewing, recent
  contact list generation, etc.

Current limitations which will be fixed:

- Support for mbox, remote mbox, and IMAP only at this point. No
  support for POP, mh, or GMail mailstores.

- No internationalization support. No wide characters, no subject
  demangling. 

- Unix-centrism in MIME attachment handling and in sendmail
  invocation.

- Several obvious missing features, like undo, filters / saved
  searches, message annotations, etc.

== SYNOPSYS:

  1. sup-import <source>+
  2. sup
  3. edit ~/.sup/config.yaml for the (very few) settings sup has

  Where <source> is a filename (for mbox files), an imap or imaps URI,
  or a mbox+ssh URI (for remote mbox files). You will be prompted for
  a username and password if required.

  sup-import has several options which control whether you want
  messages from particular mailboxes not to be added to the inbox, or
  not to be marked as new, so run it with -h for help.

  Note that Sup never changes the contents of any mailboxes; it only
  indexes in to them. So it shouldn't ever corrupt your mail. The flip
  side is that if you change a mailbox (e.g. delete messages, or, in
  the case of mbox files, read an unread message) then Sup will be
  unable to load messages from that source and will ask you to run
  sup-import --rebuild.

== REQUIREMENTS:

* ferret >= 0.10.13
* ncurses
* rmail
* highline
* trollop
* net-ssh

== INSTALL:

* gem install sup -y

== KNOWN BUGS IN OTHER PACKAGES:

* If you get an error about frozen strings in RubyMail when importing
  certain messages with attachments, in rmail, change line 159 of
  multipart.rb to:
    chunk = chunk[0..start]
  This is because RubyMail hasn't been updated since like Ruby 1.8.2.
  Please bug Matt Lickey.
* Occasionally Ferret produces something the Ruby GC doesn't like
  (particularly when importing messages from very large sources).
  No worries, just re-run sup-import. (This is unresolved atm.)
* If you are using IMAP or Maildir and see this error:
    /usr/local/lib/ruby/1.8/yaml.rb:133:in `transfer': allocator undefined for Bignum (TypeError)
  then you need to upgrade to Ruby 1.8.5. YAML in earlier versions
  can't parse BigNums.

== LICENSE:

Copyright (c) 2006, 2007 William Morgan.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.

