Version 0.2.1
Add run-tests.sh and utils.sh (from emailbook-janet)
parse test: Export LC_ALL=C for an env independent sort order
A minimalistic address book for e-mails only.
Clone this repository:
git clone https://git.sr.ht/~maxgyver83/emailbook
Or download only
emailbook. If
you like, copy emailbook
to a directory which is in your PATH
(p.e.
$HOME/.local/bin/
or /usr/local/bin/
). (Otherwise, use always the full
path.)
emailbook ~/emailbook.txt --add 'jd : John Doe <john.doe@example.com>'
Entries should look like MAILBOX
or ALIAS : MAILBOX
.
ALIAS
is your personal abbreviation (optional).emailbook ~/emailbook.txt --search 'john'
emailbook ~/emailbook.txt --key 'jd'
emailbook ~/emailbook.txt --value 'john'
--search
looks both at keys (=aliases) and values. --key
and --value
limit the search accordingly.
cat test/sample1 | emailbook ~/emailbook.txt --parse --all
This skips p.e. "John Doe" <jd@example.com>
when the address book already
contains the same entry without double quotes (and vice versa).
Plain e-mail addresses are wrapped in angle brackets automatically.
E-mails like noreply@example.com
are always ignored.
emailbook might work for other e-mail clients but it was tested only with aerc.
Add this line to ~/.config/aerc/aerc.conf
, [compose]
section:
address-book-cmd=emailbook /home/user/emailbook.txt --search "%s"
Note: aerc adds double quotes and angle brackets automatically during autocompletion.
Add this line to ~/.config/aerc/binds.conf
, [view]
section:
aa = :pipe -m emailbook /home/user/emailbook.txt --parse --all<Enter>
Just an example. aa
stands for "add all".
You could also use a separate binding for adding only the sender:
af = :pipe -m emailbook /home/user/emailbook.txt --parse --from<Enter>
A mailbox is an e-mail address plus optionally a display name.
E-mail senders/recipients should be written like these examples:
john.doe@example.com
<john.doe@example.com>
John Doe <john.doe@example.com>
"Doe, Joe" <john.doe@example.com>
Normally, a mailbox is composed of two parts: (1) an optional display name that indicates the name of the recipient (which can be a person or a system) that could be displayed to the user of a mail application, and (2) an addr-spec address enclosed in angle brackets ("<" and ">"). There is an alternate simple form of a mailbox where the addr-spec address appears alone, without the recipient's name or the angle brackets.
Double-quote the display name if it contains other characters than:
ALPHA DIGIT ! # $ % & ' * + - / = ? ^ _ ` { | } ~
emailbook
is heavily inspired by/similar to
~renerocksai/aercbook. But there are some
differences:
emailbook
...
'xxx'
and "'xxx'"
),"john@example.com" <john@example.com>
),=?UTF-8?Q?M=C3=BCller?=
(→ Müller
),Now, this applies also to aercbook
:
=?UTF-8?B?5byg5LiJ?=
(→ 张三
).Also see emailbook-janet: A minimalistic address book for e-mails only (mainly for aerc) for emailbook reimplemented in Janet. It's faster (but not as fast as aercbook). See emailbook.janet (including benchmark) · janet-lang/janet · Discussion #1419 for a benchmark.