diff options
author | Luke Smith <luke@lukesmith.xyz> | 2025-02-28 09:34:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-28 09:34:51 +0000 |
commit | ed946ef98beead0c0163cbe8568daa24b3ee68b0 (patch) | |
tree | 570952f82196c76cb071c358e93e6ccc6009c8a3 | |
parent | 532332b8df5dba470bfe96f95592153e303cefa3 (diff) | |
parent | 1d6dc7b8f6d299167905d02fd948c07e624ae2fb (diff) |
Merge branch 'master' into patch-1
-rw-r--r-- | Makefile | 30 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rwxr-xr-x | bin/mailsync | 13 | ||||
-rwxr-xr-x | bin/mw | 6 | ||||
-rw-r--r-- | mw.1 | 1 | ||||
-rw-r--r-- | share/domains.csv | 3 | ||||
-rw-r--r-- | share/mutt-temp | 4 | ||||
-rw-r--r-- | share/mutt-wizard.muttrc | 2 |
8 files changed, 27 insertions, 34 deletions
@@ -1,39 +1,27 @@ .POSIX: -OS = $(shell uname -s) -ifndef PREFIX - PREFIX = /usr/local -endif -ifndef MANPREFIX - MANPREFIX = $(PREFIX)/share/man -endif +PREFIX = /usr/local +MANPREFIX = $(PREFIX)/share/man install: mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(PREFIX)/lib/mutt-wizard - cp -f bin/mw bin/mailsync $(DESTDIR)$(PREFIX)/bin/ - cp -f lib/openfile $(DESTDIR)$(PREFIX)/lib/mutt-wizard - chmod 755 $(DESTDIR)$(PREFIX)/bin/mw $(DESTDIR)$(PREFIX)/bin/mailsync $(DESTDIR)$(PREFIX)/lib/mutt-wizard/openfile mkdir -p $(DESTDIR)$(PREFIX)/share/mutt-wizard + cp -f bin/mailsync $(DESTDIR)$(PREFIX)/bin + cp -f lib/openfile $(DESTDIR)$(PREFIX)/lib/mutt-wizard chmod 755 $(DESTDIR)$(PREFIX)/share/mutt-wizard for shared in share/*; do \ cp -f $$shared $(DESTDIR)$(PREFIX)/share/mutt-wizard; \ chmod 644 $(DESTDIR)$(PREFIX)/share/mutt-wizard/$$(basename $(notdir $$shared)); \ done mkdir -p $(DESTDIR)$(MANPREFIX)/man1 - cp -f mw.1 $(DESTDIR)$(MANPREFIX)/man1/mw.1 cp -f mailsync.1 $(DESTDIR)$(MANPREFIX)/man1/mailsync.1 + sed 's:/usr/local:$(PREFIX):' < share/mutt-wizard.muttrc > $(DESTDIR)$(PREFIX)/share/mutt-wizard/mutt-wizard.muttrc + sed 's:/usr/local:$(PREFIX):' < share/mailcap > $(DESTDIR)$(PREFIX)/share/mutt-wizard/mailcap + sed 's:/usr/local:$(PREFIX):' < bin/mw > $(DESTDIR)$(PREFIX)/bin/mw + sed 's:/usr/local:$(PREFIX):' < mw.1 > $(DESTDIR)$(MANPREFIX)/man1/mw.1 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/mw.1 $(DESTDIR)$(MANPREFIX)/man1/mailsync.1 - if [ "$(PREFIX)" ]; then \ - sed -iba 's:/usr/local:$(PREFIX):' $(DESTDIR)$(PREFIX)/share/mutt-wizard/mutt-wizard.muttrc; \ - rm -f $(DESTDIR)$(PREFIX)/share/mutt-wizard/mutt-wizard.muttrcba; \ - sed -iba 's:/usr/local:$(PREFIX):' $(DESTDIR)$(PREFIX)/bin/mw; \ - rm -f $(DESTDIR)$(PREFIX)/bin/mwba; \ - sed -iba 's:/usr/local:$(PREFIX):' $(DESTDIR)$(MANPREFIX)/man1/mw.1; \ - rm -f $(DESTDIR)$(MANPREFIX)/man1/mw.1ba; \ - sed -iba 's:/usr/local:$(PREFIX):' $(DESTDIR)$(PREFIX)/share/mutt-wizard/mailcap; \ - rm -f $(DESTDIR)$(PREFIX)/share/mutt-wizard/mailcapba; \ - fi + chmod 755 $(DESTDIR)$(PREFIX)/bin/mw $(DESTDIR)$(PREFIX)/bin/mailsync $(DESTDIR)$(PREFIX)/lib/mutt-wizard/openfile mkdir -p $(DESTDIR)$(PREFIX)/share/zsh/site-functions/ chmod 755 $(DESTDIR)$(PREFIX)/share/zsh/site-functions/ cp -f completion/_mutt-wizard.zsh $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_mutt-wizard.zsh @@ -209,6 +209,8 @@ To give you an example of the interface, here's an idea: applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings. + To create an App Password for your Google account, + you can directly visit the [App Passwords](https://myaccount.google.com/apppasswords) page in your Google Account settings. - 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. diff --git a/bin/mailsync b/bin/mailsync index 1d403d6..4e6bfc4 100755 --- a/bin/mailsync +++ b/bin/mailsync @@ -63,16 +63,17 @@ syncandnotify() { newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l) case 1 in $((newcount > 5)) ) - echo "$newcount new mail for $2." >/dev/tty - [ -z "$MAILSYNC_MUTE" ] && notify "New Mail!" "📬 $newcount new mail(s) in \`$2\` account." + echo "$newcount new mails for $2." >/dev/tty + [ -z "$MAILSYNC_MUTE" ] && notify "New Mail!" "📬 $newcount new mails in \`$2\` account." ;; $((newcount > 0)) ) - echo "$newcount new mail for $2." >/dev/tty + echo "$newcount new mail(s) for $2." >/dev/tty [ -z "$MAILSYNC_MUTE" ] && for file in $new; do - # Extract and decode subject and sender from mail. - subject="$(sed -n "/^Subject:/ s|Subject: *|| p" "$file" | - perl -CS -MEncode -ne 'print decode("MIME-Header", $_)')" + # Extract and decode subject and sender from mail. + subject=$(awk '/^Subject: / && ++n == 1,/^.*: / && ++i == 2' "$file" | head -n-1 | + perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | + sed 's/^Subject: //' | tr -d '\n\t') from="$(sed -n "/^From:/ s|From: *|| p" "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)')" from="${from% *}" ; from="${from%\"}" ; from="${from#\"}" @@ -173,11 +173,11 @@ askinfo() { [ -z "$passprefix" ] && passprefix="" hostname="${fulladdr#*@}" login="${login:-$fulladdr}" - if [ -n "${password+x}" ]; then + if [ -n "${password+x}" ] && [ ! -f "$PASSWORD_STORE_DIR/$passprefix$fulladdr.gpg" ]; then insertpass - else + elif [ ! -f "$PASSWORD_STORE_DIR/$passprefix$fulladdr.gpg" ]; then getpass - fi + fi } insertpass() { @@ -70,6 +70,7 @@ SMTP server port (assumed to be 465 if not specified) .TP .B -x Account password. You will be prompted for the password interactively if this option is not given. +.TP .B -P Pass Prefix. The password will be stored using pass at <passprefix><email> .SH OTHER OPTIONS diff --git a/share/domains.csv b/share/domains.csv index 835d96c..beb7a1e 100644 --- a/share/domains.csv +++ b/share/domains.csv @@ -117,6 +117,7 @@ freedom.nl,imap.freedom.nl,993,smtp.freedom.nl,465 freedom.xyz,imap.nixnet.email,143,smtp.nixnet.email,587 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 +fz-juelich.de,imap.fz-juelich.de,993,mail.fz-juelich.de,587 gcc.edu,imap-mail.outlook.com,993,smtp-mail.outlook.com,587 getbackinthe.kitchen,mail.cock.li,993,mail.cock.li,587 ghalv.no,mail.ghalv.no,993,mail.ghalv.no,465 @@ -200,7 +201,7 @@ national.shitposting.agency,mail.cock.li,993,mail.cock.li,587 ncsu.edu,imap.gmail.com,993,smtp.gmail.com,587 netcourrier.com,mail.netcourrier.com,993,mail.netcourrier.com,465 nigge.rs,mail.cock.li,993,mail.cock.li,587 -niser.ac.in,imap.gmail.com,993,smtp.gmail.com,587 +niser.ac.in,imap.gmail.com,993,smtp.gmail.com,465 nixnet.email,imap.nixnet.email,143,smtp.nixnet.email,587 nixnet.xyz,imap.nixnet.email,143,smtp.nixnet.email,587 nixnetmail.com,imap.nixnet.email,143,smtp.nixnet.email,587 diff --git a/share/mutt-temp b/share/mutt-temp index 81148a1..63841ad 100644 --- a/share/mutt-temp +++ b/share/mutt-temp @@ -1,6 +1,6 @@ # vim: filetype=neomuttrc # muttrc file for account $fulladdr -set realname = "$realname" +set real_name = "$realname" set from = "$fulladdr" set sendmail = "msmtp -a $fulladdr" alias me $realname <$fulladdr> @@ -10,7 +10,7 @@ set message_cachedir = "$cachedir/$safename/bodies" set mbox_type = Maildir set hostname = "$hostname" source $muttshare/switch.muttrc -set spoolfile = "+INBOX" +set spool_file = "+INBOX" set postponed = "+Drafts" set trash = "+Trash" set record = "+Sent" diff --git a/share/mutt-wizard.muttrc b/share/mutt-wizard.muttrc index 95a9ae9..f236bc4 100644 --- a/share/mutt-wizard.muttrc +++ b/share/mutt-wizard.muttrc @@ -101,7 +101,7 @@ macro index \eh "<pipe-message>$prefix/libexec/gpg-wks-client --receive | msmtp 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 O "<shell-escape>mailsync<enter>" "run mailsync to sync all mail" -macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>printf 'Enter a search term to find with notmuch: '; read x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern" +macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>printf 'Enter a search term to find with notmuch: '; read x; echo \$x >\"\${XDG_CACHE_HOME:-\$HOME/.cache}/mutt_terms\"<enter><limit>~i \"\`notmuch search --output=messages \$(cat \"\${XDG_CACHE_HOME:-\$HOME/.cache}/mutt_terms\") | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/g for@a; s/\\$/\\\\\\$/g for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern" macro index A "<limit>all\n" "show all messages (undo limit)" # Sidebar mappings |