Browse Source

Merge branch 'master' into patch-1

pull/519/head
Luke Smith 4 years ago
committed by GitHub
parent
commit
7661832bcd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 97 additions and 204 deletions
  1. +3
    -0
      FUNDING.yml
  2. +4
    -2
      Makefile
  3. +8
    -11
      README.md
  4. +0
    -68
      bin/mailsync
  5. +37
    -46
      bin/mw
  6. +1
    -1
      bin/openfile
  7. +3
    -3
      mw.1
  8. +33
    -72
      share/domains.csv
  9. +2
    -0
      share/mailcap
  10. +6
    -1
      share/mutt-wizard.muttrc

+ 3
- 0
FUNDING.yml View File

@@ -0,0 +1,3 @@
github: lukesmithxyz
custom: ["https://lukesmith.xyz/donate", "https://paypal.me/lukemsmith", "https://lukesmith.xyz/crypto"]
patreon: lukesmith

+ 4
- 2
Makefile View File

@@ -4,7 +4,9 @@ OS = $(shell uname -s)
ifndef PREFIX ifndef PREFIX
PREFIX = /usr/local PREFIX = /usr/local
endif endif
MANPREFIX = $(PREFIX)/share/man
ifndef MANPREFIX
MANPREFIX = $(PREFIX)/share/man
endif


install: install:
mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(PREFIX)/bin
@@ -32,7 +34,7 @@ install:


