[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. BBDB

BBDB is a rolodex-like database program for GNU Emacs. BBDB stands for Insidious Big Brother Database, and is not, repeat, not an obscure reference to the Buck Rogers TV series.

It provides the following features:

1.1 Installation  
1.2 The BBDB  Overview
1.3 BBDB Mode  
1.4 Interfaces  Interfaces to various readers
1.5 Reader-specific Features  Features only available to specific readers
1.6 Using the BBDB with other packages  Using the BBDB with other packages
1.7 Options  
1.8 Utilities  
1.9 Internals  BBDB Internals
1.10 Mailing Lists  The BBDB mailing lists
1.11 Changes in this Version  New in this version
1.12 The Latest Version  Where to Get It
1.13 The Future  Known Bugs, the TODO list and EOL statements
1.14 Thanks  to the Ministry of Bugs
Concept Index  
Variable Index  
-- The Detailed Node Listing ---
Installation
1.1.1 General Prerequisites  General BBDB requirements
File Installation
1.1.2 Normal User Installation  "Normal" Installations
1.1.3 XEmacs Package Installation  Installing as an XEmacs package
Initial Configuration
1.1.4 Initial Configuration  How to initially set up the BBDB
Manual initialization
1.1.4.1 Initializing BBDB support for Gnus  
1.1.4.2 Initializing BBDB support for MH-E  
1.1.4.3 Initializing BBDB support for RMAIL  
1.1.4.4 Initializing BBDB support for Sendmail  
1.1.4.5 Initializing BBDB support for VM  
Other packages:
1.1.4.6 Initializing BBDB support for Message mode  
1.1.4.7 Initializing BBDB support for Reportmail  
1.1.4.8 Initializing BBDB support for Supercite  
1.1.4.9 Initializing BBDB support for Web Browsers  
The BBDB
1.2.1 Database Fields  Description of database fields
1.2.2 Basic searching commands  Basic database searching commands
1.2.3 Advanced searching commands  Advanced database searching commands
1.2.4 Manual record addition  Adding records by hand
Interfaces
1.4.1 Mail Reading Interfaces  
1.4.2 News Reading Interfaces  
1.4.3 Mail Sending Interfaces  
Reader-specific Features
1.5.1 Gnus-specific Features  
1.5.2 VM-specific features  VM-specific Features
Gnus-specific Features
1.5.1.1 Scoring  Store score adjustments in the BBDB
1.5.1.2 Gnus Summary Buffer Enhancements  BBDB information in the Summary buffer
1.5.1.3 GNUS Summary Buffer Enhancements  BBDB information in the Subject List
VM-specific features
1.5.2.1 VM Message Summary Enhancements  BBDB information in message summary
Using the BBDB with other packages
1.6.1 Using the BBDB with Message Mode  
1.6.2 Using the BBDB with Reportmail  
1.6.3 Using the BBDB with Supercite  
1.6.4 Using the BBDB with Web Browsers  
Options
1.7.1 Customization Parameters  
1.7.2 Customization Hooks  
1.7.3 Predefined Hooks  
Utilities
1.8.1 bbdb-ftp  Storing FTP sites in the BBDB
1.8.2 bbdb-print  Print the BBDB
1.8.3 bbdb-snarf  Record generation from raw text
1.8.4 bbdb-srv  External control of the BBDB
Changes in this Version
1.11.1 Major Changes  Major changes in this version
1.11.2 Other Changes  Not-so-major changes
The Future
1.13.1 Known Bugs  Known Bugs, and how to submit new ones
1.13.2 TODO List  The TODO List
1.13.3 End of Life (EOL) Statements  EOL (End Of Life) Statements
_


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Installation

This program consists of several groups of files, organized by directory:

 
     lisp     - the main program code for the BBDB
     tex      - TeX support files for See section 1.8.2 bbdb-print, the BBDB
                printing utility
     texinfo  - the documentation files for the BBDB
     utils    - miscellaneous external utility programs
     misc     - things that don't fall into the above categories
     bits     - things that have been written as add-ons for BBDB
                but have not yet been merged with the main codebase

1.1.1 General Prerequisites  General BBDB requirements
File Installation
1.1.2 Normal User Installation  "Normal" Installations
1.1.3 XEmacs Package Installation  Installing as an XEmacs package
Initial Configuration
1.1.4 Initial Configuration  How to initially set up the BBDB


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.1 General Prerequisites

Various parts of the BBDB require extra packages to be available that are not part of the BBDB distribution. Please note that with one exception no extra packages (beyond those which ship with both GNU Emacs and XEmacs) are required for the use of BBDB core functionality.(1) This one exception applies to XEmacs 20.5 users - the xemacs-base package must be installed for the correct operation of the core BBDB functionality. The table below lists the requirements of the various portions of the BBDB. Please note that the absence of any of the below optional packages will not affect core BBDB functionality.


BBDB file

Package needed

GNU 19.34

GNU 20.2
XEmacs
@center >=20.4
XEmacs
@center 20.5
bbdb-ftp EFS or
Ange-FTP
@center B @center B @center B @center P
bbdb-gnus Gnus[1] @center B @center B @center B @center P
bbdb-mhe MH-E @center B @center B @center B @center P
bbdb-reportmail Reportmail @center B @center P[2]
bbdb-sc Supercite @center B @center B @center P
bbdb-srv gnuserv and
itimer
@center B @center B
bbdb-vm VM[4] @center B @center P
bbdb-w3 browse-url @center B @center B @center B @center P[3]


NOTES:

  1. The old GNUS mail/newsreader should still work. Please keep in mind that you have a relatively recent Emacs (GNU 19.34 or later, XEmacs 19.15 or later), you are probably using Gnus.
  2. As of this writing, Reportmail is available as part of the edit-utils package.
  3. As of this writing, browse-url is available as part of the mail-lib package.
  4. The source release of VM is currently required due to the use of macros from the VM codebase in BBDB's VM integration.

Please also note that the XEmacs package locations are as of this writing. As the XEmacs 20.5 package system is still in development, the locations may change without warning.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.2 Normal User Installation

Configuring the compilation process

First of all, you should run the configure script at the toplevel of the distribution. This script will perform a number of checks on your system and generate the `Makefile''s accordingly.

The configure script also comes with a number of options that lets you customize the compilation process. These options are described below where appropriate.

Byte Compiling the Lisp files

First, you need to byte-compile the appropriate BBDB Lisp files. While this is in theory an optional step, it is virtually required in practice due to speed reasons.

In order to byte-compile the lisp files, an Emacs of some sort must be used. By default (at configure time), emacs and xemacs will be tried in that order. If you want to use a special Emacs flavor (or if you want to use xemacs at the first place), you should pass the --with-emacs=PROG option to configure.

In order to successfully compile the BBDB, the build process also needs to know the location of the various optional packages. If the directories containing these optional packages are in the default Emacs search path (the load-path variable), no other changes need be made for the build process to complete successfully.

If the optional packages are not in the default search path, the build process will not find them unless explicitly told of their location(s). To tell the build process where to find Gnus, MH-E, and/or VM, use the configure options --with-gnus-dir=DIR, --with-mhe-dir=DIR, and/or --with-vm-dir=DIR variables respectively. To tell the build process where to find any other package(s), pass the directories containing the lisp files for the package(s) to the configure option --with-other-dirs=DIRS. If multiple directories are to be added, they should be separated by spaces or colons, and should not be quoted. For example, to add the `/p/local/elisp/footnote' and `/p/local/elisp/sc' directories, call the configure script as follows:

 
  configure --with-other-dirs=/p/local/elisp/footnote:/p/local/elisp/sc

After configuring, run one of the following commands:

 
     make bbdb  - Build the core, mailer independent, components
     make gnus  - Core components plus Gnus support
     make mhe   - Core components plus MH-E support
     make rmail - Core components plus RMAIL support
     make vm    - Build the core components with VM support
     make all   - Core components plus support for all mailers
                         listed above

You can also combine the above make commands. For example, to build the BBDB with support for Gnus and VM, you can do so by typing:

 
make gnus vm

Moving the files to their final destination

Lisp files

As stated above, the `lisp' subdirectory contains the Emacs Lisp source files for the BBDB. Therefore, these files must be in the Emacs load-path. There are several ways of doing this, three of which are described below:

TeX files

The `tex' subdirectory contains the TeX support files for bbdb-print, the BBDB printing utility (See section 1.8.2 bbdb-print.). The three support files, `bbdb-cols.tex', `bbdb-print.tex', and `bbdb-print-brief.tex', must be placed in a directory that is either on the default TeX search path or is listed in the TEXINPUTS environment variable. If neither of these two options is taken, TeX will not be able to process the file output by bbdb-print.

texinfo files

The `bbdb.info' file in this directory contains the documentation for the BBDB. This file should either be linked or copied to a directory on the default path for the info program or listed in the INFOPATH environment variable.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.3 XEmacs Package Installation

NOTE: XEmacs packages are currently supported only under XEmacs versions after and including 20.5. If you are not running such a version of XEmacs, you should install the BBDB according to the instructions in 1.1.2 Normal User Installation.

Configuring / Byte Compiling

The configuration and byte-compilation procedures are the same as in the Normal User installation. See 1.1.2 Normal User Installation.

Moving the files to their final destination

Support is provided for the automatic installation of the BBDB in an XEmacs package directory. The following configure options are available for you:

--with-package-dir=DIR
This option sets the root of the XEmacs package directory. By default, `/usr/local/lib/xemacs/site-packages' is used.
--with-symlinks
If this option is used, the installation will be done by making symbolic links to the sources instead of copying the files.
--with-linkpath=PATH
Without this option, the installation process uses the output of pwd to determine the current directory. If something else should be used, you should provide an alternate name for the BBDB toplevel directory by using --with-linkpath. If, for example, pwd returns `/p/local/elisp/bbdb', but you prefer to use `/usr/local/elisp/bbdb/...' for the links, usr this: configure --with-linkpath=/usr/local/elisp/bbdb. This option is ignored if --with-symlinks is not used.

To perform the (un)installation, use the command make (un)install-pkg. This will compile the `lisp/auto-autoloads.el' file and will install the appropriate files to the appropriate places. The final installation tree will take the following form:

$(PACKAGEDIR)/
lisp/
bbdb/
BBDB lisp source files. This directory contains a copy of all .el and .elc files from the `lisp' source directory, or is a symbolic link to it.
info/
bbdb.info*
BBDB documentation files. These are either copies of the info files from the `texinfo' source directory, or are symbolic links to them.
etc/
bbdb/
tex/
BBDB support files for bbdb-print. This directory contains a copy of the appropriate files from the `tex' source directory, or is a symbolic link to it.
utils/
BBDB miscellaneous utilities. This directory contains a copy of the appropriate files from the `utils' source directory, or is a symbolic link to it.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4 Initial Configuration

The simplest way to configure the BBDB is to include the following forms in your Emacs configuration file:

 
(require 'bbdb)
(bbdb-initialize)

Note: The forms above replace the autoloads needed for previous versions of the BBDB.

This will set up the BBDB for basic querying and record manipulation (the Core Functionality referred to in the Prerequisites section). It will not enable any of the mailreader-, newsreader- or other package-specific BBDB features. To enable some or all of these features, the (bbdb-initialize) form can be enable as shown below. Alternatively, the features can be enabled manually as described in the following sections.

Modifying (bbdb-initialize)

The bbdb-initialize function can be used to enable the various package-specific BBDB functions. This feature activation is accomplished through the passing of symbols which tell the function which features to activate. These symbols are outlined below and in the Emacs documentation for the bbdb-initialize(2)

Initialization symbols for mail and news readers

gnus
Initialize support for Gnus(3). If you pass the gnus symbol, you should probably also pass the message symbol.
mh-e
Initialize support for the MH-E mail reader.
rmail
Initialize support for the RMAIL mail reader.
sendmail
Initialize support for sendmail (M-x mail)
vm
Initialize support for the VM mail reader.(4)

Initialization symbols for other packages

message
Initialize support for Message mode (the mail composition program included with Gnus).
reportmail
Initialize support for the Reportmail mail notification package.
sc
Initialize support for the Supercite message citation package. Additional initialization is required for Supercite to work with the BBDB. See section 1.1.4.8 Initializing BBDB support for Supercite.
w3
Initialize support for Web browsers.

Initialization example

To initialize support for Gnus 5.5, Message mode, Supercite, and Web browsers, the following forms would be used:

 
(require 'bbdb)
(bbdb-initialize 'gnus 'message 'sc 'w3)

Manual initialization

If your initialization needs exceed those provided by bbdb-initialize, refer to the following sections for a description of the procedures necessary for enabling BBDB support for the packages listed above. The procedures described are the same as those carried out by the bbdb-initialize function when passed the appropriate symbols. That is, the procedure listed in the RMAIL Prep section below is the same as than executed by bbdb-initialize when the rmail symbol is passed.

Mail and News readers:
1.1.4.1 Initializing BBDB support for Gnus  
1.1.4.2 Initializing BBDB support for MH-E  
1.1.4.3 Initializing BBDB support for RMAIL  
1.1.4.4 Initializing BBDB support for Sendmail  
1.1.4.5 Initializing BBDB support for VM  
Other packages:
1.1.4.6 Initializing BBDB support for Message mode  
1.1.4.7 Initializing BBDB support for Reportmail  
1.1.4.8 Initializing BBDB support for Supercite  
1.1.4.9 Initializing BBDB support for Web Browsers  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.1 Initializing BBDB support for Gnus

To take advantage of the Gnus features of the BBDB, add one of the following forms to your Emacs configuration file:

For Gnus 3.14 or older:

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

For Gnus 3.15 or newer:

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

bbdb-insinuate-gnus adds bindings for the default keys to Gnus and configures Gnus to notify the BBDB when new messages are loaded. This notification is required if the BBDB is to be able to display BBDB entries for messages displayed in Gnus.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.2 Initializing BBDB support for MH-E

To take advantage of the MH-E features of the BBDB, add the following form to your Emacs configuration file:

 
(add-hook 'mh-folder-mode-hook 'bbdb-insinuate-mh)

bbdb-insinuate-mh adds bindings for the default keys to MH-E and configures MH-E to notify the BBDB when new messages are loaded. This notification is required if the BBDB is to be able to display BBDB entries for messages displayed in MH-E.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.3 Initializing BBDB support for RMAIL

To take advantage of the RMAIL features of the BBDB, add the following form to your Emacs configuration file:

 
(add-hook 'rmail-mode-hook 'bbdb-insinuate-rmail)

bbdb-insinuate-rmail adds bindings for the default keys to RMAIL and configures RMAIL to notify the BBDB when new messages are loaded. This notification is required if the BBDB is to be able to display BBDB entries for messages displayed in RMAIL.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.4 Initializing BBDB support for Sendmail

To take advantage of send-mail-mode (the one invoked with M-x mail) features of the BBDB, add the following form to your Emacs configuration file:

 
(add-hook 'mail-setup-hook 'bbdb-insinuate-sendmail)

bbdb-insinuate-sendmail enables auto-completion in send-mail-mode.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.5 Initializing BBDB support for VM

To take advantage of the VM features of the BBDB, either add 'vm to the parameters of the (bbdb-initialize) form, or add the following form to your `~/.vm' file:

 
(bbdb-insinuate-vm)

bbdb-insinuate-vm adds bindings for the default keys to VM and configures VM to notify the BBDB when new messages are loaded. This notification is required if the BBDB is to be able to display BBDB entries for messages displayed in VM.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.6 Initializing BBDB support for Message mode

To allow the BBDB to be used in Message mode, add the following form to your Emacs initialization file:

 
(bbdb-insinuate-message)

bbdb-insinuate-message adds a binding for M-TAB to Message mode. This will enable completion of addressees based on BBDB records. See 1.6.1 Using the BBDB with Message Mode for more details on the operation of Message mode BBDB record completion.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.7 Initializing BBDB support for Reportmail

To allow the Reportmail package to report information from BBDB records for new mail, add the following form to your Emacs initialization file:

 
(bbdb-insinuate-reportmail)

bbdb-insinuate-reportmail adds to the display-time-get-field function to allow access to BBDB records during new mail information display. See 1.6.2 Using the BBDB with Reportmail for more details on the operation of Reportmail with the BBDB.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.8 Initializing BBDB support for Supercite

To allow the BBDB to assist in the storage of Supercite citations, add the following form to your Emacs initialization file:

 
(bbdb-insinuate-sc)

bbdb-insinuate-sc adds BBDB functions to two Supercite hooks - sc-post-hook and sc-attribs-postselect-hook. See 1.6.3 Using the BBDB with Supercite for more details on the operation of Supercite citation management using the BBDB.

Three other Supercite variables must be set/modified to allow the BBDB to work with it. These variables are not automatically set as it would be impossible to reliably set them without interfering with other user customizations. The modifications are:

sc-preferred-attribution-list
"sc-consult" should be added to the list. An example configuration is:

 
(setq sc-preferred-attribution-list
  '("sc-lastchoice" "x-attribution" "sc-consult"
    "initials" "firstname" "lastname"))

