summaryrefslogtreecommitdiff
path: root/man/mu-init.1.org
blob: 92760e7281bf06744e33e6d3c3ded3a1ca847b91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#+TITLE: MU INIT
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc

* NAME

mu-init - initialize the *mu* message database

* SYNOPSIS

*mu* [​_COMMON-OPTIONS_​] *init* [​_OPTIONS_​]

* DESCRIPTION

*mu init* is the subcommand for setting up the *mu* message database. After *mu init*
has completed, you can run *mu index*.

* INIT OPTIONS

** -m, --maildir _maildir_
Use _maildir_ as the root-maildir.

By default, *mu* uses the *MAILDIR* environment to find the root-maildir. If it is
not set, it uses _~/Maildir_ if it is an existing directory. If neither of those
can be used, the *--maildir* option is required; it must be an absolute path (but
~~/~ expansion is performed).

** --personal-address _email-address-or-regex_
Specifies that some e-mail address is a /personal/ address. The option can be used
multiple times, to specify all your addresses.

Any message in which at least one of the contact fields matches a personal
address, is considered a `personal' message; this can then be used for filtering
in {{{man-link(mu-find,1)}}}, {{{man-link(mu-cfind,1)}}} and *mu4e*, e.g. to
filter-out mailing list messages.

_email-address-or-regex_ can be either a plain e-mail address (such as
*foo@example.com*), or a basic PCRE regular-expression (see {{{man-link(pcre,3)}}}
for details), wrapped in */* (such as =/foo-.*@example\\.com/=). Depending on your
shell, the argument may need to be quoted.

A note of warning for *mu4e* users: any regular-expressions used with
=--with-address= are also used by *mu4e*. Unfortunately, PCRE regular expressions
are *not* generally compatible with Emacs regular expressions. For instance,
*(foo|bar)* in PCRE syntax has *\(foo\|bar\)* as its Emacs equivalent.

The good news is that *mu4e* can automatically translate the regular-expressions,
if you allow it to, by installing the *pcre2el* Elisp package. See the *mu4e*
documentation for further details.

** --my-address _email-address-or-regex_
Obsolete alias for ~--personal-address~

** --ignored-address _email-address-or-regex_
Specifies that some e-mail address is to be ignored from the contacts-cache (the
option can be used multiple times). Such addresses then cannot be found with
{{{man-link(mu-cfind,1)}}} or in the Mu4e contacts cache.

_my-email-address_ can be either a plain e-mail address or a regexp, just like
for the *--personal-address* option.

** --max-message-size _size_
Specifies the maximum size for an e-mail message. Usually, the default of
100000000 bytes should be fine.

** --batch-size _size_
The number of changes after which they are committed to the database; decreasing
the value reduces the memory requirements, at the cost of make indexing
substantially slower. Usually, the default of 250000 should be fine.

Batch-size 0 is interpreted as `use the default'.

** --support-ngrams
Whether to enable support for using ngrams in indexing and query parsing; this
can be useful for languages without explicit word breaks, such as
Chinese/Japanese/Korean. See *NGRAM SUPPORT* below for details.

** --reinit
Reinitialize the database from an earlier version; that is, create a new empty
database with the existing settings. This cannot be combined with the other *init*
options.

When you have _labels_ defined for messages in your database, *mu* automatically exports those to file for importing later. See *RESTORING LABELS* below.

#+include: "muhome.inc" :minlevel 2

* NGRAM SUPPORT

*mu*'s underlying Xapian database supports `ngrams', which improve searching for
languages/scripts that do not have explicit word breaks, such as Chinese,
Japanese and Korean. It is fairly intrusive, and influences both indexing and
query-parsing; it is not enabled by default, and is recommended only if you need
to search for messages written in such languages.

When enabled, *mu* automatically uses ngrams automatically. Xapian environment
variables such as *XAPIAN_CJK_NGRAM* are ignored.

#+include: "exit-code.inc" :minlevel 1

* RESTORING LABELS

When you have any _labels_ defined for your database, *mu* automatically exports
those to a file in the *mu* cache directory; you see this in the ~--init~ output.

#+begin_example
$ mu init --reinit
exported labels to: /home/user/.cache/mu/mu-export-2025-08-16-13:43:27.txt
#+end_example

You can restore those labels _after_ re-indexing, e.g.,
#+begin_example
$ mu label import /home/user/.cache/mu/mu-export-2025-08-16-13:43:27.txt
#+end_example

Please see {{{man-link(mu-labels,1)}}} for further details.

* EXAMPLE
#+begin_example
$ mu init --maildir=~/Maildir --my-address=alice@example.com --my-address=bob@example.com --ignored-address='/.*reply.*/'
#+end_example

#+include: "prefooter.inc" :minlevel 1

* SEE ALSO

{{{man-link(mu-index,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-labels,1)}}},
{{{man-link(mu-cfind,1)}}},
{{{man-link(pcre,3)}}}