uninstall: uninstall:
for script in bin/*; do \ for script in bin/*; do \
rm -f $(DESTDIR)$(PREFIX)/$$script; \
rm -f $(DESTDIR)$(PREFIX)/bin/$$script; \
done done
rm -rf $(DESTDIR)$(PREFIX)/share/mutt-wizard rm -rf $(DESTDIR)$(PREFIX)/share/mutt-wizard
rm -f $(DESTDIR)$(MANPREFIX)/man1/mw.1 rm -f $(DESTDIR)$(MANPREFIX)/man1/mw.1


+ 8
- 11
README.md View File

@@ -3,16 +3,15 @@
Get this great stuff without effort: Get this great stuff without effort:


- A full-featured and autoconfigured email client on the terminal with neomutt - A full-featured and autoconfigured email client on the terminal with neomutt
- Mail stored offline so you can view and write email while away from internet and keep backups
- Mail stored offline so you can view and write email while you're away from internet and keep backups


Specifically, this wizard: Specifically, this wizard:


- Determines your email server's IMAP and SMTP servers and ports - Determines your email server's IMAP and SMTP servers and ports
- Creates dotfiles for `neomutt`, `isync`, and `msmtp` appropriate for your email address - Creates dotfiles for `neomutt`, `isync`, and `msmtp` appropriate for your email address
- Encrypts and stores locally your password for easy remote access, accessible only by your GPG key
- Encrypts and locally stores your password for easy remote access, accessible only by your GPG key
- Handles as many as nine separate email accounts automatically - Handles as many as nine separate email accounts automatically
- Auto-creates bindings to switch between accounts or between mailboxes - Auto-creates bindings to switch between accounts or between mailboxes
- Can automatically set mail updates as often as you want to sync your mail and update you when new mail arrives
- Provides sensible defaults and an attractive appearance for the neomutt email client - Provides sensible defaults and an attractive appearance for the neomutt email client
- If mutt-wizard doesn't know your server's IMAP/SMTP info by default, it will prompt you for them and will put them in all the right places. - If mutt-wizard doesn't know your server's IMAP/SMTP info by default, it will prompt you for them and will put them in all the right places.


@@ -26,14 +25,14 @@ sudo make install


User of Arch-based distros can also install mutt-wizard from the AUR as [mutt-wizard-git](https://aur.archlinux.org/packages/mutt-wizard-git/). User of Arch-based distros can also install mutt-wizard from the AUR as [mutt-wizard-git](https://aur.archlinux.org/packages/mutt-wizard-git/).


The mutt-wizard is run with the command `mw`. It also installs the `mailsync` command. Once everything is setup, you'll use `neomutt` to access your mail.
The mutt-wizard is run with the command `mw`. Once everything is setup, you'll use `neomutt` to access your mail.


- `mw add` -- add a new email account - `mw add` -- add a new email account
- `mw ls` -- list existing accounts - `mw ls` -- list existing accounts
- `mw pass` -- revise an account's password - `mw pass` -- revise an account's password
- `mw delete` -- delete an added account - `mw delete` -- delete an added account
- `mw sync` -- sync all mail accounts and update notmuch database
- `mw purge` -- delete all accounts and settings - `mw purge` -- delete all accounts and settings
- `mw cron` -- toggle/configure a cronjob to sync mail


## Dependencies ## Dependencies


@@ -47,10 +46,8 @@ There's a chance of errors if you use a slow-release distro like Ubuntu, Debian
### Optional ### Optional


- `lynx` - view HTML email in neomutt. - `lynx` - view HTML email in neomutt.
- `notmuch` - index and search mail. Install it and run `notmuch setup`, tell it that your mail is in `~/.local/share/mail/` (although `mw` will do this automatically if you haven't set notmuch up before). You can run it in mutt with `ctrl-f`. Run `notmuch new` to process new mail, although the included `mailsync` script does this for you.
- `libnotify`/`libnotify-bin` - allows notifications when syncthing mail with `mailsync`
- `notmuch` - index and search mail. Install it and run `notmuch setup`, tell it that your mail is in `~/.local/share/mail/` (although `mw` will do this automatically if you haven't set notmuch up before). You can run it in mutt with `ctrl-f`. Run `notmuch new` to process new mail.
- `abook` - a terminal-based address book. Pressing tab while typing an address to send mail to will suggest contacts that are in your abook. - `abook` - a terminal-based address book. Pressing tab while typing an address to send mail to will suggest contacts that are in your abook.
- A cron manager - if you want to enable the auto-sync feature.
- `pam-gnupg` - this is a more general program that I use. It automatically logs you into your GPG key on login so you will never need to input your password once logged on to your system. Check the repo and directions out [here](https://github.com/cruegge/pam-gnupg). - `pam-gnupg` - this is a more general program that I use. It automatically logs you into your GPG key on login so you will never need to input your password once logged on to your system. Check the repo and directions out [here](https://github.com/cruegge/pam-gnupg).
- `urlview` - outputs urls in mail to browser. - `urlview` - outputs urls in mail to browser.


@@ -105,12 +102,12 @@ mutt-wizard is free/libre software, licensed under the GPLv3.


## Watch out for these things: ## Watch out for these things:
- Gmail accounts can now create 'App Password' to use with """less secure""" applications. This password is single use (ie. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings. - Gmail accounts can now create 'App Password' to use with """less secure""" applications. This password is single use (ie. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings.
- Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
- Protonmail bridge is prone to timing out. Watch out for this while adding an account. If the bridge times out, try again.
- Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard. Note that when mutt-wizard asks for a password, you should put in your [bridge password](https://protonmail.com/bridge/thunderbird#3), not your account password.
- Protonmail bridge is prone to timing out. Watch out for this while adding an account. If the bridge times out, try again. It might help to [increase the timeout](https://protonmail.com/support/knowledge-base/thunderbird-connection-server-timed-error/) in your `mbsyncrc`.
- If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc. - If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc.
- `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems. - `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems.


## To-do ## To-do


- Add ~~Mac OS~~/BSD compatibility (the script is confired to work for Mac OS now)
- Add ~~Mac OS~~/~~BSD~~ compatibility (the script is confirmed to work for Mac OS and FreeBSD now)
- ~~Out-of-the-box compatibility with Protonmail Bridge~~ (I believe this is done, but more bug-testing is welcome since I don't have PM) - ~~Out-of-the-box compatibility with Protonmail Bridge~~ (I believe this is done, but more bug-testing is welcome since I don't have PM)

+ 0
- 68
bin/mailsync View File

@@ -1,68 +0,0 @@
#!/bin/sh

# Sync mail and give notification if there is new mail.

# Run only if user logged in (prevent cron errors)
pgrep -u "${USER:=$LOGNAME}" >/dev/null || { echo "$USER not logged in; sync will not run."; exit ;}
# Run only if not already running in other instance
pgrep -x mbsync >/dev/null && { echo "mbsync is already running." ; exit ;}

# Checks for internet connection and set notification script.
ping -q -c 1 1.1.1.1 > /dev/null || { echo "No internet connection detected."; exit ;}
command -v notify-send >/dev/null || echo "Note that \`libnotify\` or \`libnotify-send\` should be installed for pop-up mail notifications with this script."

# Required to display notifications if run as a cronjob:
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
export DISPLAY=:0.0

# For individual configurations:
[ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store"

# Settings are different for MacOS (Darwin) systems.
if [ "$(uname)" = "Darwin" ]; then
notify() { osascript -e "display notification \"$2 in $1\" with title \"You've got Mail\" subtitle \"Account: $account\"" && sleep 2 ;}
else
notify() { notify-send --app-name="mutt-wizard" "mutt-wizard" "📬 $2 new mail(s) in \`$1\` account." ;}
fi

# Check account for new mail. Notify if there is new content.
syncandnotify() {
acc="$(echo "$account" | sed "s/.*\///")"
mbsync "$acc"
new=$(find "$HOME/.local/share/mail/$acc/INBOX/new/" "$HOME/.local/share/mail/$acc/Inbox/new/" "$HOME/.local/share/mail/$acc/inbox/new/" -type f -newer "$HOME/.config/mutt/.mailsynclastrun" 2> /dev/null)
newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l)
if [ "$newcount" -gt "0" ]; then
notify "$acc" "$newcount" &
for file in $new; do
# Extract subject and sender from mail.
from=$(awk '/^From: / && ++n ==1,/^\<.*\>:/' "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | awk '{ $1=""; if (NF>=3)$NF=""; print $0 }' | sed 's/^[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//')
subject=$(awk '/^Subject: / && ++n == 1,/^\<.*\>: / && ++i == 2' "$file" | head -n-1 | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | sed 's/^Subject: //' | sed 's/^{[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//' | tr -d '\n')
notify-send --app-name="mutt-wizard" "📧$from:" "$subject" &
done
fi
}

# Sync accounts passed as argument or all.
if [ "$#" -eq "0" ]; then
accounts="$(awk '/^Channel/ {print $2}' "$HOME/.mbsyncrc")"
else
accounts=$*
fi

echo " 🔃" > /tmp/imapsyncicon_"$USER"
( pkill -RTMIN+12 "${STATUSBAR:-blocks}" >/dev/null 2>&1 ) 2>/dev/null

# Parallelize multiple accounts
for account in $accounts
do
syncandnotify &
done

wait
rm -f /tmp/imapsyncicon_"$USER"
( pkill -RTMIN+12 "${STATUSBAR:-blocks}" >/dev/null 2>&1 ) 2>/dev/null

notmuch new 2>/dev/null

#Create a touch file that indicates the time of the last run of mailsync
touch "$HOME/.config/mutt/.mailsynclastrun"

+ 37
- 46
bin/mw View File

@@ -7,21 +7,23 @@ command -V gpg >/dev/null 2>&1 && GPG="gpg" || GPG="gpg2"
printf "\`pass\` must be installed and initialized to encrypt passwords.\\nBe sure it is installed and run \`pass init <yourgpgemail>\`.\\nIf you don't have a GPG public private key pair, run \`%s --full-gen-key\` first.\\n" "$GPG" printf "\`pass\` must be installed and initialized to encrypt passwords.\\nBe sure it is installed and run \`pass init <yourgpgemail>\`.\\nIf you don't have a GPG public private key pair, run \`%s --full-gen-key\` first.\\n" "$GPG"
exit exit
} }
! command -v mbsync >/dev/null && printf "\`mbsync\` must be installed to run mutt-wizard.\\n" && exit
! command -v mbsync >/dev/null && printf "\`mbsync (isync package)\` must be installed to run mutt-wizard.\\n" && exit


prefix="/usr/local" prefix="/usr/local"
muttdir="$HOME/.config/mutt" # Main mutt config location
accdir="$muttdir/accounts" # Directory for account settings
maildir="$HOME/.local/share/mail" # Location of mail storage
namere="^[a-z_][a-z0-9_-]*$" # Regex to ensure viable username
emailre=".\+@.\+\\..\+" # Regex to confirm valid email address
muttdir="${XDG_CONFIG_HOME:-$HOME/.config}/mutt" # Main mutt config location
accdir="$muttdir/accounts" # Directory for account settings
maildir="${XDG_DATA_HOME:-$HOME/.local/share}/mail" # Location of mail storage
namere="^[a-z_][a-z0-9_-]*$" # Regex to ensure viable username
emailre=".+@.+\..+" # Regex to confirm valid email address
muttshare="$prefix/share/mutt-wizard" muttshare="$prefix/share/mutt-wizard"
mbsyncrc="$HOME/.mbsyncrc"
mbsyncrc="${MBSYNCRC:-$HOME/.mbsyncrc}"
mwconfig="$muttshare/mutt-wizard.muttrc" mwconfig="$muttshare/mutt-wizard.muttrc"
cachedir="$HOME/.cache/mutt-wizard"
cachedir="${XDG_CACHE_HOME:-$HOME/.cache}/mutt-wizard"
muttrc="$muttdir/muttrc" muttrc="$muttdir/muttrc"
msmtprc="$HOME/.config/msmtp/config"
msmtprc="${XDG_CONFIG_HOME:-$HOME/.config}/msmtp/config"
msmtplog="${XDG_CONFIG_HOME:-$HOME/.config}/msmtp/msmtp.log"
ssltype="IMAPS" # This is later changed to `None` later in the script if using Protonmail ssltype="IMAPS" # This is later changed to `None` later in the script if using Protonmail
alias mbsync='mbsync -c "$mbsyncrc"'


for x in "/etc/ssl/certs/ca-certificates.crt" "/etc/pki/tls/certs/ca-bundle.crt" "/etc/ssl/ca-bundle.pem" "/etc/pki/tls/cacert.pem" "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" "/etc/ssl/cert.pem" "/usr/local/share/ca-certificates/" for x in "/etc/ssl/certs/ca-certificates.crt" "/etc/pki/tls/certs/ca-bundle.crt" "/etc/ssl/ca-bundle.pem" "/etc/pki/tls/cacert.pem" "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" "/etc/ssl/cert.pem" "/usr/local/share/ca-certificates/"
do do
@@ -38,7 +40,7 @@ msmtp_header="defaults
auth on auth on
tls on tls on
tls_trust_file $sslcert tls_trust_file $sslcert
logfile ~/.config/msmtp/msmtp.log
logfile $msmtplog
" "
msmtp_profile="account $title msmtp_profile="account $title
host $smtp host $smtp
@@ -50,18 +52,17 @@ $starttlsoff
" "
mbsync_profile="IMAPStore $title-remote mbsync_profile="IMAPStore $title-remote
Host $imap Host $imap
Port $iport
Port $iport
User $login User $login
PassCmd \"pass mutt-wizard-$title\" PassCmd \"pass mutt-wizard-$title\"
AuthMechs LOGIN AuthMechs LOGIN
SSLType $ssltype SSLType $ssltype
AuthMech LOGIN
CertificateFile $sslcert CertificateFile $sslcert


MaildirStore $title-local MaildirStore $title-local
Subfolders Verbatim Subfolders Verbatim
Path ~/.local/share/mail/$title/
Inbox ~/.local/share/mail/$title/INBOX
Path ${XDG_DATA_HOME:-$HOME/.local/share}/mail/$title/
Inbox ${XDG_DATA_HOME:-$HOME/.local/share}/mail/$title/INBOX
Flatten . Flatten .


Channel $title Channel $title
@@ -93,7 +94,7 @@ bind index,pager g noop
bind index,pager M noop bind index,pager M noop
bind index,pager C noop bind index,pager C noop
bind index gg first-entry bind index gg first-entry
macro index o \"<shell-escape>mailsync -V $title<enter>\" \"run mbsync to sync $title\"
macro index o \"<shell-escape>mbsync -V $title<enter>\" \"run mbsync to sync $title\"
unmailboxes * unmailboxes *
" "
else else
@@ -103,7 +104,7 @@ set realname = \"$realname\"
set from = \"$fulladdr\" set from = \"$fulladdr\"
set sendmail = \"msmtp -a $title\" set sendmail = \"msmtp -a $title\"
alias me $realname <$fulladdr> alias me $realname <$fulladdr>
set folder = \"imaps://$fulladdr@$imap:$iport\"
set folder = \"imaps://$login@$imap:$iport\"
set imap_user = \"$login\" set imap_user = \"$login\"
set header_cache = $cachedir/$title/headers set header_cache = $cachedir/$title/headers
set message_cachedir = $cachedir/$title/bodies set message_cachedir = $cachedir/$title/bodies
@@ -128,7 +129,7 @@ askinfo() { \
printf "Insert the \033[31memail address\033[0m that you want to autoconfigure for mutt/mbsync\\n\tEmail: \033[36m" printf "Insert the \033[31memail address\033[0m that you want to autoconfigure for mutt/mbsync\\n\tEmail: \033[36m"
read -r fulladdr read -r fulladdr
printf "\033[0m" printf "\033[0m"
while ! echo "$fulladdr" | grep "$emailre" >/dev/null; do
while ! echo "$fulladdr" | grep -E "$emailre" >/dev/null; do
printf "That is not a valid \033[31memail address\033[0m, please retype the desired email.\\n\\nEmail: \033[36m\t" printf "That is not a valid \033[31memail address\033[0m, please retype the desired email.\\n\\nEmail: \033[36m\t"
read -r fulladdr read -r fulladdr
printf "\033[0m" printf "\033[0m"
@@ -137,7 +138,7 @@ askinfo() { \
search_query=$domain search_query=$domain
case "$domain" in case "$domain" in
protonmail.com|protonmail.ch|pm.me) protonmail.com|protonmail.ch|pm.me)
search_query='protonmail.com' && break;;
search_query='protonmail.com' ;;
*) *)
while : ; do while : ; do
printf "\nIs your email hosted with Protonmail? [yes/no] " printf "\nIs your email hosted with Protonmail? [yes/no] "
@@ -150,6 +151,10 @@ askinfo() { \
esac esac
printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain" printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain"
serverinfo="$(grep "^$search_query" "$muttshare/domains.csv" 2>/dev/null)" serverinfo="$(grep "^$search_query" "$muttshare/domains.csv" 2>/dev/null)"
if [ -z "$serverinfo" ]; then
search_query=$(echo "$search_query" | sed "s/\.[^\.]*$/\.\\\*/")
serverinfo="$(grep "^$search_query" "$muttshare/domains.csv" 2>/dev/null)"
fi
if [ -z "$serverinfo" ]; then if [ -z "$serverinfo" ]; then
printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n" printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n"
printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t" printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t"
@@ -189,7 +194,7 @@ EOF
echo "$maxmes" | grep "[1-9]" >/dev/null || maxmes="0" echo "$maxmes" | grep "[1-9]" >/dev/null || maxmes="0"
getpass getpass
getprofiles getprofiles
mkdir -p "$muttdir" "$accdir" "$cachedir/$title/bodies" "$HOME/.config/msmtp"
mkdir -p "$muttdir" "$accdir" "$cachedir/$title/bodies" "${XDG_CONFIG_HOME:-$HOME/.config}/msmtp"
getaccounts getaccounts
for x in $(seq 1 9); do echo "$accounts" | grep "$x" >/dev/null 2>&1 || { export idnum="$x"; break ;}; done for x in $(seq 1 9); do echo "$accounts" | grep "$x" >/dev/null 2>&1 || { export idnum="$x"; break ;}; done
[ ! -f "$msmtprc" ] && echo "$msmtp_header" > "$msmtprc" [ ! -f "$msmtprc" ] && echo "$msmtp_header" > "$msmtprc"
@@ -199,6 +204,7 @@ EOF
protonmail.ch|protonmail.com|pm.me) protonfinger || return 1 ;; protonmail.ch|protonmail.com|pm.me) protonfinger || return 1 ;;
esac esac
echo "$mutt_profile" > "$accdir/$idnum-$title.muttrc" echo "$mutt_profile" > "$accdir/$idnum-$title.muttrc"
mkdir -p "${mbsyncrc%/*}"
echo "$mbsync_profile" >> "$mbsyncrc" echo "$mbsync_profile" >> "$mbsyncrc"
notmuchauto notmuchauto
[ ! -f "$muttrc" ] && echo "# vim: filetype=neomuttrc" > "$muttrc" && echo "muttrc created." [ ! -f "$muttrc" ] && echo "# vim: filetype=neomuttrc" > "$muttrc" && echo "muttrc created."
@@ -275,27 +281,6 @@ delete() { sed -ibu "/IMAPStore $title-remote$/,/# End profile/d" "$mbsyncrc" ;
sed -ibu "/account $title/,/^\(\s*$\|account\)/d" "$msmtprc"; rm -f "$msmtprc"bu sed -ibu "/account $title/,/^\(\s*$\|account\)/d" "$msmtprc"; rm -f "$msmtprc"bu
} }


