dotfiles/recipes/email

140 lines
3.5 KiB
Text
Raw Normal View History

2018-02-22 16:27:37 +00:00
#!/bin/bash
2018-04-12 18:07:33 +00:00
# Description: Email syncing tools plus the mu4e client
2018-02-27 05:15:14 +00:00
set -e
2018-02-22 16:27:37 +00:00
__MAXMESSAGES=100
function __certificatefile {
for path in \
/usr/local/etc/ssl \
/usr/local/etc/openssl \
/usr/local/etc/openssl@1.1 \
/etc/ssl \
/etc/openssl \
; do
for certfile in \
cert.pem \
certs/ca-certificates.crt \
; do
if test -f "${path}/${certfile}"; then
echo "${path}/${certfile}"
return
fi
done
done
}
function __mbsync_config {
cat > ${HOME}/.mbsyncrc <<EOF
IMAPAccount personal
Host imap.gmail.com
User correl@gmail.com
PassCmd "pass accounts.google.com/correl@gmail.com | grep ^isync: | awk '{print \$2}'"
AuthMechs LOGIN
SSLType IMAPS
SSLVersions TLSv1.2
CertificateFile $(__certificatefile)
IMAPStore personal-remote
Account personal
MaildirStore personal-local
Subfolders Verbatim
Path ~/Mail/Personal/
Inbox ~/Mail/Personal/INBOX
Channel personal
Master :personal-remote:
Slave :personal-local:
MaxMessages ${__MAXMESSAGES}
ExpireUnread yes
Patterns "INBOX" "[Gmail]/Drafts" "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail" "[Gmail]/Chats" "[Gmail]/Trash"
Create Both
Expunge Both
SyncState *
IMAPAccount work
Host imap.gmail.com
User correlr@aweber.com
PassCmd "pass Work/aweber/accounts.google.com/correlr@aweber.com | grep ^isync: | awk '{print \$2}'"
AuthMechs LOGIN
SSLType IMAPS
SSLVersions TLSv1.2
CertificateFile $(__certificatefile)
IMAPStore work-remote
Account work
MaildirStore work-local
Subfolders Verbatim
Path ~/Mail/Work/
Inbox ~/Mail/Work/INBOX
Channel work
Master :work-remote:
Slave :work-local:
MaxMessages ${__MAXMESSAGES}
ExpireUnread yes
Patterns "INBOX" "AWeber Times" "Jira" "[Gmail]/Drafts" "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail" "[Gmail]/Chats" "[Gmail]/Trash"
Create Both
Expunge Both
SyncState *
EOF
}
2018-02-22 16:27:37 +00:00
_recipe emacs
case $_PLATFORM in
darwin)
2021-01-09 21:07:22 +00:00
_recipe brew
_brew isync
2019-08-06 14:05:20 +00:00
EMACS=$(which emacs) _brew mu --HEAD
;;
*)
_recipe _apt
for dep in \
build-essential \
autoconf \
automake \
libtool \
texinfo \
2021-01-09 21:07:22 +00:00
libgmime-3.0-dev \
libxapian-dev \
guile-2.0-dev \
html2text \
xdg-utils \
2021-01-09 21:07:22 +00:00
libwebkitgtk-dev \
isync
do
_apt $dep
done
dir=`mktemp -d` && \
pushd $dir >/dev/null
if ! command -v mu >/dev/null; then
echo "[tgz] Fetching mu"
curl -sL https://github.com/djcb/mu/archive/master.tar.gz \
| tar xz --strip 1 && \
echo "[tgz] Configuring mu" && \
./autogen.sh >/dev/null 2>&1 && \
./configure --prefix=/usr >/dev/null 2>&1 && \
echo "[tgz] Building mu" && \
make >/dev/null 2>&1 && \
echo "[tgz] Installing mu" && \
sudo make install >/dev/null 2>&1
popd >/dev/null
rm -rf "$dir"
fi
;;
esac
2018-02-22 16:27:37 +00:00
_run "[email] Creating mail directories" mkdir -p ${HOME}/Mail/{Personal,Work,.attachments}
_run "[email] Configuring mbsync" __mbsync_config
2021-01-21 01:14:13 +00:00
_run "[email] Initializing mail database" mu init -m ${HOME}/Mail \
--my-address=correl@gmail.com \
--my-address=correlr@aweber.com \
--my-address=correlr@aweber.net
_run "[email] Indexing mail" mu index
2018-02-22 16:27:37 +00:00
_recipe nvm
_npm imapnotify