Versatile Mail and News Client
An old saying goes "Emacs is a nice operating system. The only thing it lacks is a good editor." So it is just logical that (X)Emacs comes with a mail and news client, which is called Gnus. To launch it you have to start Emacs and enter M-x gnus.
If you start Gnus for the first time, you will see a virtual group that contains some help on the first steps. If you are lucky, it also finds your news server. Well, if not you have to set a variable in the configuration file. The tricky point is that the file has to be written in Emacs Lisp. This sounds harder than it is because you don't have to really learn the language, merely how to set variables. Some excellent tutorials gently guide you through the process.
Mail accounts are configured in a similar manner. Gnus supports every imaginable way of retrieving mail like UNIX mbox files, POP3 and IMAP accounts including several types of authentication. Very brave souls may also access web mailers but a slight change in the HTML front-end may result in your e-mails getting lost. Besides mail and news, Gnus is also capable of displaying RSS feeds, reading web-based mailing list archives and browsing Google Groups. The latter is extremely convenient when reading usenet discussions if you stumble upon a Message-Id from ages ago.
Once you have everything up and running you see your mail folders and newsgroups listed in the Group buffer. You can enter a group either by clicking on it or by moving the cursor and hitting the return key. Generally it is more convenient to use the keyboard to operate Gnus, but to some extent that's just a matter of personal preference. The group's Summary buffer shows the messages in a threaded mode. If you select a message, the window gets split into a smaller part that still shows the summary and a larger buffer that displays the message.
Gnus helps you to organize your e-mails by allowing you to split them into different folders. The filters are based on regular expressions and — you've already guessed it — have to be stored as Emacs Lisp variables in the configuration file. In addition to this, Gnus provides all features one expects from a modern mail client including multiple ways of forwarding mails, PGP and S/MIME support and using different style of replies depending on the mail folder.
When reading usenet groups, you usually don't want to read every single posting. Gnus provides a powerful scoring system for highlighting the most interesting messages like followups to your own articles and filtering out troll postings. Scoring means that you define filters for header fields or the message body and assign positive or negative points to them. The score of an article is the total of points summed over the filter matches. Depending on its total score, the article can be highlighted, immediately marked as being read or not being displayed at all. Scoring filters can be simple string matches or complex regular expressions. Of course, when you use body filters it takes some time when processing hundreds of articles. But even if you disable all scoring Gnus takes pretty long to retrieve the messages within a group, even if the news server is located on the same machine.
Although its reliance on Emacs Lisp for configuration sounds like a drawback first, it also is the source of much of Gnus's power. There a hundreds of configuration variables that can be adjusted to tweak Gnus according to your needs. Some of them can be even set only for specific usenet groups or mail folders. Given the sheer amount of variables the documentation does a pretty good job on explaining them.
If you are not afraid to write your own Emacs Lisp code, you can use one of the many hooks that Gnus provides to alter its behavior. For example, you can add a header field to your articles that shows what your favorite music player was playing at the time of the posting.
Gnus is an extremely versatile and powerful mail and news client. It may not be configured as easily as Thunderbird but offers many more features and can be customized in a multitude of ways.