diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/mw | 23 |
1 files changed, 9 insertions, 14 deletions
@@ -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 |