sc-attrib-selection-list
The following form should be added to sc-attrib-selection-list:

 
      '(("sc-from-address"
	 ((".*" . (bbdb/sc-consult-attr
		   (sc-mail-field "sc-from-address"))))))

sc-mail-glom-frame
The following form should be added to sc-mail-glom-frame, to allow the retrieval of the name of a person who is a) in the BBDB and b) has only included their net address in the message in question.

 
  ("^$"  (progn (bbdb/sc-default)
            (list 'abort '(step . 0))))

An example configuration is as follows:

 
(setq sc-mail-glom-frame
   '((begin                        (setq sc-mail-headers-start (point)))
     ("^x-attribution:[ \t]+.*$"   (sc-mail-fetch-field t) nil t)
     ("^\\S +:.*$"                 (sc-mail-fetch-field) nil t)
     ("^$"                         (progn (bbdb/sc-default)
                                   (list 'abort '(step . 0))))
     ("^[ \t]+"                    (sc-mail-append-field))
     (sc-mail-warn-if-non-rfc822-p (sc-mail-error-in-mail-field))
     (end                          (setq sc-mail-headers-end (point)))))

The above is also documented in `bbdb-sc.el'. The bbdb/sc-setup-variables function has been provided as an example for Supercite variable initialization. Please note that while bbdb/sc-setup-variables makes every attempt to safely configure the Supercite variables, it will not always work. Specifically, the variables sc-attrib-selection-list and sc-mail-glom-frame will not be overridden if they have already been defined.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4.9 Initializing BBDB support for Web Browsers

To allow URLs to be added to BBDB records, add the following form to your Emacs initialization file:

 
(bbdb-insinuate-w3)

bbdb-insinuate-w3 adds the definition of : to the W3 keymap.

The other bbdb-w3 functions, specifically the passing of URLs from BBDB records to Web browsers, do not require initialization within the BBDB. They do, however, require the configuration of the browse-url package so it knows to which Web browser URLs are to be passed. For more details on the operation of bbdb-w3, see 1.6.4 Using the BBDB with Web Browsers.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 The BBDB

This section discusses the basics of the BBDB - an overview of the database's layout, and a discussion of the basic BBDB manipulation commands.

The database itself lives in a file which is named by the variable bbdb-file. If this variable is not set, the database is assumed to be in `~/.bbdb'.

