From ef816c5c7ea7ae36effc6ead8c1bbe62249c9f18 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 13 Feb 2023 19:31:13 -0500 Subject: [PATCH] offline mail cache fix and other tweaks --- bin/mw | 8 ++++---- share/mpop-temp | 2 ++ share/mutt-temp | 6 ++---- share/mutt-wizard.muttrc | 2 ++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/bin/mw b/bin/mw index 64d9076..e0057ae 100755 --- a/bin/mw +++ b/bin/mw @@ -73,6 +73,7 @@ prepmutt() { mkdir -p "${muttrc%/*}" "$accdir" } getprofiles() { \ + safename="$(echo $fulladdr | sed 's/@/_/g')" case "$type" in online) folder="imaps://$login@$imap:$iport" @@ -124,7 +125,7 @@ delete() { if [ -z "${fulladdr+x}" ]; then sed -ibu "/account $fulladdr$/,/^\(\s*$\|account\)/d" "$msmtprc" 2>/dev/null; rm -f "$msmtprc"bu sed -ibu "/account $fulladdr$/,/^\(\s*$\|account\)/d" "$mpoprc" 2>/dev/null; rm -f "$mpoprc"bu pass rm -f "$passprefix$fulladdr" >/dev/null 2>&1 - [ -n "${purge+x}" ] && rm -rf "${maildir:?}/${fulladdr:?}" + [ -n "${purge+x}" ] && safename="$(echo $fulladdr | sed 's/@/_/g')" && rm -rf "${cachedir:?}/${safename:?}" "${maildir:?}/${fulladdr:?}" } askinfo() { \ @@ -199,6 +200,7 @@ getboxes() { if [ -n "${force+x}" ] ; then finalize() { echo "$toappend" >> "$accdir/$fulladdr.muttrc" [ "$type" != "online" ] && echo "$mailboxes" | xargs -I {} mkdir -p "$maildir/$fulladdr/{}/cur" "$maildir/$fulladdr/{}/tmp" "$maildir/$fulladdr/{}/new" + mkdir -p "$cachedir/$safename/bodies" echo "$fulladdr (account #$idnum) added successfully." command -V urlview >/dev/null 2>&1 && [ ! -f "$HOME/.urlview" ] && echo "COMMAND \$BROWSER" > "$HOME/.urlview" return 0 ;} @@ -236,8 +238,6 @@ Main actions: -l List email addresses configured -d Remove an already added address -D your@email.com Force remove account without confirmation - -y your@email.com Sync mail for account by name - -Y Sync mail for all accounts -t number Toggle automatic mailsync every minutes -T Toggle automatic mailsync -r Reorder account numbers @@ -250,8 +250,8 @@ Options allowed with -a: -s SMTP server address -S SMTP server port -x Password for account (recommended to be in double quotes) - -P Pass Prefix (prefix of the file where password is stored) -p Add for a POP server instead of IMAP. + -P Pass Prefix (prefix of the file where password is stored) -X Delete an account's local email too when deleting. -o Configure address, but keep mail online. -f Assume typical English mailboxes without attempting log-on. diff --git a/share/mpop-temp b/share/mpop-temp index 9489a12..cc51d75 100644 --- a/share/mpop-temp +++ b/share/mpop-temp @@ -2,5 +2,7 @@ account $fulladdr tls on user $login host $imap +port $iport +timeout 10 delivery maildir $maildir/$fulladdr/INBOX passwordeval pass $passprefix$fulladdr diff --git a/share/mutt-temp b/share/mutt-temp index 89bbc8f..81148a1 100644 --- a/share/mutt-temp +++ b/share/mutt-temp @@ -5,8 +5,8 @@ set from = "$fulladdr" set sendmail = "msmtp -a $fulladdr" alias me $realname <$fulladdr> set folder = "$folder" -set header_cache = $cachedir/$fulladdr/headers -set message_cachedir = $cachedir/$fulladdr/bodies +set header_cache = "$cachedir/$safename/headers" +set message_cachedir = "$cachedir/$safename/bodies" set mbox_type = Maildir set hostname = "$hostname" source $muttshare/switch.muttrc @@ -16,5 +16,3 @@ set trash = "+Trash" set record = "+Sent" $extra macro index o "mailsync $fulladdr" "sync $fulladdr" -macro index \eg "unset wait_keygpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; $prefix/libexec/gpg-wks-client --create \\\$eFGPT \\\$eID | msmtp --read-envelope-from --read-recipients -a $fulladdr" "publish GPG key to WKS provider" -macro index \eh "$prefix/libexec/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a $fulladdr" "confirm GPG publication" diff --git a/share/mutt-wizard.muttrc b/share/mutt-wizard.muttrc index 9d9d12a..541f6c1 100644 --- a/share/mutt-wizard.muttrc +++ b/share/mutt-wizard.muttrc @@ -95,6 +95,8 @@ macro index,pager Ca ";=Archive" "copy mail to archive" #set crypt_opportunistic_encrypt = yes #set pgp_self_encrypt = yes #set pgp_default_key = 'your@gpgemailaddre.ss' +macro index \eg "unset wait_keygpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; $prefix/libexec/gpg-wks-client --create \\\$eFGPT \\\$eID | msmtp --read-envelope-from --read-recipients -a $fulladdr" "publish GPG key to WKS provider" +macro index \eh "$prefix/libexec/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a $fulladdr" "confirm GPG publication" macro index,pager a "set my_pipe_decode=\$pipe_decode pipe_decodeabook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "add the sender address to abook" macro index \Cr "T~UN." "mark all messages as read"