logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mu-cfind - find contacts in the mu database and export them for use in other programs.

Author

       Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>

Cfind Options

--formatplain|mutt-alias|mutt-ab|wl|org-contact|bbdb|csv
       Sets the output format to the given value. The following are available:

                                 ┌─────────────────────────────────────────────────┐
                                 │ --format=     description                       │
                                 ├─────────────────────────────────────────────────┤
                                 │ plain         default, simple list              │
                                 │ mutt-alias    mutt alias-format                 │
                                 │ mutt-ab       mutt external address book format │
                                 │ wl            wanderlust addressbook format     │
                                 │ org-contact   org-mode org-contact format       │
                                 │ bbdb          BBDB format                       │
                                 │ csv           comma-separated values [1]        │
                                 │ json          JSON format                       │
                                 └─────────────────────────────────────────────────┘

       [1]  CSV  is  not  fully  standardized,  but  mucfind follows some common practices: any double-quote is
       replaced by a double-double quote (thus, "hello" become ""hello"", and fields  with  commas  are  put  in
       double-quotes. Normally, this should only apply to name fields.

   -p,--personal
       Only  show  addresses  seen in messages where one of `my' e-mail addresses was seen in one of the address
       fields; this is to exclude addresses only seen in mailing-list messages. See the  --my-address  parameter
       to muinit.

   --aftertimestamp
       Only  show  addresses  last seen after timestamp. timestamp is a UNIX time_t value, the number of seconds
       since 1970-01-01 (in UTC).

       From the command line, you can use the date command  to  get  this  value.  For  example,  only  consider
       addresses last seen after 2020-06-01, you could specify
              --after=`date +%s --date='2020-06-01'`

   --muhome
       Use a non-default directory to store and read the database, write the logs, etc.  By default, mu uses the
       XDG  Base  Directory  Specification  (e.g.  on  GNU/Linux this defaults to ~/.cache/mu and ~/.config/mu).
       Earlier versions of mu defaulted to ~/.mu, which now requires --muhome=~/.mu.

       The environment variable MUHOME can be used as an alternative to --muhome. The latter has precedence.

Common Options

-d,--debug
       Makes mu generate extra debug information, useful for debugging the  program  itself.  Debug  information
       goes to the standard logging location; see mu(1).

   -q,--quiet
       Causes  mu  not to output informational messages and progress information to standard output, but only to
       the log file. Error messages will still be sent to standard error. Note that muindex is much faster with
       --quiet, so it is recommended you use this option when using mu from scripts etc.

   --log-stderr
       Causes mu to not output log messages to standard error, in addition  to  sending  them  to  the  standard
       logging location.

   --nocolor
       Do not use ANSI colors. The environment variable NO_COLOR can be used as an alternative to --nocolor.

   -V,--version
       Prints mu version and copyright information.

   -h,--help
       Lists the various command line options.

Description

mucfind is the mu command for finding contacts (name and e-mail address of people who were either an e-
       mail's sender or receiver). There are different output formats available, for importing the contacts into
       other programs.

Encoding

mucfind output is encoded according to the current locale except for --format=bbdb. This  is  hard-coded
       to  UTF-8,  and  as such specified in the output-file, so emacs/bbdb can handle things correctly, without
       guessing.

Exit Code

       This command returns 0 upon successful completion, or a non-zero exit code otherwise.

       0.  success

       2.  no matches found. Try a different query

       11. database schema mismatch. You need to re-initialize mu, see mu-init(1)

       19. failed to acquire lock. Some other program has exclusive access to the mu database

       99. caught an exception

Integration With Mutt

       You can use mucfind as an external address book server for mutt.  For this to work, add the following to
       your muttrc:

              set query_command = "mu cfind --format=mutt-ab '%s'"

       Now,  in  mutt,  you  can  search  for  e-mail  addresses  using the query-command, which is (by default)
       accessible by pressing Q.

Json Format

       With --format=json, the matching contacts come out as a JSON array, e.g.,
              [
                {
                  "email"         : "syb@example.com",
                  "name"          : "Sybil Gerard",
                  "display"       : "Sybil Gerard <syb@example.com>",
                  "last-seen"     : 1075982687,
                  "last-seen-iso" : "2004-02-05T14:04:47Z",
                  "personal"      : false,
                  "frequency"     : 14
                },
                {
                  "email"         : "ed@example.com",
                  "name"          : "Mallory, Edward",
                  "display"       : "\"Mallory, Edward\" <ed@example.com>",
                  "last-seen"     : 1425991805,
                  "last-seen-iso" : "2015-03-10T14:50:05Z",
                  "personal"      : true,
                  "frequency"     : 2
                }
              ]

       Each contact has the following fields:

             ┌──────────────────────────────────────────────────────────────────────────────────────────┐
             │ property        description                                                              │
             ├──────────────────────────────────────────────────────────────────────────────────────────┤
             │ email           the email-address                                                        │
             │ name            the name (or none)                                                       │
             │ display         the combination name and e-mail address for display purposes             │
             │ last-seen       date of most recent message with this contact (Unix time)                │
             │ last-seen-isolast-seen represented as an ISO-8601 timestamp                           │
             │ personal        whether the email was seen in a message together with a personal address │
             │ frequency       approximation of the number of times this contact was seen in messages   │
             └──────────────────────────────────────────────────────────────────────────────────────────┘

       The JSON format is useful for further processing, e.g. using the jq(1) tool:

       List display names, sorted by their last-seen date:
              $ mu cfind --format=json --personal | jq -r '.[] | ."last-seen-iso" + " " + .display' | sort

Name

       mu-cfind - find contacts in the mu database and export them for use in other programs.

Reporting Bugs

       Please report bugs at https://github.com/djcb/mu/issues.

Searching Contacts

       When you index your messages (see muindex), mu creates a list of unique e-mail addresses found  and  the
       accompanying  name,  and  caches this list. In case the same e-mail address is used with different names,
       the most recent non-empty name is used.

       mucfind starts a search for contacts that match a regularexpression. For example:

              $ mu cfind '@gmail\.com'

       would find all contacts with a gmail-address, while

              $ mu cfind Mary

       lists all contacts with Mary in either name or e-mail address.

       If you do not specify a search expression, mucfind returns the full list of  contacts.  Note,  mucfind
       uses a cache with the e-mail information, which is populated during the indexing process.

       The regular expressions are basic case-insensitive PCRE, see pcre(3).

See Also

mu(1), mu-index(1), mu-find(1), pcre(3), jq(1)

                                                                                                     MUCFIND(1)

Synopsis

mu [COMMON-OPTIONS] cfind [OPTIONS] [PATTERN]

See Also