1.2.1 Database Fields  Description of database fields
1.2.2 Basic searching commands  Basic database searching commands
1.2.3 Advanced searching commands  Advanced database searching commands
1.2.4 Manual record addition  Adding records by hand


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2.1 Database Fields

The database is organized as a set of records, where each record corresponds to one person or organization. Each record has several fields, and each field is of one of several types. Below, the built-in types are listed, followed by a description of how and why some types can be used more than once in a single record:

Type Description Notes
name The name of this person, or none if the record corresponds to an organization. Single value, single instance.
company The name of this person's organization, or none. Single value, single instance.
AKA A list of other names for this person. Multiple values through commas.
net A list of this person's network addresses. Multiple values through commas.
address A list of postal (physical) addresses for this person. Multiple values through multiple occurences.
phone A list of telephone numbers for this person. Multiple values through multiple occurences.
notes Random commentary. Multiple values through multiple occurences.

The field types listed above can be classified into four categories, as indicated by the comments in the `Notes' column.

Field types marked as "Single value, single occurrence" may only occur once per record. Each occurrence can only have a single value. For example, there will be only one field of type name in a record. It will be named name, and will contain a single value (the person's name).

The types marked as "Multiple values through commas" are essentially the same as the single value, single occurrence field types, but with one crucial difference: they can contain multiple values in the form of a comma-separated list. So, for example, while a name field with a value of "foo, bar" would be treated as if it contained the single value "foo, bar", a net field with the same data would be thought of as having two separate values - "foo" and "bar". As in the single occurrence, single value field types, there will be only one occurrence of each "Multiple values through commas" field type, and the occurrence will have the same name as the type.

The "Multiple values through multiple occurrences" field type is the most flexible of the four listed here. There can be multiple occurrences of each type. This type necessarily does not have the name restriction imposed by the previous two types. For example, there can be multiple fields of the address type, none of which have to be named address. One could be named home, and the other could be named work.

Special properties of the notes field type: All user-defined fields that don't fit into the other predefined field types (name, company, AKA, net, address, and phone) will be created as a notes-type field. In addition, several of the user-defined field names are "special". That is, the BBDB treats the values of these "special" fields differently than it does other user-defined fields. The "special" fields are:

attribution
(Available only when the Supercite-specific BBDB functions have been enabled) Used for the storage of Supercite attributions. For initialization details, see 1.1.4.8 Initializing BBDB support for Supercite. For usage details, see 1.6.3 Using the BBDB with Supercite. The field used can be changed by changing the value of bbdb/sc-attribution-field.
aka
Used to store non-primary names associated with a given record.
face
(XEmacs only) Used for the storage of image data. This data is to be in the format output by compface, and commonly found in X-Face: headers in messages. If face support has been compiled into XEmacs, the image contained in the face header will be displayed when the record is viewed.
finger-host
Address used in place of the listed net address for fingering the entity indicated by the record. See section 1.3 BBDB Mode. The field used can be changed by changing the value of bbdb-finger-host-field.
gnus-score
Gnus scoring adjustment for this person. For initialization details, see 1.1.4.1 Initializing BBDB support for Gnus. For usage details, see 1.5.1 Gnus-specific Features. The field used can be changed by changing the value of bbdb/gnus-score-field.
mail-alias
Value used instead of name for completion. See section 1.4.3 Mail Sending Interfaces.
mail-name
(Available only when the Reportmail-specific BBDB functions have been enabled) Used for the storage of non-default names to be used in the reporting of new mail by Reportmail. For initialization details, see 1.1.4.7 Initializing BBDB support for Reportmail. For usage details, see 1.6.2 Using the BBDB with Reportmail.
mark-char
The field containing the character to be used for marking a given poster in the Gnus Summary Buffer. For usage details, see 1.5.1.2 Gnus Summary Buffer Enhancements.
tex-name
The value of this field is used in place of the name field when printing the database using bbdb-print. See section 1.8.2 bbdb-print.
www
This field contains the URL associated with the BBDB record. Common uses are with bbdb-snarf (see section 1.8.3 bbdb-snarf) and the BBDB/Web Browser functionality (for initialization details, see 1.1.4.9 Initializing BBDB support for Web Browsers. For usage details, see 1.6.4 Using the BBDB with Web Browsers).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2.2 Basic searching commands

You can list the contents of the database with the command M-x bbdb. You will be prompted for a regular expression, and all records which match that regexp in the name, company, network address, or any notes fields will be displayed.

A narrower search may be made by using the commands bbdb-name, bbdb-company, bbdb-net, or bbdb-notes. These commands limit their searches to the name, company, email address, and notes fields, respectively. If these commands are given a prefix argument, the listing displayed will be one line per entry; otherwise, the full database entry will be shown on multiple lines.

The functions described above are predefined to certain keys in the *BBDB* buffer. See section 1.3 BBDB Mode. for more details.

The bbdb-notes command will prompt for the notes field to search (RET for all). In this way you can limit your searches to the contents of one particular user-defined notes field. (You can add user-defined fields with the bbdb-insert-new-field command; See section 1.3 BBDB Mode.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2.3 Advanced searching commands

The following functions can be used to search for records based on creation and/or modification dates. These functions will match records that have timestamp and/or creation-date fields (as appropriate. See section 1.7.3 Predefined Hooks. for more information on these fields, which are created by default.

bbdb-timestamp-older
Display all records modified before a given date. If this function is called interactively, it will prompt for a date. If it is being called non-interactively, the date should be provided as a string in `yyyy-mm-dd' format.

bbdb-timestamp-newer
Display all records modified after a given date. If this function is called interactively, it will prompt for a date. If it is being called non-interactively, the date should be provided as a string in `yyyy-mm-dd' format.

bbdb-creation-older
Display all records created before a given date. If this function is called interactively, it will prompt for a date. If it is being called non-interactively, the date should be provided as a string in `yyyy-mm-dd' format.

bbdb-creation-newer
Display all records created after a given date. If this function is called interactively, it will prompt for a date. If it is being called non-interactively, the date should be provided as a string in `yyyy-mm-dd' format.

bbdb-creation-no-change
Display all records that have not been changed since creation.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2.4 Manual record addition

There are several ways to add new entries to the Insidious Big Brother Database; the most straightforward is to use M-x bbdb-create, which will prompt you for all relevant information. However, the easiest way is to allow them to be added automatically by one of the mail or news-reading interfaces (See section 1.4 Interfaces.).

There is als bbdb-snarf (See section 1.8.3 bbdb-snarf), which will attempt to create a record from a text block. Note that this depends on particular formatting and may not do exactly what you want.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 BBDB Mode


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.1 Functions bound to keys in BBDB Mode

When the `*BBDB*' buffer is active (either summoned by one of the commands in the previous section [See section 1.2 The BBDB.] or by your mail or news program), a variety of commands become available for database manipulation. Some of the commands listed below take numeric arguments. These arguments can be generated by entering the number before pressing the key(s) corresponding to the desired command. The output (if any) of the listed commands will be displayed in the `*BBDB*' buffer, and can be navigated through using the usual cursor motion commands.

