Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MU CFIND(1)		     General Commands Manual		     MU CFIND(1)

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

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

DESCRIPTION
     mu cfind is the mu command for finding contacts (name and e-mail address of
     people who were either an e-mail's sender or  receiver).  Different  output
     formats  are  available,  e.g.,  for importing the contacts into other pro-
     grams.

SEARCHING CONTACTS
     When you index your messages (see mu index), mu creates a list of unique e-
     mail addresses found and the accompanying name, and caches  this  list.  If
     the  same e-mail address is used with different names, the most recent non-
     empty name is used. If that is not the desired name, see CORRECTING below.

     mu cfind starts a search for contacts that match a regular expression.  For
     example:

	    $ mu cfind '@gmail\.com'

     finds 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, mu cfind returns the full list
     of contacts. mu cfind 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).

CFIND OPTIONS
   --format plain|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 address book 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 mu cfind follows some common prac-
     tices: any double-quote is replaced by a double-double quote (thus, "hello"
     become ""hello"", and fields with commas are  put	in  double-quotes.  Nor-
     mally, this should only apply to name fields.

   -p, --personal
     Only  show addresses seen in messages where at least one of personal e-mail
     addresses was seen in any of the address fields; this  is	to  exclude  ad-
     dresses  only seen in mailing-list messages. See the --personal-address pa-
     rameter to mu init for specifying your personal e-mail addresses.

   --after timestamp
     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 mu index 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.

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-iso   last-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

INTEGRATION WITH MUTT
     You can use mu cfind 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.

ENCODING
     mu cfind 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.

CORRECTING
     If you want to correct the name for a given contact, one trick is to manual
     create an e-mail message with some future date that  has  all  the  correct
     name / e-mail address combinations, and put this in the Maildir you use.

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

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

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

COPYRIGHT
     This manpage is part of mu 1.14.2.

     Copyright	A(C) 2008-2026 Dirk-Jan C. Binnema. License GPLv3+: GNU GPL ver-
     sion 3 or later https://gnu.org/licenses/gpl.html. This is  free  software:
     you  are  free  to change and redistribute it. There is NO WARRANTY, to the
     extent permitted by law.

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

								     MU CFIND(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mu-cfind&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help