choosecron() { ! pgrep cron >/dev/null && echo "No cron manager running. Install/enable one and then select this option again." && return 1
if crontab -l | grep mailsync >/dev/null; then
echo "Active mail sync cronjob detected. Do you want to remove it?"
printf "\033[36m\t"
read -r rmyn
printf "\033[0m"
echo "$rmyn" | grep -i "^y\(es\)*$" >/dev/null && crontab -l | sed '/mailsync/d' | crontab - >/dev/null && echo "Mail sync turned off."
else
echo "How many minutes between each mail sync?"
printf "\033[36m\t"
read -r minnum
printf "\033[0m"
while ! echo "$minnum" | grep "^[0-9]\+$" >/dev/null; do
printf "That doesn't look like a number. How many minutes between each mail sync?\\n\033[36m\t"
read -r minnum
printf "\033[0m"
done
(crontab -l; echo "*/$minnum * * * * $(type mailsync | cut -d' ' -f3)") | crontab - &&
echo "Cronjob added. Mail will sync every $minnum minutes. Be sure you have your cron manager running."
fi ;}

asktype() { while : ; do asktype() { while : ; do
printf "Do you want to keep your mail for this account offline with mbsync? [yes/no]\\n\t" printf "Do you want to keep your mail for this account offline with mbsync? [yes/no]\\n\t"
read -r offnot read -r offnot
@@ -306,12 +291,18 @@ asktype() { while : ; do
esac; done ;} esac; done ;}


purge() { confirm "delete all account data" || exit purge() { confirm "delete all account data" || exit
rm -rf "$mbsyncrc" "$accdir" "$HOME/.config/msmtp" "$cachedir"
crontab -l | sed '/mailsync/d' | crontab - >/dev/null
rm -rf "$mbsyncrc" "$accdir" "${XDG_CONFIG_HOME:-$HOME/.config}/msmtp" "$cachedir"
echo "All configs and account settings have been purged." echo "All configs and account settings have been purged."
sed -ibu "/\# mw-autogenerated/d" "$muttrc" ; rm -f "$muttrc"bu sed -ibu "/\# mw-autogenerated/d" "$muttrc" ; rm -f "$muttrc"bu
} }


syncwrapper() { mbsync "${1:--a}" &
( kill -46 "$(pidof "${STATUSBAR:-dwmblocks}")" >/dev/null 2>&1 ) 2>/dev/null
wait
( kill -46 "$(pidof "${STATUSBAR:-dwmblocks}")" >/dev/null 2>&1 ) 2>/dev/null
notmuch new
}

notmuchauto() { \ notmuchauto() { \
[ -z "$NOTMUCH_CONFIG" ] && NOTMUCH_CONFIG="$HOME/.notmuch-config" [ -z "$NOTMUCH_CONFIG" ] && NOTMUCH_CONFIG="$HOME/.notmuch-config"
[ -f "$NOTMUCH_CONFIG" ] && return 0 [ -f "$NOTMUCH_CONFIG" ] && return 0
@@ -322,7 +313,7 @@ name=$realname
primary_email=$fulladdr primary_email=$fulladdr
[new] [new]
tags=unread;inbox; tags=unread;inbox;
ignore=
ignore=.mbsyncstate;.uidvalidity
[search] [search]
exclude_tags=deleted;spam; exclude_tags=deleted;spam;
[maildir] [maildir]
@@ -331,15 +322,15 @@ synchronize_flags=true
gpg_path=$GPG" gpg_path=$GPG"
echo "$nmbasic" > "$NOTMUCH_CONFIG" ;} echo "$nmbasic" > "$NOTMUCH_CONFIG" ;}


trap 'echo -e "\033[0m\n"; exit' STOP INT ABRT KILL
trap 'echo -e "\033[0m\n"; exit' INT ABRT


case "$1" in case "$1" in
ls) list ;; ls) list ;;
add) asktype && askinfo && tryconnect && finalize || delete ;; add) asktype && askinfo && tryconnect && finalize || delete ;;
pass) pick "change the password of" && getpass ;; pass) pick "change the password of" && getpass ;;
delete) pick delete && confirm "delete the \`$title\` profile" && delete ;; delete) pick delete && confirm "delete the \`$title\` profile" && delete ;;
sync) syncwrapper "$2" ;;
purge) purge ;; purge) purge ;;
cron) choosecron ;;
*) cat << EOF *) cat << EOF
mw: mutt-wizard, auto-configure email accounts for mutt mw: mutt-wizard, auto-configure email accounts for mutt
including downloadable mail with \`isync\`. including downloadable mail with \`isync\`.
@@ -349,7 +340,7 @@ Allowed options:
ls List configured accounts ls List configured accounts
delete Pick an account to delete delete Pick an account to delete
purge Delete all accounts and settings purge Delete all accounts and settings
cron Enable or disable an autosync via cronjob
sync Syncs mail and updates notmuch database
all else Print this message all else Print this message


NOTE: Once at least one account is added, you can run NOTE: Once at least one account is added, you can run


+ 1
- 1
bin/openfile View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh


# Helps open a file with xdg-open from mutt in a external program without weird side effects. # Helps open a file with xdg-open from mutt in a external program without weird side effects.
[ $(uname) = "Darwin" ] && opener="open" || opener="setsid xdg-open"
[ "$(uname)" = "Darwin" ] && opener="open" || opener="setsid xdg-open"
mkdir -p "/tmp/$USER-mutt-tmp" mkdir -p "/tmp/$USER-mutt-tmp"
file="/tmp/$USER-mutt-tmp/$(basename "$1")" file="/tmp/$USER-mutt-tmp/$(basename "$1")"
rm -f "$file" rm -f "$file"


+ 3
- 3
mw.1 View File

@@ -6,7 +6,7 @@ mw \- mutt-wizard \- autoconfigure email accounts for neomutt and isync
<command> <command>
.SH DESCRIPTION .SH DESCRIPTION
.B mw .B mw
takes a user email account and sets up a terminal-based email interface with it for
takes a user email account and sets up a terminal-based email interface for it with
.B neomutt. .B neomutt.
This can include offline email with This can include offline email with
.B isync/mbsync .B isync/mbsync
@@ -28,8 +28,8 @@ delete the configuration files for an already configured email account
.B purge .B purge
totally purge all local mutt-wizard accounts totally purge all local mutt-wizard accounts
.TP .TP
.B cron
toggle a cronjob that will automatically sync mail with
.B sync
sync mail accounts then update notmuch database
.B mailsync .B mailsync
as often as you wish as often as you wish
.SH DETAILS .SH DETAILS


+ 33
- 72
share/domains.csv View File

@@ -29,12 +29,15 @@ autoproduzioni.net,mail.autistici.org,993,smtp.autistici.org,465
bartender.net,imap.mail.com,993,smtp.mail.com,587 bartender.net,imap.mail.com,993,smtp.mail.com,587
bastardi.net,mail.autistici.org,993,smtp.autistici.org,465 bastardi.net,mail.autistici.org,993,smtp.autistici.org,465
bguth.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587 bguth.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587
bigpond.com,imap.telstra.com,143,smtp.telstra.com,587
bikerider.com,imap.mail.com,993,smtp.mail.com,587 bikerider.com,imap.mail.com,993,smtp.mail.com,587
billycarlyle.uk,mail.muny.us,993,mail.muny.us,465 billycarlyle.uk,mail.muny.us,993,mail.muny.us,465
birdlover.com,imap.mail.com,993,smtp.mail.com,587 birdlover.com,imap.mail.com,993,smtp.mail.com,587
bjoernguthphotography.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587 bjoernguthphotography.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587
bocken.org,mail.bocken.org,993,mail.bocken.org,587
brew-meister.com,imap.mail.com,993,smtp.mail.com,587 brew-meister.com,imap.mail.com,993,smtp.mail.com,587
bruttocarattere.org,mail.autistici.org,993,smtp.autistici.org,465 bruttocarattere.org,mail.autistici.org,993,smtp.autistici.org,465
btinternet.com,mail.btinternet.com,993,mail.btinternet.com,587
canaglie.net,mail.autistici.org,993,smtp.autistici.org,465 canaglie.net,mail.autistici.org,993,smtp.autistici.org,465
canaglie.org,mail.autistici.org,993,smtp.autistici.org,465 canaglie.org,mail.autistici.org,993,smtp.autistici.org,465
carleton.ca,imap-mail.outlook.com,993,smtp-mail.outlook.com,587 carleton.ca,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
@@ -45,9 +48,11 @@ chef.net,imap.mail.com,993,smtp.mail.com,587
chemist.com,imap.mail.com,993,smtp.mail.com,587 chemist.com,imap.mail.com,993,smtp.mail.com,587
chrissx.ga,chrissx.ga,993,chrissx.ga,25 chrissx.ga,chrissx.ga,993,chrissx.ga,25
clarkson.edu,imap.gmail.com,993,smtp.gmail.com,587 clarkson.edu,imap.gmail.com,993,smtp.gmail.com,587
clasnet.sunyocc.edu,outlook.office365.com,993,smtp.office365.com,587
clerk.com,imap.mail.com,993,smtp.mail.com,587 clerk.com,imap.mail.com,993,smtp.mail.com,587
clubmember.org,imap.mail.com,993,smtp.mail.com,587 clubmember.org,imap.mail.com,993,smtp.mail.com,587
cmail.carleton.ca,imap-mail.outlook.com,993,smtp-mail.outlook.com,587 cmail.carleton.ca,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
cn.edu,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
cocaine.ninja,mail.cock.li,993,mail.cock.li,587 cocaine.ninja,mail.cock.li,993,mail.cock.li,587
cock.email,mail.cock.li,993,mail.cock.li,587 cock.email,mail.cock.li,993,mail.cock.li,587
cock.li,mail.cock.li,993,mail.cock.li,587 cock.li,mail.cock.li,993,mail.cock.li,587
@@ -78,6 +83,7 @@ eneco.com,outlook.office365.com,993,smtp.office365.com,587
engineer.com,imap.mail.com,993,smtp.mail.com,587 engineer.com,imap.mail.com,993,smtp.mail.com,587
erciyes.edu.tr,posta.erciyes.edu.tr,993,smtp.erciyes.edu.tr,587 erciyes.edu.tr,posta.erciyes.edu.tr,993,smtp.erciyes.edu.tr,587
ethancoe.com,mail.privateemail.com,993,mail.privateemail.com,465 ethancoe.com,mail.privateemail.com,993,mail.privateemail.com,465
ethz.ch,mail.ethz.ch,993,mail.ethz.ch,587
etu.upmc.fr,courriel.upmc.fr,993,smtps.upmc.fr,587 etu.upmc.fr,courriel.upmc.fr,993,smtps.upmc.fr,587
europe.com,imap.mail.com,993,smtp.mail.com,587 europe.com,imap.mail.com,993,smtp.mail.com,587
fastmail.com,imap.fastmail.com,993,smtp.fastmail.com,465 fastmail.com,imap.fastmail.com,993,smtp.fastmail.com,465
@@ -87,65 +93,23 @@ forpsi.com,imap.forpsi.com,993,smtp.forpsi.com,465
forthnet.gr,mail.forthnet.gr,993,smtp-auth.forthnet.gr,465 forthnet.gr,mail.forthnet.gr,993,smtp-auth.forthnet.gr,465
fsmpi.rwth-aachen.de,mail.fsmpi.rwth-aachen.de,993,mail.fsmpi.rwth-aachen.de,465 fsmpi.rwth-aachen.de,mail.fsmpi.rwth-aachen.de,993,mail.fsmpi.rwth-aachen.de,465
fsu-jena,exchange.uni-jena.de,993,smtp.uni-jena.de,587 fsu-jena,exchange.uni-jena.de,993,smtp.uni-jena.de,587
gcc.edu,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
getbackinthe.kitchen,mail.cock.li,993,mail.cock.li,587 getbackinthe.kitchen,mail.cock.li,993,mail.cock.li,587
gmail.com,imap.gmail.com,993,smtp.gmail.com,587 gmail.com,imap.gmail.com,993,smtp.gmail.com,587
gmx.at,imap.gmx.net,993,mail.gmx.net,587
gmx.com,imap.gmx.net,993,mail.gmx.net,587
gmx.de,imap.gmx.net,993,mail.gmx.net,587
gmx.eu,imap.gmx.net,993,mail.gmx.net,587
gmx.fr,imap.gmx.com,993,mail.gmx.com,587
gmx.info,imap.gmx.net,993,mail.gmx.net,587
gmx.net,imap.gmx.net,993,mail.gmx.net,587
gmx.org,imap.gmx.net,993,mail.gmx.net,587
gmx.*,imap.gmx.net,993,mail.gmx.net,587
go2.pl,poczta.o2.pl,993,poczta.o2.pl,465 go2.pl,poczta.o2.pl,993,poczta.o2.pl,465
goat.si,mail.cock.li,993,mail.cock.li,587 goat.si,mail.cock.li,993,mail.cock.li,587
googlemail.com,imap.googlemail.com,993,smtp.googlemail.com,587 googlemail.com,imap.googlemail.com,993,smtp.googlemail.com,587
grrlz.net,mail.autistici.org,993,smtp.autistici.org,465 grrlz.net,mail.autistici.org,993,smtp.autistici.org,465
hacari.com,mail.autistici.org,993,smtp.autistici.org,465
hacari.net,mail.autistici.org,993,smtp.autistici.org,465
hacari.org,mail.autistici.org,993,smtp.autistici.org,465
hacari.*,mail.autistici.org,993,smtp.autistici.org,465
helsinki.fi,outlook.office365.com,993,smtp.helsinki.fi,587
hhu.de,mail.hhu.de,993,mail.hhu.de,465 hhu.de,mail.hhu.de,993,mail.hhu.de,465
hitler.rocks,mail.cock.li,993,mail.cock.li,587 hitler.rocks,mail.cock.li,993,mail.cock.li,587
horsefucker.org,mail.cock.li,993,mail.cock.li,587 horsefucker.org,mail.cock.li,993,mail.cock.li,587
hostgator,gator4171.hostgator.com,993,gator4171.hostgator.com,587 hostgator,gator4171.hostgator.com,993,gator4171.hostgator.com,587
hotmail.be,outlook.office365.com,993,smtp.office365.com,587
hotmail.ca,outlook.office365.com,993,smtp.office365.com,587
hotmail.cl,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.id,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.il,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.in,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.jp,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.kr,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.th,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.uk,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.za,outlook.office365.com,993,smtp.office365.com,587
hotmail.com,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
hotmail.com.ar,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.au,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.br,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.hk,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.tr,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.tw,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.vn,outlook.office365.com,993,smtp.office365.com,587
hotmail.cz,outlook.office365.com,993,smtp.office365.com,587
hotmail.de,outlook.office365.com,993,smtp.office365.com,587
hotmail.dk,outlook.office365.com,993,smtp.office365.com,587
hotmail.es,outlook.office365.com,993,smtp.office365.com,587
hotmail.fi,outlook.office365.com,993,smtp.office365.com,587
hotmail.fr,outlook.office365.com,993,smtp.office365.com,587
hotmail.gr,outlook.office365.com,993,smtp.office365.com,587
hotmail.hu,outlook.office365.com,993,smtp.office365.com,587
hotmail.it,outlook.office365.com,993,smtp.office365.com,587
hotmail.lt,outlook.office365.com,993,smtp.office365.com,587
hotmail.lv,outlook.office365.com,993,smtp.office365.com,587
hotmail.my,outlook.office365.com,993,smtp.office365.com,587
hotmail.nl,outlook.office365.com,993,smtp.office365.com,587
hotmail.no,outlook.office365.com,993,smtp.office365.com,587
hotmail.ph,outlook.office365.com,993,smtp.office365.com,587
hotmail.rs,outlook.office365.com,993,smtp.office365.com,587
hotmail.se,outlook.office365.com,993,smtp.office365.com,587
hotmail.sg,outlook.office365.com,993,smtp.office365.com,587
hotmail.sk,outlook.office365.com,993,smtp.office365.com,587
hotmail.*,outlook.office365.com,993,smtp.office365.com,587
hotmail.co.*,outlook.office365.com,993,smtp.office365.com,587
hotmail.com.*,outlook.office365.com,993,smtp.office365.com,587
hs-mittweida.de,mail.hs-mittweida.de,993,mail.hs-mittweida.de,465 hs-mittweida.de,mail.hs-mittweida.de,993,mail.hs-mittweida.de,465
humbug.pw,imap.migadu.com,993,smtp.migadu.com,587 humbug.pw,imap.migadu.com,993,smtp.migadu.com,587
hushmail.com,imap.hushmail.com,993,smtp.hushmail.com,465 hushmail.com,imap.hushmail.com,993,smtp.hushmail.com,465
@@ -158,11 +122,12 @@ infomaniak.com,imap.infomaniak.com,993,imap.infomaniak.com,587
insiberia.net,mail.autistici.org,993,smtp.autistici.org,465 insiberia.net,mail.autistici.org,993,smtp.autistici.org,465
insicuri.net,mail.autistici.org,993,smtp.autistici.org,465 insicuri.net,mail.autistici.org,993,smtp.autistici.org,465
interactio.io,imap.gmail.com,993,smtp.gmail.com,587 interactio.io,imap.gmail.com,993,smtp.gmail.com,587
interia.eu,poczta.interia.pl,993,poczta.interia.pl,465
interia.pl,poczta.interia.pl,993,poczta.interia.pl,465
interia.*,poczta.interia.pl,993,poczta.interia.pl,465
inventati.org,mail.autistici.org,993,smtp.autistici.org,465 inventati.org,mail.autistici.org,993,smtp.autistici.org,465
ionos.de,imap.ionos.de,993,smtp.ionos.de,587 ionos.de,imap.ionos.de,993,smtp.ionos.de,587
itu.dk,imap-mail.outlook.com,993,smtp-mail.outlook.com,587 itu.dk,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
iu.edu,imap.exchange.iu.edu,993,mail-relay.iu.edu,587
kean.edu,imap.gmail.com,993,smtp.gmail.com,587
kipras.org,mail.kipras.org,993,mail.kipras.org,587 kipras.org,mail.kipras.org,993,mail.kipras.org,587
krutt.org,mail.autistici.org,993,smtp.autistici.org,465 krutt.org,mail.autistici.org,993,smtp.autistici.org,465
kth.se,webmail.kth.se,993,smtp.kth.se,587 kth.se,webmail.kth.se,993,smtp.kth.se,587
@@ -177,6 +142,7 @@ loves.dicksinhisan.us,mail.cock.li,993,mail.cock.li,587
loves.dicksinmyan.us,mail.cock.li,993,mail.cock.li,587 loves.dicksinmyan.us,mail.cock.li,993,mail.cock.li,587
lukesmith.xyz,mail.lukesmith.xyz,993,mail.lukesmith.xyz,587 lukesmith.xyz,mail.lukesmith.xyz,993,mail.lukesmith.xyz,587
mail.com,imap.mail.com,993,smtp.mail.com,587 mail.com,imap.mail.com,993,smtp.mail.com,587
mail.de,imap.mail.de,993,smtp.mail.de,465
mail.mcgill.ca,outlook.office365.com,993,smtp.office365.com,587 mail.mcgill.ca,outlook.office365.com,993,smtp.office365.com,587
mail.polimi.it,outlook.office365.com,993,smtp.office365.com,587 mail.polimi.it,outlook.office365.com,993,smtp.office365.com,587
mail.ru,imap.mail.ru,993,smtp.mail.ru,465 mail.ru,imap.mail.ru,993,smtp.mail.ru,465
@@ -210,9 +176,7 @@ online.de,imap.1und1.de,993,smtp.1und1.de,465
op.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 op.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
opoczta.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 opoczta.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
orange.fr,imap.orange.fr,993,smtp.orange.fr,465 orange.fr,imap.orange.fr,993,smtp.orange.fr,465
outlook.at,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
outlook.com,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
outlook.de,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
outlook.*,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
outlook.es,outlook.office365.com,993,smtp.office365.com,587 outlook.es,outlook.office365.com,993,smtp.office365.com,587
paranoici.org,mail.autistici.org,993,smtp.autistici.org,465 paranoici.org,mail.autistici.org,993,smtp.autistici.org,465
pm.me,127.0.0.1,1143,127.0.0.1,1025 pm.me,127.0.0.1,1143,127.0.0.1,1025
@@ -220,10 +184,8 @@ poczta.fm,poczta.interia.pl,993,poczta.interia.pl,465
poczta.onet.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 poczta.onet.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
polimi.it,outlook.office365.com,993,smtp.office365.com,587 polimi.it,outlook.office365.com,993,smtp.office365.com,587
polito.it,mail.polito.it,993,mail.polito.it,465 polito.it,mail.polito.it,993,mail.polito.it,465
polito.it,mail.polito.it,993,mail.polito.it,465
post.com,imap.mail.com,993,smtp.mail.com,587 post.com,imap.mail.com,993,smtp.mail.com,587
posteo.de,posteo.de,993,posteo.de,587
posteo.net,posteo.de,993,posteo.de,587
posteo.*,posteo.de,993,posteo.de,587
privacyrequired.com,mail.autistici.org,993,smtp.autistici.org,465 privacyrequired.com,mail.autistici.org,993,smtp.autistici.org,465
prokonto.pl,poczta.o2.pl,993,poczta.o2.pl,465 prokonto.pl,poczta.o2.pl,993,poczta.o2.pl,465
protonmail.ch,127.0.0.1,1143,127.0.0.1,1025 protonmail.ch,127.0.0.1,1143,127.0.0.1,1025
@@ -232,23 +194,28 @@ rape.lol,mail.cock.li,993,mail.cock.li,587
redchan.it,mail.cock.li,993,mail.cock.li,587 redchan.it,mail.cock.li,993,mail.cock.li,587
resch.pw,mail.resch.pw,993,mail.resch.pw,587 resch.pw,mail.resch.pw,993,mail.resch.pw,587
riseup.net,mail.riseup.net,993,mail.riseup.net,465 riseup.net,mail.riseup.net,993,mail.riseup.net,465
rmcacs.org,imap.gmail.com,993,smtp.gmail.com,587
runbox.com,mail.runbox.com,993,mail.runbox.com,587 runbox.com,mail.runbox.com,993,mail.runbox.com,587
rwth-aachen.de,mail.rwth-aachen.de,993,mail.rwth-aachen.de,587 rwth-aachen.de,mail.rwth-aachen.de,993,mail.rwth-aachen.de,587
sapo.pt,imap.sapo.pt,993,smtp.sapo.pt,587 sapo.pt,imap.sapo.pt,993,smtp.sapo.pt,587
smail.inf.h-brs.de,imap.inf.h-brs.de,993,smtp.inf.h-brs.de,587 smail.inf.h-brs.de,imap.inf.h-brs.de,993,smtp.inf.h-brs.de,587
southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587 southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587
spoko.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 spoko.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
st.amu.edu.pl,outlook.office365.com,993,smtp.office365.com,587
stevens.edu,imap.outlook.com,993,smtp.outlook.com,587 stevens.edu,imap.outlook.com,993,smtp.outlook.com,587
stronzi.org,mail.autistici.org,993,smtp.autistici.org,465 stronzi.org,mail.autistici.org,993,smtp.autistici.org,465
stud.tu-darmstadt.de,imap.stud.tu-darmstadt.de,993,smtp.tu-darmstadt.de,465 stud.tu-darmstadt.de,imap.stud.tu-darmstadt.de,993,smtp.tu-darmstadt.de,465
stud.uis.no,outlook.office365.com,993,smtp.office365.com,587 stud.uis.no,outlook.office365.com,993,smtp.office365.com,587
stud.uni-bamberg.de,outlook.office365.com,993,smtp.office365.com,587 stud.uni-bamberg.de,outlook.office365.com,993,smtp.office365.com,587
student.binadarma.ac.id,imap.gmail.com,993,smtp.gmail.com,587
student.ethz.ch,mail.ethz.ch,993,mail.ethz.ch,587
student.rmit.edu.au,outlook.office365.com,993,smtp.office365.com,587 student.rmit.edu.au,outlook.office365.com,993,smtp.office365.com,587
student.tuwien.ac.at,mail.student.tuwien.ac.at,993,mail.student.tuwien.ac.at,587 student.tuwien.ac.at,mail.student.tuwien.ac.at,993,mail.student.tuwien.ac.at,587
studenti.unipi.it,outlook.office365.com,995,smtp.office365.com,587
student.utwente.nl,imap.gmail.com,993,smtp.gmail.com,587
studenti.unipi.it,outlook.office365.com,993,smtp.office365.com,587
students.rmcacs.org,imap.gmail.com,993,smtp.gmail.com,587
students.southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587 students.southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587
studio.unibo.it,outlook.office365.com,993,smtp.office365.com,587 studio.unibo.it,outlook.office365.com,993,smtp.office365.com,587
studio.unibo.it,outlook.office365.com,993,smtp.office365.com,587
studserv.uni-leipzig.de,studserv.uni-leipzig.de,993,studserv.uni-leipzig.de,25 studserv.uni-leipzig.de,studserv.uni-leipzig.de,993,studserv.uni-leipzig.de,25
subvertising.org,mail.autistici.org,993,smtp.autistici.org,465 subvertising.org,mail.autistici.org,993,smtp.autistici.org,465
t-online.de,secureimap.t-online.de,993,securesmtp.t-online.de,465 t-online.de,secureimap.t-online.de,993,securesmtp.t-online.de,465
@@ -268,7 +235,9 @@ ua.pt,outlook.office365.com,993,mail.ua.pt,25
uach.mx,imap.gmail.com,993,smtp.gmail.com,587 uach.mx,imap.gmail.com,993,smtp.gmail.com,587
ucdavis.edu,imap.gmail.com,993,smtp.gmail.com,587 ucdavis.edu,imap.gmail.com,993,smtp.gmail.com,587
uni-duesseldorf.de,mail.hhu.de,993,mail.hhu.de,465 uni-duesseldorf.de,mail.hhu.de,993,mail.hhu.de,465
unilodz.eu,outlook.office365.com,993,smtp.office365.com,587
unitybox.de,mail.unity-mail.de,993,mail.unity-mail.de,587 unitybox.de,mail.unity-mail.de,993,mail.unity-mail.de,587
univ-ubs.fr,partage.univ-ubs.fr,993,partage.univ-ubs.fr,587
uoregon.edu,imap.uoregon.edu,993,smtp.uoregon.edu,587 uoregon.edu,imap.uoregon.edu,993,smtp.uoregon.edu,587
uqtr.ca,outlook.office365.com,993,smtp.office365.com,587 uqtr.ca,outlook.office365.com,993,smtp.office365.com,587
usa.com,imap.mail.com,993,smtp.mail.com,587 usa.com,imap.mail.com,993,smtp.mail.com,587
@@ -281,6 +250,7 @@ vip.onet.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
vivaldi.net,imap.vivaldi.net,993,smtp.vivaldi.net,587 vivaldi.net,imap.vivaldi.net,993,smtp.vivaldi.net,587
vp.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 vp.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
vt.edu,imap.gmail.com,993,smtp.gmail.com,587 vt.edu,imap.gmail.com,993,smtp.gmail.com,587
vxempire.xyz,vxempire.xyz,993,vxempire.xyz,587
waifu.club,mail.cock.li,993,mail.cock.li,587 waifu.club,mail.cock.li,993,mail.cock.li,587
wanadoo.fr,imap.orange.fr,993,smtp.orange.fr,465 wanadoo.fr,imap.orange.fr,993,smtp.orange.fr,465
wants.dicksinhisan.us,mail.cock.li,993,mail.cock.li,587 wants.dicksinhisan.us,mail.cock.li,993,mail.cock.li,587
@@ -290,18 +260,9 @@ wit.edu,outlook.office365.com,993,smtp.office365.com,587
wp.pl,imap.wp.pl,993,smtp.wp.pl,465 wp.pl,imap.wp.pl,993,smtp.wp.pl,465
writeme.com,imap.mail.com,993,smtp.mail.com,587 writeme.com,imap.mail.com,993,smtp.mail.com,587
ya.ru,imap.yandex.com,993,smtp.yandex.com,587 ya.ru,imap.yandex.com,993,smtp.yandex.com,587
yahoo.com,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,587
yahoo.fr,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,587
yahoo.gr,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,587
yandex.by,imap.yandex.com,993,smtp.yandex.com,587
yandex.com,imap.yandex.com,993,smtp.yandex.com,587
yandex.kz,imap.yandex.com,993,smtp.yandex.com,587
yandex.net,imap.yandex.com,993,smtp.yandex.com,587
yandex.ru,imap.yandex.com,993,smtp.yandex.com,587
yandex.ua,imap.yandex.com,993,smtp.yandex.com,587
yahoo.*,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,587
yandex.*,imap.yandex.com,993,smtp.yandex.com,587
ymail.com,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,465
zaclys.net,mail.zaclys.net,993,mail.zaclys.net,465 zaclys.net,mail.zaclys.net,993,mail.zaclys.net,465
zoho.com,imap.zoho.com,993,smtp.zoho.com,465 zoho.com,imap.zoho.com,993,smtp.zoho.com,465
zohomail.eu,imap.zoho.eu,993,smtp.zoho.eu,465
ymail.com,imap.mail.yahoo.com,993,smtp.mail.yahoo.com,465
unilodz.eu,outlook.office365.com,993,smtp.office365.com,587
iu.edu,imap.exchange.iu.edu,993,mail-relay.iu.edu,587
zohomail.eu,imap.zoho.eu,993,smtp.zoho.eu,465

+ 2
- 0
share/mailcap View File

@@ -3,5 +3,7 @@ text/html; openfile %s ; nametemplate=%s.html
text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput; text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput;
image/*; openfile %s ; image/*; openfile %s ;
video/*; setsid mpv --quiet %s &; copiousoutput video/*; setsid mpv --quiet %s &; copiousoutput
audio/*; mpv %s ;
application/pdf; openfile %s ; application/pdf; openfile %s ;
application/pgp-encrypted; gpg -d '%s'; copiousoutput; application/pgp-encrypted; gpg -d '%s'; copiousoutput;
application/pgp-keys; gpg --import '%s'; copiousoutput;

+ 6
- 1
share/mutt-wizard.muttrc View File

@@ -46,7 +46,7 @@ bind index U undelete-message
bind index L limit bind index L limit
bind index h noop bind index h noop
bind index l display-message bind index l display-message
bind index <space> tag-entry
bind index,query <space> tag-entry
#bind browser h goto-parent #bind browser h goto-parent
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder" macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
bind index,pager H view-raw-message bind index,pager H view-raw-message
@@ -63,6 +63,11 @@ bind pager \031 previous-line # Mouse wheel
bind pager \005 next-line # Mouse wheel bind pager \005 next-line # Mouse wheel
bind editor <Tab> complete-query bind editor <Tab> complete-query


#set crypt_autosign = yes
#set crypt_opportunistic_encrypt = yes
#set pgp_self_encrypt = yes
#set pgp_default_key = 'your@gpgemailaddre.ss'

macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook" macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read" macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail" macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"


Loading…
Cancel
Save