Pick a Free OS

User login


Pine: for email and Internet news

Mailing list support in Pine is excellent. Answering mails from mailing list software is easy; Pine makes no assumptions about the reply address and so there are no surprises. The address book has crude mailing list addressing support. One can have small (5-20 is a good range) mailing lists using the Pine address book; any larger or more complex lists should be run by a dedicated list management software.

Pine is primarily an email client; NNTP is possible but one would use a real usenet client for NNTP. According to the feature list, Pine can also do News via IMAP.

Security-wise, Pine appears to be strong. However, some posts on the pine-info list indicated that one or more of the BSDs had claimed buffer overflow vulnerability and rejected Pine for their BSD. Later, it was indicated that one BSD had rejected Pine while another strongly advised against it. The problem appears to be the use of strcpy(). New versions of Pine do not have any major Y2K problems. Pine never auto-executes attachments.

According to its homepage, Pine has won recognition from slashdot for being a well-designed interface, and most used email client (poll). It has won Linux Journal's Reader's Choice for 1997 and 1999, for Best Mailer.

One may wonder why anyone would go for a text-based non-GUI mail client. Pine happens to be a very good and surprisingly user-friendly package. Quick keystroke reference is available on-screen, and detailed help can be found within a few keystrokes. This is one of those programs that focuses on one task, and does it well.

Pine is an excellent email client and this writer recommends it to anyone who spends more than 5 minutes a day on email.

Getting started

Here's how to get started with Pine. First, get a source tarball from


Remember, the following steps are NOT done as root unless otherwise specified.

Untar it with the usual

$ tar -xzvf tarball.tar.gz

We got this directory:

drwxr-xr-x 7 satyap satyap 1024 Mar 1 23:25 pine4.33/

You'll find a script called `build'. Run this:

$ build help | less

According to this, we look in doc/pine-ports for the right label for our system. We will assume we're building for Linux, but YMMV.

`lnx' looks promising. Look in doc/pine-ports for other ways of building in the crypt() function.

Building lnx gives a message that most modern Linux systems require `slx', `lnx' being used for traditional Linux (whatever that means).

So, let's use `slx'

$ build slx

Sit back, watch the screen, get some coffee.

Eventually, you get something like this: