I changed my mail client from Gnus to Mutt. Gnus' performance of IMAP was too bad and I was tired of its sluggishness.
Why mutt? Because I use Gmail from multiple computers, usually from GNU screen, and terminal programs are usually more efficient than their counterparts.
But Gnus (which I was using for the last 2-3 years) had some capabilities beyond mutt. For example I was a heavy user of Gnus mail-splitting which was the main reason I was keeping it despite its slowness. Also, for large volume of emails you can create wonders with keyboard macros etc.
Anyhow, I found another package, called imapfilter which uses a Lua program to split an IMAP mailbox. It is even better than Gnus in terms of splitting capabilities. Along with a cron job which runs it every 3 minutes, it splits my IMAP mail into folders (labels in Gmail) and I can see when I want them.
The second aspect of Gnus is BBDB (Big Brother Database) integration. BBDB has nice features but Turkish characters and UTF-8 encoding had some problems. I don't know the reason for this, because I applied a patch for viewing these correctly but file encodings etc was a pain, always. And I hate to fight with encoding problems.
I decided to keep my contact info on Gmail, and somehow (even manually) export contacts from Gmail to Mutt. I learned there are three widely used addressbooks for mutt and lbdb (Little Brother Database) was my choice after trying other alternatives, namely rolo and abook. The first was not capable to represent Turkish characters and the second had no visible import options from CSV or vCard.
Following is my .muttrc:
set imap_user = "user@gmail.com" set imap_pass = "password" set smtp_url = "smtp://user@smtp.gmail.com:587/" set smtp_pass = "password" set from = "user@gmail.com" set realname = "Emre Sahin" set folder = "imaps://imap.gmail.com:993" set spoolfile = "+INBOX" set postponed="+[Gmail]/Drafts" set assumed_charset="utf-8" set charset="utf-8" set header_cache=~/.mutt/cache/headers set message_cachedir=~/.mutt/cache/bodies set certificate_file=~/.mutt/certificates set move = no #emacsclient was not working properly, for a quick setup this works quickly as well set editor = "emacs -nw -Q" set sort = 'threads' set sort_aux = 'last-date-received' set imap_check_subscribed set imap_list_subscribed set query_command="lbdbq '%s'" # macro index <tab> <change-folder><enter><next-new> bind pager <up> previous-line bind pager <down> next-line bind pager <left> exit bind pager <right> view-attachments bind attach <left> exit bind attach <right> view-attach bind index <right> display-message macro index <left> "c?" bind browser <right> select-entry
I downloaded contacts.vcf file from Gmail and set $VCF_FILES environment variable in .profile to show this file. Then, I added
METHODS=m_vcf
as the only line to my .lbdbrc file. In mutt, when I press Q and enter a query, I can get email addresses quickly. This way requires to copy vcf file from Gmail occasionally. Anyhow, if I want an online LDAP solution, I stumbled upon some options that show Gmail contacts as LDAP entries. For today this is fair enough, I think.