summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/mw23
1 files changed, 9 insertions, 14 deletions
diff --git a/bin/mw b/bin/mw
index b00f597..af4d785 100755
--- a/bin/mw
+++ b/bin/mw
@@ -13,7 +13,6 @@ pass_prefix="mw-"
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"
mbsyncrc="${MBSYNCRC:-$HOME/.mbsyncrc}"
@@ -48,7 +47,7 @@ port ${sport:-587}
from $fulladdr
user $login
passwordeval \"pass $pass_prefix$fulladdr\"
-$starttlsoff
+$tlsline
"
mbsync_profile="IMAPStore $fulladdr-remote
Host $imap
@@ -170,7 +169,7 @@ askinfo() { \
read -r imap
[ -z "$smtp" ] && echo "Give your email server's SMTP address (excluding the port number):" &&
read -r smtp
- [ "$sport" = 465 ] && starttlsoff="tls_starttls off"
+ [ "$sport" = 465 ] && tlsline="tls_starttls off"
[ -z "$realname" ] && echo "Give the name you would like to be identified by on the email account:" &&
read -r realname
login="${login:-$fulladdr}"
@@ -210,10 +209,6 @@ writeinfo() { mkdir -p "$muttdir" "$accdir" "$cachedir/$fulladdr/bodies" "${XDG_
notmuchauto # Create a notmuch config file if not present already.
}
-protonfinger() { printf "Getting Protonmail bridge fingerprint...\\n"
- fingerprint="$(msmtp --serverinfo --host=$smtp --port=$sport --tls --tls-certcheck=off | grep SHA256: | sed 's/^.*: //')"
- sed -ibu "s/account $fulladdr/&\ntls_trust_file\ntls_fingerprint $fingerprint/" "$msmtprc" ; rm -f "$msmtprc"bu ;}
-
getpass() { while : ; do pass rm -f "$pass_prefix$fulladdr" >/dev/null 2>&1
pass insert "$pass_prefix$fulladdr" && break; done ;}
@@ -232,7 +227,7 @@ Trash
Sent
Archive" && return 0
if mailboxes="$(mbsync -l "$fulladdr" | sed 's/\//./')" >/dev/null 2>&1 && [ -n "$mailboxes" ]; then
- [ "$accounttype" = "online" ] && sed -ibu "/IMAPStore $fulladdr-remote$/,/# End profile/d" "$mbsyncrc" ; rm -f "$mbsyncrc"bu
+ [ -n "${online+x}" ] && sed -ibu "/IMAPStore $fulladdr-remote$/,/# End profile/d" "$mbsyncrc" ; rm -f "$mbsyncrc"bu
return 0
else
echo "$mailboxes"
@@ -294,7 +289,7 @@ setact() { if [ -n "${action+x}" ] && [ "$action" != "$1" ]; then
trap 'echo -e "\033[0m\n"; exit' INT ABRT
-while getopts "fplhdYD:y:i:I:s:S:u:a:n:x:" o; do case "${o}" in
+while getopts "fplhodYD:y:i:I:s:S:u:a:n:x:m:" o; do case "${o}" in
l) setact list || exit 1 ;;
d) setact delete || exit 1 ;;
D) setact delete || exit 1 ; fulladdr="$OPTARG" ;;
@@ -312,13 +307,12 @@ while getopts "fplhdYD:y:i:I:s:S:u:a:n:x:" o; do case "${o}" in
f) setact add || exit 1 ; force=True ;;
x) setact add || exit 1 ; password="$OPTARG" ;;
p) echo "NOTE: Protonmail users must install and configure Protonmail Bridge first for the first sync to work."
- proton=True
imap="127.0.0.1"
iport="1143"
smtp="127.0.0.1"
sport="1025"
ssltype="None"
- protonfinger
+ tlsline="tls_fingerprint $(msmtp --serverinfo --host=$smtp --port=$sport --tls --tls-certcheck=off | awk '/SHA256:/ {print $2}')"
setact add || exit 1
;;
*) cat << EOF
@@ -334,12 +328,13 @@ Main actions:
-Y Sync mail for all accounts
Options allowed with -a:
- -u Account login name if not full address.
- -n "Real name" to be on the email account.
+ -u Account login name if not full address
+ -n "Real name" to be on the email account
-i IMAP server address
-I IMAP server port
-s SMTP server address
-S SMTP server port
+ -x Password for account (recommended to be in double quotes)
-p Install for a Protonmail account.
-o Configure address, but keep mail online.
-b Assume typical English mailboxes without attempting log-on.
@@ -357,7 +352,7 @@ esac done
case "$action" in
list) list ;;
- add) askinfo && getprofiles && writeinfo && getboxes && finalize || delete ;;
+ add) askinfo && getprofiles && writeinfo && getboxes && finalize || { delete ; exit 1 ;} ;;
delete) delete $fulladdr ;;
sync) syncwrapper $fulladdr ;;
esac