36 lines
836 B
Bash
Executable File
36 lines
836 B
Bash
Executable File
#!/bin/bash
|
|
# Automatically learn email addresses from sent/received mail
|
|
|
|
ABOOK_FILE="$HOME/.abook/addressbook"
|
|
mkdir -p "$HOME/.abook"
|
|
touch "$ABOOK_FILE"
|
|
|
|
# Extract all email addresses from notmuch database
|
|
notmuch address --output=sender --output=recipients '*' |
|
|
sort -u |
|
|
while read -r email; do
|
|
# Check if email is already in abook
|
|
if ! grep -q "$email" "$ABOOK_FILE" 2>/dev/null; then
|
|
# Extract name and email
|
|
if [[ $email =~ ^(.+)\<(.+)\>$ ]]; then
|
|
NAME="${BASH_REMATCH[1]}"
|
|
EMAIL="${BASH_REMATCH[2]}"
|
|
else
|
|
NAME=""
|
|
EMAIL="$email"
|
|
fi
|
|
|
|
# Add to abook (skip if already exists)
|
|
echo "[format]
|
|
program=abook
|
|
version=0.6.1
|
|
|
|
[0]
|
|
name=$NAME
|
|
email=$EMAIL
|
|
" >>"$ABOOK_FILE"
|
|
fi
|
|
done
|
|
|
|
echo "Address book updated: $(grep -c '^\[' "$ABOOK_FILE") entries"
|