e
(bbdb-edit-current-field) Edit the field on the current line. If the cursor is in the middle of a multi-line field, such as an address or comments section, then the entire field is edited, not just the current line.

;
(bbdb-edit-notes) A shortcut for editing the notes field.

d, C-k
(bbdb-delete-current-field-or-record) Delete the field on the current line. If the current line is the first line of a record, the BBDB will, after prompting the user, delete the entire record from the database. This may also be applied to multiple records at once by *.

C-o
(bbdb-insert-new-field) Inserts a new field into the current record. You are prompted (with completion) for the type of field to insert (phone, address, notes, etc); if the string you type is not a known field type, you will be asked whether to add a new field with the entered name of type notes.

If you are inserting a new phone-number field, you can control whether it is a North American or European phone number by providing a prefix argument. A prefix arg of ^U means it's to be a euronumber, and any other prefix arg means it's to be a a structured North American number. If no prefix argument is supplied, the style used is controlled by the variable bbdb-north-american-phone-numbers-p.

C-x C-t
(bbdb-transpose-fields) This is like the transpose-lines command, but it is for BBDB fields. If the cursor is on a field of a BBDB record, that field and the previous field will be transposed.

With non-zero numeric argument ARG, the previous field is moved past ARG fields. With argument 0, the field indicated by point is interchanged with the one indicated by mark.

