managing e-mail addresses with bbdb





BBDB, the Insidious Big Brother Database is an Emacs addressbook application
that works particularly well with e-mail. It's one of the classic emacs
packages, written in 1991 by Jamie Zawinski.




Personally, I do not use BBDB as a general address book. Instead, I use it to
harvest the e-mail addresses of the people that send me mail, so that the next
time I'd like to send e-mail, I can auto-complete the names / e-mail
addresses. If you're not using some emacs-based email client, BBDB might not
be that useful in practice.



Note that other people are using BBDB for much more, see the Emacswiki-entry
for some examples of that. Here, I just give some basics to get you started;
please refer to the fine manual for all the details.







configuration






So, after you've installed bbdb (just follow the instructions; alternatively
Ubuntu/Debian users can simply install the bbdb package), we can add the
following to .emacs to set it up:





(setq bbdb-file "~/.emacs.d/bbdb")           ;; keep ~/ clean; set before loading
(require 'bbdb)
(bbdb-initialize)
(setq
bbdb-offer-save 1 ;; 1 means save-without-asking


bbdb-use-pop-up t ;; allow popups for addresses
bbdb-electric-p t ;; be disposable with SPC
bbdb-popup-target-lines 1 ;; very small

bbdb-dwim-net-address-allow-redundancy t ;; always use full name
bbdb-quiet-about-name-mismatches 2 ;; show name-mismatches 2 secs

bbdb-always-add-address t ;; add new addresses to existing...
;; ...contacts automatically
bbdb-canonicalize-redundant-nets-p t ;; x@foo.bar.cx => x@bar.cx

bbdb-completion-type nil ;; complete on anything

bbdb-complete-name-allow-cycling t ;; cycle through matches
;; this only works partially

bbbd-message-caching-enabled t ;; be fast
bbdb-use-alternate-names t ;; use AKA


bbdb-elided-display t ;; single-line addresses

;; auto-create addresses from mail
bbdb/mail-auto-create-p 'bbdb-ignore-some-messages-hook
bbdb-ignore-some-messages-alist ;; don't ask about fake addresses
;; NOTE: there can be only one entry per header (such as To, From)
;; http://flex.ee.uec.ac.jp/texi/bbdb/bbdb_11.html

'(( "From" . "no.?reply\\|DAEMON\\|daemon\\|facebookmail\\|twitter")))
)







This will set up BBDB for you. I have commented the various settings; you can
of course get more information for each of them by putting your cursor on them
(in emacs) and issuing C-h v.







integration with e-mail clients







Another important part is the integration with e-mail - which is why I am
using BBDB in the first place.



As I mentioned before, I am using the wonderful Wanderlust e-mail client for
emacs, and you can easily integrate it with BBDB by putting the following in
your .wl-file:




(require 'bbdb-wl)
(bbdb-wl-setup)

;; i don't want to store addresses from my mailing folders
(setq
bbdb-wl-folder-regexp ;; get addresses only from these folders
"^\.inbox$\\|^.sent") ;;


(define-key wl-draft-mode-map (kbd "<C-tab>") 'bbdb-complete-name)






For gnus, you'd use something like:



(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)





(I am not using gnus myself, feel free to add you setup in the comments)



The BBDB-manual has the details for some other mail clients as well.







Use






So, we have everything set up now – but how does it work? Well, whenever you
read e-mails, BBDB stores the various e-mail addresses. Whenever you write an
e-mail, you can complete the names with M-x bbdb-complete-name, by default
bound to M-TAB. This keybinding conflicts with many window managers, which
already use M-TAB (Alt-TAB) for window switching. So, it's useful to
rebind it to something else, for example C-TAB (I already did that for
Wanderlust, in the example above).



I don't use BBDB too much directly, but you can manipulate the address; first
display one with M-x bbdb-display-address, they you can edit a field by
pressing 'e', 'd' for deleting the field or record, C-o for adding a new
field and so on – see the whole list.



No comments:

Post a Comment

Followers

Popular Posts