gmail vs pine

Note: this article was written in February 2005. The ideas still apply, but many of the technical details about Gmail and Pine have changed. Caveat reader!

I’ve used Pine as my email client for, well, pretty much forever. I use it because it’s fast, powerful, stable, and very keyboardable. (I hate the mouse.)

However, since I work at Google, I’m constantly bombarded with people who ask me why I don’t use Gmail. After hearing the nth person brag about how much it increased their productivity, I finally broke down and tried it. I didn’t expect much, since I’ve never liked web-based email clients. However, I made myself use it as my only email client, for a month, to give it a fair shot.

I ended up using it for five weeks, and while I eventually switched back to Pine, I liked Gmail a lot more than I expected. It made me question lots of things I took for granted, and showed me that there’s plenty of innovation left in email clients. I’m currently writing patches for Pine to implement the features I miss most from Gmail. (Many people have gone the other direction and written Greasemonkey scripts for Gmail to add features and customize it to their liking.)

Here’s the good, the bad, and the ugly of Gmail, compared to Pine. My opinions are not those of my employer, look both ways before crossing the street, don’t run with scissors, etc.

The Good

  • It’s somewhat faster than your average IMAP server. (Of course, this is both a success of Gmail and a failing of most IMAP servers.)

  • Gmail is smart about hiding quoted text and emails i’ve seen. This rocks. Somehow it even knows the 1% of cases where I actually do want to see the quoted text. I have no idea how.

  • The UI for threading, or conversations in Gmail lingo, rocks even harder. The killer feature is that the bodies of all messages in the thread on a single screen. Combined with hiding quoted text, this is very powerful.

  • Mail is indexed. My average search takes under a second in Gmail, but around 10 seconds in Pine.

  • Tags, aka labels or virtual folders, are all the rage these days. GMail’s implementation of them is slick, and eminently usable. Pine’s keywords offer most of the same functionality, but compared to Gmail, they’re a little clunky.

  • There are keyboard shortcuts! Wonder of wonders, it’s a webapp that has keyboard shortcuts. Even more amazing, I can actually do most of my normal email tasks with the keyboard shortcuts only. If I couldn’t, I never would have given Gmail a second glance.

  • I love the Y key, a single keystroke for archiving email. Archiving in pine takes two keystrokes at best, and four if I last saved to a different folder than my “archive” folder.

  • The address book is great, mostly because I never have to use it. Gmail automatically remembers everyone I’ve sent email to or received email from, and auto-completes when I start type their name or email address. I wish Pine did this!

The Bad

  • Filtering has a great UI, but it’s horribly weak. It has maybe a third of the headers and options that I normally filter on. Even with labels, the set of filter actions is anemic.

  • There’s no way to bounce an email. This should be pretty trivial to add.

  • If no email is selected, the Y key should archive the email under the cursor. This should be common sense.

  • You can’t automatically create a filter based on an email. Why not?

  • You can search, but you can’t select messages based on headers, subject, or body text. Worse, if you have more messages than fit on the screen, you can’t select any messages that aren’t on the screen. If you ever get flooded with email, or with spam that escapes the spam filters, god help you.

The Ugly

  • Marking messages as read is impossible with the keyboard, and takes three clicks with the mouse: Select ___, More Actions, Mark As Read. I could just leave them unread, but then the labels display is useless for showing which mailing lists have new mail.

  • Selecting a message doesn’t automatically move the cursor to the next message. This is just plain silly.

  • The Y key is horribly inconsistent. If you’re in the Inbox, it archives. If you’re in a label, it removes the label. If you’re in spam or trash, it moves to the Inbox! Granted, if you consider Inbox as just another label, this makes sense…but that’s a pretty odd perspective.

  • Gmail might be smart about (not) displaying quoted text, but it can’t handle composing with quoted text to save its life. There are a ton of problems with this, but among others, it needs a way to remove trailing quotes when sending. (OK, to be fair, I doubt this feature is in high demand.)

