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  ad-
       dress  of  people who were either an e-mail's sender or receiver). Dif-
       ferent output formats are available, e.g., for importing	 the  contacts
       into other programs.

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
       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 at least one	of personal e-
       mail addresses was seen in any of the address fields; this  is  to  ex-
       clude addresses only seen in mailing-list messages. See the --personal-
       address	parameter  to  mu init for specifying your personal e-mail ad-
       dresses.

   --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). Ear-
       lier   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	 loca-
       tion; 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-com-
       mand, 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.12.15.

       Copyright   2008-2026 Dirk-Jan C. Binnema. License GPLv3+: GNU GPL ver-
       sion 3 or later https://gnu.org/licenses/gpl.html. This is  free	 soft-
       ware: 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.0.quarterly>

home | help