Both fields must be in the same record, and must be of the same basic type (that is, you can use this command to change the order in which phone-number fields are listed, but you can't use it to make an address appear before a phone number; the order of field types is fixed.)

n, p
(bbdb-next-record, bbdb-prev-record) Move to the next and previous displayed record, respectively.

t
(bbdb-toggle-records-display-layout) Toggles the display layout of a record. With a numeric argument of 0, the current record will be made displayed in one line layout; with any other argument, the current record will be shown in multi-line layout.

If *t is used instead of simply t, then the state of all records will be changed instead of just the one at point. In this case, a numeric argument of 0 means that all records will unconditionally be made one-line layout; any other numeric argument means that all of the records will unconditionally be shown expanded; and no numeric argument means that the records are made to be in the opposite state of the record under point.

T
(bbdb-display-record-completely) Show all the fields of the current record. The display layout `full-multi-line' is used for this.

o
(bbdb-omit-record) Removes the current record from the display, but does not delete it from the database; it merely makes it seem as if the most recent search had not matched this record. With a numeric argument, omit the next N records. With a negative argument, go backwards.

m
(bbdb-send-mail) Begin composing mail to the person represented by the current record. The first email address is used. Normally, the mail-sending package which is used is determined by which mail-reading package is loaded; that is, if MH-E is loaded, then mh-send will be used; if VM is loaded, then vm-mail is used; if message is loaded, then it is used; otherwise, mail is used. You can override this by setting the variable bbdb-send-mail-style to one of the symbols vm, mh, message, or mail.

If *m is used instead of simply m, then mail will be sent to all of the folks listed in the `*BBDB*' buffer instead of just the person under point.

This function does not at present use the facility provided by compose-mail and mail-user-agent. In a future version of the BBDB, it will.

s, C-x C-s
(bbdb-save-db) Saves the BBDB file to disk.

r
(bbdb-refile-record) Merge the current record into some other record; that is, delete the record under point after copying all of the data within it into some other record. this is useful if you realize that somehow a redundant record has gotten into the database, and you want to merge it with another.

If both records have names and/or companies, you are asked which to use. Phone numbers, addresses, and network addresses are simply concatenated. The first record is the record under the point; the second is prompted for. Completion behavior is as dictated by the variable bbdb-completion-type.

M-d
(bbdb-dial) This command will attempt to dial the phone number currently at point, or if point is at the start of a record, the first phone number in the record. An extension, if present, is disregarded.

The method of dialling is controlled by bbdb-modem-dial. If this variable is nil, the BBDB will play touchtones corresponding to the number to be dialled. Otherwise, this variable is treated as a modem command string to be prepended to the number prior to feeding it to bbdb-modem-device.

The BBDB plays touchtones using bbdb-sound-player to play the sounds and the elements of bbdb-sound-files as the audio to be played. The first ten elements of bbdb-sound-files correspond to the touchtones for the digits `0' to `9', while the eleventh and twelfth elements correspond to `#' and `*' respectively. The default configuration assumes a Solaris[tm] installation with the demonstration sound files in /usr/demo/SOUND/sounds.

The actual number dialled depends on the following variables:

bbdb-dial-local-prefix-alist
This is a list of (SEXPR REPLACEMENT) pairs. SEXPR is evaluated to produce a regular expression which is then applied to the number. If it matches, whatever it matches is replaced by REPLACEMENT. The match and replace is performed using each item in the list that matches, in sequence, so that the output from one item may become input to another. The default value for this variable is to remove (bbdb-default-area-code) (i.e. the value of that variable, in parenthesis) from the start of the number to be dialled.

Note: If this procedure produces a transformed number then no further modifications (such as prefix additions, below) will be made to the number before dialling.

Using a prefix argument to bbdb-dial disables the processing of this variable. The other modifiers, below, are not affected by this.

bbdb-dial-local-prefix
If the number to be dialled starts with a zero, it is deemed to be a local number, and bbdb-dial-local-prefix is prepended to it (see note above concerning bbdb-dial-local-prefix-alist processing, however).

bbdb-dial-long-distance-prefix
If the number to be dialled starts with a plus sign (+), it is deemed to be a long distance number, and bbdb-dial-long-distance-prefix is prepended to it (see note above concerning bbdb-dial-local-prefix-alist processing, however).

f
(bbdb-finger) This command fingers the network address of a BBDB record. If this command is executed from the `*BBDB*' buffer, it fingers the network address of the record which is at point; otherwise, it prompts in the minibuffer (with completion) for a user to finger. With a numeric prefix argument, it fingers the Nth network address of the current record; with a prefix argument of ^U, it fingers all of them. The `*finger*' buffer is filled asynchronously, meaning that you don't have to wait around for it to finish; but fingering another user before the first finger has finished could have unpredictable results.

If this command is executed from the `*BBDB*' buffer, it may be prefixed with * (as in *f instead of simply f), meaning to finger all of the users currently listed instead of just the one under point. The numeric prefix argument has the same interpretation.

You can define a special network address to "finger" by defining a field finger-host. The name of the field to be fingered can be changed by setting bbdb-finger-host-field.

q
(bbdb-bury-buffer) Hides the `*BBDB*' buffer. Note: This command does not kill the `*BBDB*' buffer.

?
(bbdb-help) This displays a one-line help message in the minibuffer, showing some of the most common bbdb-mode commands.

i
(bbdb-info) This documentation is displayed. Please note that either `bbdb' or `bbdb.info' must be installed in one of the info directories known to Emacs for this command to work.

bbdb-info-file
If this documentation is not installed in the standard Info directory, then you should set this variable to the name of the texinfo-formatted version of this file; the bbdb-info command will use this file instead.

W
(bbdb-www) Displays the Web page listed in the www field of the current record. See section 1.6.4 Using the BBDB with Web Browsers.

P
(bbdb-print) Creates a TeX file that contains a pretty-printed version of BBDB records. If prefixed by *, only the records currently displayed will print. See section 1.8.2 bbdb-print.

h
Moves point to another window via the other-window function.

c
(bbdb-create) Create a new database record from information supplied by the user.

C
(bbdb-changed) Display all records that have been changed since the last time the database was saved.

b
(bbdb) Begin a new database search. The results of the new search will be displayed in place of the results of the old search.

S a, S c, S o, S n
(bbdb-net, bbdb-company, bbdb-notes, bbdb-name)
Begin a new database search. This search will be limited to the net address, company, notes, or name fields, respectively, of database records. See section 1.2.2 Basic searching commands. for more details.

*
bbdb-append-records will make the next display/search command to append its results to the BBDB buffer instead of replacing its content.

With an prefix arg (C-u) toggle between always append and no append. With an prefix arg that is a positive number append will be enabled for that many times. With any other argument append will be enabled once."


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.2 Other database manipulation functions

bbdb-kill-older
If called interactively (or with a single argument - a date in `yyyy-mm-dd' format), it will kill all records that were last modified before the given date as determined by the timestamp field. See section 1.7.3 Predefined Hooks. If called non-interactively with a date (in `yyyy-mm-dd' format), a comparison function and an action function, the comparison function is applied to the timestamp field of all records, and the action function applied to those for whom the comparison function returns true. If `nil' is supplied as the comparison function, string-lessp is used.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 Interfaces

The BBDB interfaces itself with several message-handling packages, but certain parameters control its behavior depending on whether it is being used from within a mail reader or a news reader.

In all of these packages, two new keybindings will be added:

:
(bbdb/package-show-sender) Displays the BBDB entry corresponding to the author of the current message. If there is none, you will be asked whether to create one. The function called is bbdb/package-show-sender, where package is either gnus, mh, rmail, or vm, depending on the mail or news program being used when the command is invoked.

;
(bbdb/package-annotate-sender) Lets you edit the `notes' field of the BBDB record corresponding to the sender of the current message. If there is no record for the current author, you will be asked whether to create one. The function called is bbdb/package-annotate-sender, where package is either gnus, mh, rmail, or vm, depending on the mail or news program being used when the command is invoked.

These keybindings (and several other features) will not be available unless you call the appropriate "insinuation" function; See section 1.1 Installation.

It is possible to configure BBDB so that it automatically creates a record when it sees a message from a person who is not in the database. It is also possible to have text automatically added to the notes field of the corresponding record depending on the contents of the message headers. See section 1.7.2 Customization Hooks.

1.4.1 Mail Reading Interfaces  
1.4.2 News Reading Interfaces  
1.4.3 Mail Sending Interfaces  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4.1 Mail Reading Interfaces

There are BBDB interfaces for the following mail readers:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4.2 News Reading Interfaces

There are BBDB interfaces for the following news readers:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4.3 Mail Sending Interfaces

When sending mail, the keystroke M-TAB is bound to the function bbdb-complete-name. This will take the string that you have typed (from point back to the preceding colon, comma, or the beginning of the line) and will complete that against the contents of the database. What you have typed may be an initial subsequence of a person's full name or network address; if it completes ambiguously, then what you have typed will be replaced with the common portion of the matches. Typing M-TAB again will show a list of possible completions. If it completes unambiguously, then an address will be inserted. The variable bbdb-completion-type controls whether completion is done on real names, or network addresses, or both. The address inserted is normally of the form User Name <email-address>; however, if User Name has an address of the form <user.name@somedomain>, only the <email-address> portion is inserted. This can be overridden by setting bbdb-dwim-net-address-allow-redundancy to t.

This binding is automatically set by the various insinuation functions documented earlier in this manual. (See section 1.1.4 Initial Configuration.) Briefly, the forms for these functions are:

Gnus
(add-hook 'gnus-Startup-hook 'bbdb-insinuate-gnus) for Gnus 3.14 or older
(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus) for Gnus 3.15 or newer
MH-E
(add-hook 'mh-folder-mode-hook 'bbdb-insinuate-mh)
RMAIL
(add-hook 'rmail-mode-hook 'bbdb-insinuate-rmail)
sendmail
(add-hook 'mail-setup-hook 'bbdb-insinuate-sendmail)
VM
(bbdb-insinuate-vm) Add to `~/.vm' file

The above forms should be added to your Emacs initialization file, except where otherwise noted.

You can control what "real name" is inserted with the mail-alias field: if a record has a mail-alias field, then that is used instead of their name field.

If the variable bbdb-completion-display-record is true (the default) then when you successfully complete an address with M-TAB, the corresponding record will be appended to the `*BBDB*' buffer. The buffer will not be displayed if it is not already visible, but the record will be displayed there.

When sending mail, you can use the command bbdb-yank-addresses to CC the current message to the people currently displayed in the `*BBDB*' buffer. This is useful if you are in the midst of sending or replying to a message, and you decide to add some recipients. You can use one of the M-x bbdb commands to display the set of people that you want to CC the message to, and then execute this command to add them to the list.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Mailing Lists and Mail Aliases

If you are using Jamie Zawinski's `mail-abbrevs.el' package, which uses the word-abbrev mechanism for mail aliases, then you can store your mail aliases in the BBDB instead of duplicating the information elsewhere.

If you want a mail alias to be defined for a person, simply add a mail-alias field to their record. You may have multiple aliases for the same person; simply separate them with commas.

For convenience there is the function bbdb-add-or-remove-mail-alias bound to a which adds an alias to one or multiple records when prefixed by a *. Called with a prefix argument C-u it will remove the given alias.

If more than one person has the same mail-alias, then that alias expands to the addresses of all of those people; in this way you can maintain mailing lists within the BBDB.

When you want to group aliases as in .mailrc you may just retained the group aliases in your .mailrc.

To actually define the aliases which are stored in the BBDB, call the function bbdb-define-all-aliases from your mail-setup-hook (or message-setup-hook if you use Message mode coming with Gnus). This will search the database, and call define-mail-alias to define each of the resulting aliases.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5 Reader-specific Features

There are features of the BBDB that are available only for specific mail- and news-readers. These features are described below.

The headers which are parsed for email addresses and what records are displayed can be controlled by the following variables: bbdb-get-addresses-from-headers controls which headers are parsed for sender addresses when calling the show-sender function of your MUA. bbdb-get-addresses-to-headers controls which headers are parsed for recipients addresses when calling the show-all-recipients function of your MUA. When using the pop up feature it will search for the addresses in bbdb-get-addresses-headers and display them. By default it will list only the first address, but by setting bbdb-get-only-first-address-p to nil one will will get records for all addresses.

If there is no MUA specific variable for ignoring certain addresses then those addresses matching bbdb-user-mail-names will be ignored.

BBDB adds the bindings : for showing all senders and ; for editing the notes of the sender.

1.5.1 Gnus-specific Features  
1.5.2 VM-specific features  VM-specific Features


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.1 Gnus-specific Features

The BBDB can be used to provide score information, or to integrate database information into the Gnus Summary buffer or the GNUS Subject List.

1.5.1.1 Scoring  Store score adjustments in the BBDB
1.5.1.2 Gnus Summary Buffer Enhancements  BBDB information in the Summary buffer
1.5.1.3 GNUS Summary Buffer Enhancements  BBDB information in the Subject List


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.1.1 Scoring

The BBDB can provide scoring information to Gnus in one of two ways.

  1. Articles whose authors appear in the BBDB and who have gnus-score fields will have their scores adjusted by the value contained in that field.
  2. Articles whose authors appear in the BBDB but who do not have gnus-score fields will have their scores adjusted by bbdb/gnus-score-default. If bbdb/gnus-score-default is nil, no score adjustment will be made.

The BBDB by default searches the field contained in bbdb/gnus-score-field for score values. To have the BBDB use a different field, change the value of this variable.

To enable BBDB-assisted scoring, add the bbdb/gnus-score function to gnus-score-find-score-files-function. Assuming that you want to preserve the default value of this variable, use a form similar to the following:

 
(setq gnus-score-find-score-files-function
      '(gnus-score-find-bnews bbdb/gnus-score))

Note: The default value in Gnus 5.5 is gnus-score-find-bnews. Check your configuration before using the above code, as your values may be different.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.1.2 Gnus Summary Buffer Enhancements

Gnus can use the BBDB to do one of two things:

Marking Posters

Authors with records in the BBDB can be marked either with a user-defined mark character, or with a default one. The marking is enabled by the use of a Gnus user format code, as determined by bbdb/gnus-summary-in-bbdb-format-letter. This variable, which defaults to `b', is used to create a format code which is intended for use in gnus-summary-line-format. The format code is created by concatenating `%u' with the value of bbdb/gnus-summary-in-bbdb-format-letter. In the default case this results in the creation of the format code `%ub'.

Posts are marked as follows: If the record for the poster has the field indicated in bbdb-message-marker-field (the default is mark-char), the value of that field is used as the mark character.(5) If no such field is present, the value of bbdb/gnus-summary-known-poster-mark will be used instead. If the author is not in the BBDB, a space will be used as the mark character.

Using Names from the BBDB

The names reported for authors of posts in the Summary buffer can be altered to conform to the values present in their respective BBDB records (if any). This rewriting is enabled by the use of a Gnus user format code, as determined by bbdb/gnus-summary-user-format-letter. This variable, which defaults to `B', is used to create a format code which is intended for use in gnus-summary-line-format. The format code is created by concatenating `%u' with the value of bbdb/gnus-summary-user-format-letter. In the default case this results in the creation of the format code `%uB'. This format code is intended to replace the format code previously used in the Summary buffer format line to indicate the author and/or net address (usually `%a', `%n', and/or `$N').

The effects of this format code are in two independent parts - the marking of known posters, and the rewriting of posters names. The first, the marking of posters, occurs only when bbdb/gnus-summary-mark-known-posters is t (the default) and the posters have entries in the BBDB. When this variable is true, the marking occurs as described in the previous section, Marking Posters, above.

The poster name rewriting is done for all posters - not just for those with records in the BBDB. That said, rewriting rules for posters in the BBDB are more flexible than for those not listed. The rewriting is governed by two variables, as described below.

bbdb/gnus-summary-prefer-real-names can have one of three values - `t', `bbdb', or nil. In general, this variable governs the preference between net addresses and names. If it is `t', the name (if any) will be used. If `nil', the net address will be used. The third value, `bbdb', can be used as a method for distinguishing between authors with records in the BBDB and those without. If the variable is set to `bbdb', the name from the BBDB record will be used if the author has a record in the BBDB. If the author is not in the BBDB, the net address from the message will be printed. This variable makes little sense if bbdb/gnus-summary-prefer-bbdb-data is `nil', as no names will be printed in the Summary buffer in this case - only net addresses.

bbdb/gnus-summary-prefer-bbdb-data is used to (dis)allow use of the BBDB for author data retrieval. If it is `t', data from the BBDB will be used if available. If it is `nil', data from the BBDB will not be used.

In the following examples, assume the following:

  1. Message: From: Jamie <jwz@netscape.com>
    BBDB: No record
  2. Message: From: Matt <simmonmt@acm.org>
    BBDB: Name: `Matthew', Net: `simmonmt@purdue.edu'

bbdb/gnus-summary-prefer-bbdb-data @center t @center t @center nil
bbdb/gnus-summary-prefer-real-names @center t @center bbdb @center t
Printed in Summary buffer for
@center Case 1 @center Jamie @center jwz@netscape.com @center Jamie
@center Case 2 @center Matthew @center Matthew @center Matt


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.1.3 GNUS Summary Buffer Enhancements

This section is remarkably terse, as I don't have a copy of GNUS. If anybody can provide more descriptive information, please let me know.

 
(autoload 'bbdb/gnus-lines-and-from "bbdb-gnus")
(setq gnus-optional-headers 'bbdb/gnus-lines-and-from)

bbdb/gnus-mark-known-posters
If t (the default), then the GNUS subject list will contain an indication of those messages posted by people who have entries in the Insidious Big Brother Database (they will be marked with an asterisk.)

You can change the character used to mark records on a record-by-record basis by adding a mark-char property to the record, whose value is be the string to display (preferably one character.)

bbdb/gnus-header-prefer-real-names
Default: nil. if t, then the GNUS subject list will display real names instead of network addresses.

bbdb/gnus-header-show-bbdb-names
Default: t. If both this variable and the bbdb/gnus-header-prefer-real-names variable are true, then for news messages from people who are in your database, the name displayed will be the primary name from the database, rather than the one from the `From:' line of the message. This doesn't affect the names of people who aren't in the database, of course.

bbdb/gnus-lines-and-from-length
Default: 18. The number of characters used to display `From:' info in GNUS, if you have set gnus-optional-headers to bbdb/gnus-lines-and-from.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.2 VM-specific features

The BBDB can be used to integrate database information into the message summary.

1.5.2.1 VM Message Summary Enhancements  BBDB information in message summary
1.5.2.2 VM configuration of what records the BBDB buffer shows  
1.5.2.3 VM automatic setup of vm-set-auto-folder-alist  
1.5.2.4 VM automatic adding of labels  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5.2.1 VM Message Summary Enhancements

VM users can cause their summary buffer to display the name of the message sender according to BBDB data,