55 thoughts on “gmail vs pine

  1. If you add labels support to PINE, that would rock. Similarly, what is the best/fastest way you have found to view conversations/threads in PINE?

    • Asheesh.
  2. hmm. i never really found a need to apply multiple labels to emails, so folders work just as well for me. i don’t have any plans to add label support to pine.

    you’re right about threads, though. pine doesn’t handle them nearly as well as gmail. gmail’s big win there is the way it treats threads as a single entity, specifically in conversation view (which kicks ass), and applying user actions to whole threads by default.

    pine has sort by thread – $ H in an index page – but it’s rudimentary, and dog slow. eduardo chappa’s fancy thread patch is better, and can apply user actions to whole threads, but there’s no “conversation view” patch. to be truly competitive, threading support would need to be built in from the ground up.

    still, nancy mcgough or gopi sundaram might have something i missed. let me know if you find anything!

  3. check out Pine’s keywords. they work pretty much the same as tags or Gmail’s labels. (M)ain, (S)etup, (C)onfiguration, and add them to the keywords option. then you can set them on messages individually with (*) Flag, in aggregate, and with filters.

  4. Great post. I’m a fellow PINE junkie who is similarly pestered to “get with the program” and use a “real” mail client.

    I do want to ask you a technical question. Do you know why PINE doesn’t quote replies to gmail messages correctly and how to fix this? It seems it may have to do with the fact that Gmail base64 encodes their messages. For example, here is a simple message from a gmailer, as it’s displayed in PINE (the following is NOT a real mailing address):


    Date: Sat, 11 Mar 2006 19:01:10 -0800

    From: A Friend <xxxxxxxx@gmail.com>

    To: Michael <msa@xxxxx.com>

    Subject: Address

    101 N. Kingsley Dr.

    Los Angeles, CA 90000

    A Friend


    and here is how PINE quotes it in a reply


    On Sat, 11 Mar 2006, A Friend wrote:

    > 101 N. Kingsley Dr.

    Los Angeles, CA 90000

    A Friend


    Only the first line is indented with a ‘>’. The rest are not.

    This is a very annoying “feature” of PINE. Any thoughts?

    - Michael

  5. News Flash!

    Eduardo Chappa of pine-info fame has made progress on the “replying to GMail” issue. We don’t have a definitive solution yet, but as a workaround if you put a “.” in your display-filters variable the problem should go away. Try it!

    - Michael

  6. cool! that’s really really nice. i haven’t tried the patch yet, but the display-filters workaround works.

    out of curiosity, i’ve never seen “.” in display-filters before. is it an undocumented feature?

  7. Ryan,

    Have you tried using pine WITH gmail?  I'm using it now and it works wonderfully.  Pine accesses my GMail box through pop3, copies the messages down to local storage, and aside from entering a password when I launch pine, it's almost as fast as if it were reading /var/mail/christine instead :)<p class="paragraph"/> <i class="italic">- Christine</i>
    
  8. hi christine! good point. i have tried using pine as my MUA (ie email client) and gmail as my backend email provider, through POP. i actually found it slow, especially searching. IMAP supports most kinds of searching natively, which makes it much faster, assuming the server is halfway decent.

    still, that was a while ago. i should try it again.

    also, many people have noted that pine is just a MUA, while gmail is both a MUA and a mail provider backend. this article was meant to compare just the MUA part of gmail.

  9. hi slashdot, digg, mynews, etc! thanks for your interest, and sorry for the outage. my poor little server never had a chance. :P

    as many of you have noted, gmail has changed substantially since i wrote this. after i repair the damage to the site, i’ll update the article to fix the parts that are out of date.

  10. i have used both pine & gmail. i agree they are both great solutions.

    the main problem i have with gmail is that it includes a “sender” header with all outgoing mail. the sender tag reveals your gmail address even if you use a custom “from” header. some email clients, such as outlook, display the sender header along with the from header.

    i realize this is not a ui issue, but gmail needs to revisit this issue before people will feel comfortable using it with their own email addresses.

  11. One REALLY ugly feature of GMail is its spam filter! Sure, it mostly works well, but it has too many false positives. People report up to 2.5% – I am stuck at about 1.5%. That basically means I have to scan the spam manually :-(

    Pine, and most other mailers, allow to a) use an alternative spam filter, and b) to turn the spam filter off, or tweak it for specific patterns…

    Cheers, Andre.

    - Andre Merzky

  12. If you like pine, try mutt some day. Some things are different, but after a short readjusting time I never looked back.

  13. since you are working at google, can’t you make them fix those problems? :-)

    Especially the Filter is something that should be worked on. I simply need to be able to filter for any mailheader…

    Your reasons are exactly the main reasons why I don’t use gmail and stayed with mutt yet.

     Balu<p class="paragraph"/> <i class="italic">- Balu</i>
    
  14. Balu said:

    since you are working at google, can’t you make them fix those problems? :-)

    absolutely! it’s one of the many things i love about working at google.

    having said that, many of my gripes are more “i’d like it that way” rather than “everyone would like it that way.” so, i did a cost/benefit analysis on what it would take to patch few pine gripes vs. writing greasemonkey scripts for my gmail gripes. patching pine won out. :P

  15. I mentioned this on the /. comments, but mihai on the google reader team did most of the greasemonkey work.

    http://persistent.info/archives/2006/03/21/gmail-macros

    Naturally, I recommend my patched version of the script but I find the macros addition serves me well enough.

    I actually prefer to use gmail because I find writing greasemonkey scripts simpler than learning a mua code base and patching there. I patch stuff like linking bug numbers to bugzillas and expect mihai to take care of the major patches.

    - Karl G

  16. > You can’t OR or NOT filter conditions.

    Yes you can.

    Just write it all in the “Has the words” field, and use a few keywords. For example:

    to:a@example.com OR from:a@example.com

    Of course this is not as straightforward and one expects it to be, but it works. (I haven’t tried NOTing BTW)

    You can also do ORs in a single field. For example, in the “From” field, you can type:

    a@example.com OR b@example.com

    - Roflo

  17. thanks! quite true. they added or and not after I wrote this. i’ve updated the article and removed that complaint.

  18. Since you specifically mention fixing gmail bugs….

    We noticed a minor (but annoying) problem on a mailing list I’m on.

    Mutt seems to have some vague support for “Mail-Followup-To:” headers, though it doesn’t follow them exactly as you’d think (only replying to the address in the m-f-t header).

    Given a message like this:

    To: list@EXAMPLE.org Mail-Followup-To: list@EXAMPLE.org Reply-To: LIST@EXAMPLE.org<br>

    (in other words, there’s an explicit Reply-To header AND an M-F-T header, with the same address, but differences in case)

    Gmail replies to:

    list@EXAMPLE.org, LIST@EXAMPLE.org

    In theory, yes, the LHS can be case-sensitive, but in practice, the two addresses are likely to be the same – and if I send a message to:

    To: ADDRESS@example.com, address@example.com

    gmail only tries to reply to:

    address@example.com.

    - William

  19. …but will the tight integration with calendar and future google utilities make you rethink this at all? or will that all simply prompt you to work more on pine?

    - dave

  20. BUFFERING

    My biggest problem with Gmail (as a regular user) is that whenever I issue a command (say, archive this message), I have to wait for Gmail to finish chewing on the command and communicating with servers and finally re-updating the screen before I can issue any more commands. Mutt buffers keyboard input, and I’ll bet pine does too. It seems like a Javascript program like Gmail could, in principle, buffer input as well.

    Until the Gmail team gets around to it though, thanks Ryan for the Pine patches, and if anyone learns of Gmail-ified mutt, please post here.

    - crwth

  21. I disagree that the ‘y’ shortcut has inconsistent semantics. It always removes the attribute that causes the selected messages to be displayed in the current view.

    Pine is hardly an example of consistency in UI design. Some letters have different meanings in different contexts. This is presumably fixable only by adding a key remapping feature.

    I hope gmail’s shortcuts will be extended to keep up with the addition of UI features. Mapping the <del> key to delete the selected messages would be a start.

    - Chuck

  22. william, i can’t promise much, but i’ll definitely pass on your bug report.

    dave, you’re right. google calendar is really slick, especially the gmail integration. i doubt i’ll start using it though, mostly because i’m not usually at a computer when i need my calendar. i’ve always just used paper calendars and phonebooks. (pdas and cell phones aren’t for me.)

    chuck, great point. a few people mentioned that on our internal mailing lists too. you’re right, with that mental model, the Y key is consistent. however, compared to the archive mental model, remove attribute that causes messages to be displayed in current view is pretty damn unintuitive. it definitely violates the Rule of Least Surprise.

    you’re right, pine definitely has its inconsistentencies too. i guess this one of gmail’s just rubbed me the wrong way.

  23. This is a very good article. i’m a big fan of testing out other software and what not and plan on giving Pine a good run.

    Right now i use Thunderbird software for all my domain mail and a Gmail account for a back up and a second non-business.

    as for gmail, i’ve been waiting for a IMAP that worked and flowed like much of the desktop software i was used too. lets face it, others like hotmail and yahoo, just to give an example, always seemed like a chore trying to check and compose. now when noobs to the net ask about setting up an e-mail i just tell them to get a gmail account. it’s easy and even if you don’t know all the tips and trick you can still navigate without pulling out your hair.

    - robin

  24. One of the worst things by switching to Gmail is obviously that you are losing your archived emails. I have therefore created a script that, one-by-one, forwards all your emails in a specific folder to your gmail address.

    Because Gmail refuses to receive emails at a higher rate than a specific level, I recommend setting up 10 other gmail-accounts that are all set to forward to your main gmail-account (and delete any copy).

    The script is below. Call the file “.mm”. The syntax is .mm FolderName sent|inbox Firstmsg# Lastmsg#

    for example: .mm INBOX inbox 6 transmits all mails in your folder called INBOX, and adds in the subject-line the tag “inbox:DATE” which means that you can search in gmail for “inbox:2004-12″ for mails received in december 2004.

    .mm sent-mail sent transmits all mails in your folder called sent-mail. For sent-mails, the subject line will also contain the recipient of the emails, otherwise Gmail will only display your name as the sender.

    questions can be sent to tindlundcom(a) bigfoot. com


    RECIPIENT0=”mailaddress01@gmail.com”

    RECIPIENT1=”mailaddress02@gmail.com”

    RECIPIENT2=”mailaddress03@gmail.com”

    RECIPIENT3=”mailaddress04@gmail.com”

    RECIPIENT4=”mailaddress05@gmail.com”

    RECIPIENT5=”mailaddress06@gmail.com”

    RECIPIENT6=”mailaddress07@gmail.com”

    RECIPIENT7=”mailaddress08@gmail.com”

    RECIPIENT8=”mailaddress09@gmail.com”

    RECIPIENT9=”mailaddress10@gmail.com”

    MAILQ=”/usr/bin/mailq”

    WAIT0=”0″

    WAIT=”10″

    INTERVAL=”50″

    if test -z $3; then FIRSTMSG=”1″; else FIRSTMSG=”$3″; fi

    THISMSG=”$FIRSTMSG”

    ECHO=”/bin/echo”

    READMSG=”/usr/bin/readmsg”

    FORMAIL=”/usr/bin/formail”

    SENDMAIL=”/usr/sbin/sendmail”

    MAIL=”$HOME/mail”

    SED=”/bin/sed”

    FRM=”/usr/bin/frm”

    TAIL=”/usr/bin/tail”

    HEAD=”/usr/bin/head”

    FOLDER=”$1″

    FOLDERNAME=”$FOLDER”

    if test ! -z $2; then FOLDERNAME=”$2″; fi

    if test -z $4

    then

        LASTMSG="`$FRM -n $MAIL/$FOLDER | tail -n 1 | $SED -e 's/:.*//' -e 's/ //g' -e 's/"//g'`"<p class="paragraph"/>else<p class="paragraph"/>        LASTMSG="$4"<p class="paragraph"/>fi<p class="paragraph"/>while test $THISMSG -le $LASTMSG<p class="paragraph"/>do<p class="paragraph"/>        DIFF=`expr $LASTMSG - $THISMSG + 1`<p class="paragraph"/>        if test $DIFF -gt $INTERVAL<p class="paragraph"/>        then<p class="paragraph"/>                DIFF=$INTERVAL<p class="paragraph"/>        fi<p class="paragraph"/>        echo "Reading messages $THISMSG - `expr $THISMSG + $DIFF - 1`..."<p class="paragraph"/>        TOGET=""<p class="paragraph"/>        for (( j = $THISMSG ; j &#60;= `expr $THISMSG + $DIFF - 1` ; j++ ))<p class="paragraph"/>        do<p class="paragraph"/>                TOGET="$TOGET $j"<p class="paragraph"/>        done<p class="paragraph"/>        $READMSG -h -f ~/mail/$FOLDER $TOGET &#62; .temp<p class="paragraph"/><p class="paragraph"/>        for (( i = 1 ; i &#60;= $DIFF ; i++ ))<p class="paragraph"/>        do<p class="paragraph"/>                if test `expr $i % 10` -eq 0; then RECIPIENT="$RECIPIENT0"<p class="paragraph"/>                        else if test `expr $i % 10` -eq 1; then RECIPIENT="$RECIPIENT1"<p class="paragraph"/>                                else if test `expr $i % 10` -eq 2; then RECIPIENT="$RECIPIENT2"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 3; then RECIPIENT="$RECIPIENT3"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 4; then RECIPIENT="$RECIPIENT4"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 5; then RECIPIENT="$RECIPIENT5"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 6; then RECIPIENT="$RECIPIENT6"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 7; then RECIPIENT="$RECIPIENT7"<p class="paragraph"/>                                        else if test `expr $i % 10` -eq 8; then RECIPIENT="$RECIPIENT8"<p class="paragraph"/>                                        else RECIPIENT="$RECIPIENT9"<p class="paragraph"/>                 fi; fi; fi; fi; fi; fi; fi; fi; fi;<p class="paragraph"/>                VAR=`expr $THISMSG + $i - 1`<p class="paragraph"/>                $READMSG -h -f $MAIL/.temp $i &#62; .temp2<p class="paragraph"/>                DATE=`$READMSG -h -f $MAIL/.temp2 1 | $FORMAIL -xDate: | $SED -e 's/<a href='/space/A-Za-z,'>A-Za-z,</a>*&#40;<a href='/space/0-9'>0-9</a>*&#41; &#40;<a href='/space/A-Za-z'>A-Za-z</a>*&#41; &#40;<a href='/space/0-9'>0-9</a>*&#41; &#40;<a href='/space/0-9'>0-9</a>*&#58;<a href='/space/0-9'>0-9</a>*&#41;.*/&#51;-&#50;-&#49; &#52;/' -e 's/-&#40;.&#41; /-0&#49; /' -e 's/Jan/01/' -e 's/Feb/02/' -e 's/Mar/03/' -e 's/Apr/04/' -e 's/May/05/' -e 's/Jun/06/' -e 's/Jul/07/' -e 's/Aug/08/' -e 's/Sep/09/' -e 's/Oct/10/' -e 's/Nov/11/' -e 's/Dec/12/'`<p class="paragraph"/>                if test "$FOLDERNAME" = "sent"<p class="paragraph"/>                then<p class="paragraph"/>                        TOALL=`$READMSG -h -f $MAIL/.temp2 1 | $FORMAIL -xTo: | $SED -e 's/=?ISO-8859-1?Q?//' -e 's/?=//g' -e 's/=3A/:/g' -e 's/=C5/??/g' -e 's/=D8/??/g' -e 's/=C6/??/g' -e 's/=E5/??/g' -e 's/=E6/??/g' -e 's/=F8/??/g' -e 's/=20//g' -e 's/=3D//g' -e 's/=22//g' -e 's/=2C//g' -e 's/=?iso-8859-1?Q?//' | sed -e 's/&#40;.*&#41; &#60;&#40;.*@<a href='/space/A-Za-z0-9_-'>A-Za-z0-9_-</a>*&#41;&#46;.*/&#49;|&#50;/' -e 's/^ //' -e 's/_/ /g' -e 's/&#40;@<a href='/space/A-Za-z_-'>A-Za-z_-</a>*&#41;&#46;.*/&#49;/' -e 's/"//g'`<p class="paragraph"/>                        TO=`echo $TOALL | $SED -e 's/|.*//'`<p class="paragraph"/>                        if test ! "$TO"; then TO="`echo $TOALL | $SED -e 's/.*|//'`"; fi<p class="paragraph"/>                        TO="&#60;$TO&#62; "<p class="paragraph"/>                fi<p class="paragraph"/><p class="paragraph"/>                SUBJECT="$FOLDERNAME:$DATE] $TO`$READMSG -h -f $MAIL/.temp2 1 | $FORMAIL -xSubject: | $SED -e 's/=?ISO-8859-1?Q?//' -e 's/?=//g' -e 's/=3A/:/g' -e 's/=C5/??/g' -e 's/=D8/??/g' -e 's/=C6/??/g' -e 's/=E5/??/g' -e 's/=E6/??/g' -e 's/=F8/??/g' -e 's/=20//g' -e 's/=3D//g' -e 's/=22//g' -e 's/=2C//g' -e 's/=2E/./g' -e 's/=<a href='/space/A-Za-z'>A-Za-z</a><a href='/space/0-9'>0-9</a>/ /g' -e 's/_/ /g' -e 's/=?iso-8859-1?Q?//' -e 's/=?iso-8859-1?B?//'`"<p class="paragraph"/><p class="paragraph"/><p class="paragraph"/>                QUEUE=`$MAILQ | $TAIL -n 1 | $SED -e 's/.*in //' -e 's/ .*//' -e 's/Mail//'`<p class="paragraph"/>                if test -z $QUEUE; then QUEUE="0"; fi<p class="paragraph"/>                echo "Sending $VAR/$LASTMSG&#62;$RECIPIENT (q $QUEUE): `echo $SUBJECT | $HEAD -c 25`...`$READMSG -h -f $MAIL/.temp $i | $FORMAIL -i "Subject: $SUBJECT" | $SENDMAIL -oi $RECIPIENT`"<p class="paragraph"/>                echo "<a href='/space/$FOLDER'>$FOLDER</a> $VAR of $LASTMSG..." &#62;&#62; $MAIL/.log<p class="paragraph"/>                for (( w = 1 ; w &#60;= `expr $WAIT0 + $WAIT &#42; $QUEUE &#42; $QUEUE` ; w++ ))<p class="paragraph"/>                do<p class="paragraph"/>                wait<p class="paragraph"/>                done<p class="paragraph"/>        done<p class="paragraph"/>        THISMSG=`expr $THISMSG + $DIFF`<p class="paragraph"/>done<p class="paragraph"/><p class="paragraph"/>
    

    - Andreas Tndl

  25. Sorry, seems like many special characters have been removed by the submit form so the script won’t work. If anyone is interested, try send me an email.

    - Andreas Tndl

  26. thanks andreas! there are also solutions that move emails into GMAIL using POP, or at least bounce them, so that the original sender, recipient, subject, and other headers remain intact.

    For example, check out Mark Lyon‘s Gmail Loader, among others.

  27. Hi,

    Great article.

    I’m in a similar conversion using pine at work and gmail at home.

    While address books are good for individual aliases, they are poor at mailing lists. I miss the ability in pine to be able to extract all the recipients of a given email as a list, or even better from a selected group of emails. The tools provided with gmail to import existing contacts are very limited and have no means to import multiple recipeints into an existing list.

    I found a few dead links to a pine address book migration tool . Anyone using such a thing ?

    - Jonathan Ives

  28. TerrisRacoon says:

    Can you please tell me how to set up pine under Linux so using it I’ll be able to recieve and send mail? I have a Gmail account and I’d love to have a good text-based e-mail client’ because IHMT (I Hate Mozilla Thunderbird). Or maybe you know any others console mail clients like pine and a way of setting them so I”d be able to use Gmail? Please reply to my e-mail: szop.terris@gmail.com

  29. fyi, i’ve recently discovered sup, an email client that’s basically gmail for the command line. it looks intriguing. if it delivers on its promises, i just might have to switch…

  30. chrisvale says:

    so now the question is… are you going to make an android app that will run pine?

    haha, that would be sufficiently hardcore

  31. > comment bubble OpenID ryan, Sun 23 Jul 2006
    > thanks andreas! there are also solutions that move emails into > GMAIL using POP, or at least bounce them, so that the original > sender, recipient, subject, and other headers remain intact.
    >
    > For example, check out Mark Lyon’s Gmail Loader, among
    > others.

    I understand this is an old thread (very informative one, I’d add –former pine junkie who moved to Thunderbird, and not to gmail since last week!)

    I just wanted to comment that these days gmail allows IMAP client connections, and copying existing archived emails from my old IMAP email account was fairly easy (though it was painfully slow for obvious reasons) once I setup the new gmail account within my Thunderbird client.

    I am still trying to figure out if gmail would add the ability to bounce. RIght now, I am trying hard to figure out a set of cleaner keyboard short cuts than the one gmail provides. Thanks again! –ag

  32. If you click the little blue arrow in the top-right corner of an individual message, there is a “Filter messages like this” option. It has been there for quite some time.

  33. Kjetil says:

    You can mark messages as read by first selecting them with ‘x’ and then hitting Shift-u.

  34. Ævar Arnfjörð Bjarmason says:

    The last point in “The Bad” suggests that you haven’t noticed the search -> select “All” -> “Select all conversations that match this search”.

    It takes some clicking but like that you can select all messages matching any GMail search query you can come up with. That still doesn’t give you accurate search based on “headers, subject, or body text” but it’s something.

  35. Ricardo Ferreira says:

    Many of the features you miss from GMail are actually available on Gmal Labs. Like the “Mark As Read Button”.

  36. Odd says:

    Erh, shift-i and u lets you mark mails as read or unread.

    Have you tried pressing shift-? and see what options you have there?

  37. Henrik Hansen says:

    Shift-i is mark as read.
    ‘e’ is archive, which will always remove it from the inbox. ‘y’ is actually: remove from folder

  38. thanks for the new comments, everyone! sorry, there was a bug with the date on this article that made it look like i wrote it recently, but i actually wrote it back in march 2005, when most of the features and changes you mention didn’t exist. gmail has improved a lot since then!

  39. I’ve used thunderbird, outlook, gmail and pine and I still use pine for my work email because I can operate locally on my mail folders (imap and pop are so slow).  I use procmail for filters and fetchmail to get email from pop and imap servers.  I do local spamassassin on my box for spam filtering and all is great!  I’ve used pine since 1994 for most of my email and I still love it.  Most of my coworkers can’t understand why I still use pine, but I show them how powerful it is and they soon understand why.

  40. hi michael! i agree, i hate this too. it’s not at all clear whether it’s pine’s fault or gmail’s, though.

    my first guess would be that gmail isn’t formatting line endings as specified in RFC 2822. maybe they’re leaving line feeds or carriage returns out. either way, i’d bet someone on the pine-info list would know!

  41. ldillon says:

    Pine + Procmail is more powerful that any web UI I’ve ever seen (or probably ever will).

    The biggest shortcoming I see with every web-based email programs in general is that there’s no way to add things like GnuPG. I think the body of ALL email should be encrypted by default. Sure, Gmail has SSL in the form of HTTPS but that’s a long way from end-to-end encryption.

    (Actually I’d like to see the NIC hardware do encryption by default, but that’s another discussion….)

  42. Did they release another update to the way google ranks websites? Ive noticed over the past few days some websites seem to bounce from ranks one to page two etc. This high rate of fluctuation makes me wonder what bases determine a websites’s rankings and whether changes in the results are determined by changes made in Google’s system or within the websites itself. If I had to guess, I believe this determination is based on a combination of changes both within Google and persistent tweaking of a website that could keep it balanced somewhere on page one.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>