@@ -57,7 +57,14 @@ esac | |||||
syncandnotify() { | syncandnotify() { | ||||
acc="$(echo "$account" | sed "s/.*\///")" | acc="$(echo "$account" | sed "s/.*\///")" | ||||
if [ -z "$opts" ]; then mbsync "$acc"; else mbsync "$opts" "$acc"; fi | if [ -z "$opts" ]; then mbsync "$acc"; else mbsync "$opts" "$acc"; fi | ||||
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 "${XDG_CONFIG_HOME:-$HOME/.config}/mutt/.mailsynclastrun" 2> /dev/null) | |||||
new=$(find\ | |||||
"$HOME/.local/share/mail/$acc/INBOX/new/"\ | |||||
"$HOME/.local/share/mail/$acc/Inbox/new/"\ | |||||
"$HOME/.local/share/mail/$acc/inbox/new/"\ | |||||
"$HOME/.local/share/mail/$acc/INBOX/cur/"\ | |||||
"$HOME/.local/share/mail/$acc/Inbox/cur/"\ | |||||
"$HOME/.local/share/mail/$acc/inbox/cur/"\ | |||||
-type f -newer "${XDG_CONFIG_HOME:-$HOME/.config}/mutt/.mailsynclastrun" 2> /dev/null) | |||||
newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l) | newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l) | ||||
case 1 in | case 1 in | ||||
$((newcount > 5)) ) notify "$acc" "$newcount" ;; | $((newcount > 5)) ) notify "$acc" "$newcount" ;; | ||||
@@ -13,14 +13,24 @@ mpoprc="${XDG_CONFIG_HOME:-$HOME/.config}/mpop/config" | |||||
alias mbsync='mbsync -c "$mbsyncrc"' | alias mbsync='mbsync -c "$mbsyncrc"' | ||||
acctseq="1 2 3 4 5 6 7 8 9" | acctseq="1 2 3 4 5 6 7 8 9" | ||||
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 | |||||
# On Ubuntu/Debian, a link is needed since they use an older version. | |||||
if command -V apt-get >/dev/null 2>&1; then | |||||
ln -s "$msmtprc" "$HOME/.msmtprc" 2>/dev/null | |||||
master="Master" | |||||
slave="Slave" | |||||
fi | |||||
for x in "/etc/ssl/certs/ca-certificates.crt" \ | |||||
"/etc/pki/tls/certs/ca-bundle.crt" "/etc/ssl/cert.pem" \ | |||||
"/etc/ssl/ca-bundle.pem" "/etc/pki/tls/cacert.pem" \ | |||||
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" \ | |||||
"/usr/local/share/ca-certificates/"; do | |||||
[ -f "$x" ] && sslcert="$x" && break | [ -f "$x" ] && sslcert="$x" && break | ||||
done || { echo "CA Certificate not found. Please install one or link it to /etc/ssl/certs/ca-certificates.crt" && exit 1 ;} | done || { echo "CA Certificate not found. Please install one or link it to /etc/ssl/certs/ca-certificates.crt" && exit 1 ;} | ||||
checkbasics() { command -V gpg >/dev/null 2>&1 && GPG="gpg" || GPG="gpg2" | checkbasics() { command -V gpg >/dev/null 2>&1 && GPG="gpg" || GPG="gpg2" | ||||
PASSWORD_STORE_DIR="${PASSWORD_STORE_DIR:-$HOME/.password-store}" | PASSWORD_STORE_DIR="${PASSWORD_STORE_DIR:-$HOME/.password-store}" | ||||
[ -r "$PASSWORD_STORE_DIR/.gpg-id" ] && | |||||
"$GPG" --list-secret-keys "$(cat "$PASSWORD_STORE_DIR/.gpg-id")" >/dev/null 2>&1 || { | |||||
[ -r "$PASSWORD_STORE_DIR/.gpg-id" ] || { | |||||
echo "First run \`pass init <yourgpgemail>\` to set up a password archive." | echo "First run \`pass init <yourgpgemail>\` to set up a password archive." | ||||
echo "(If you don't already have a GPG key pair, first run \`$GPG --full-generate-key\`.)" | echo "(If you don't already have a GPG key pair, first run \`$GPG --full-generate-key\`.)" | ||||
exit 1 ;} ;} | exit 1 ;} ;} | ||||
@@ -36,12 +46,11 @@ from $fulladdr | |||||
user $login | user $login | ||||
passwordeval \"pass $fulladdr\" | passwordeval \"pass $fulladdr\" | ||||
auth ${auth:-on} | auth ${auth:-on} | ||||
${tlsline:-tls on} | |||||
tls on | |||||
tls_trust_file $sslcert | tls_trust_file $sslcert | ||||
logfile $msmtplog | logfile $msmtplog | ||||
$tlsline | |||||
" >> "$msmtprc" | " >> "$msmtprc" | ||||
# On Ubuntu/Debian, a link is needed since they use an older version. | |||||
command -V apt-get >/dev/null 2>&1 && ln -s "$msmtprc" "$HOME/.msmtprc" 2>/dev/null | |||||
} | } | ||||
prepmbsync() { mkdir -p "${mbsyncrc%/*}" | prepmbsync() { mkdir -p "${mbsyncrc%/*}" | ||||
@@ -62,8 +71,8 @@ Inbox ${XDG_DATA_HOME:-$HOME/.local/share}/mail/$fulladdr/${inbox:-INBOX} | |||||
Channel $fulladdr | Channel $fulladdr | ||||
Expunge Both | Expunge Both | ||||
Master :$fulladdr-remote: | |||||
Slave :$fulladdr-local: | |||||
${master:-Far} :$fulladdr-remote: | |||||
${slave:-Near} :$fulladdr-local: | |||||
Patterns * !\"[Gmail]/All Mail\" | Patterns * !\"[Gmail]/All Mail\" | ||||
Create Both | Create Both | ||||
SyncState * | SyncState * | ||||
@@ -113,7 +122,7 @@ $synccmd | |||||
} | } | ||||
getprofiles() { \ | getprofiles() { \ | ||||
mkdir -p "${muttrc%/*}" "$accdir" "$cachedir/$fulladdr/bodies" "${XDG_CONFIG_HOME:-$HOME/.config}/msmtp" | |||||
mkdir -p "${muttrc%/*}" "$accdir" "${XDG_CONFIG_HOME:-$HOME/.config}/msmtp" | |||||
unset msmtp_header msmtp_profile mutt_profile mbsync_profile | unset msmtp_header msmtp_profile mutt_profile mbsync_profile | ||||
case "$iport" in | case "$iport" in | ||||
1143) imapssl=None ;; | 1143) imapssl=None ;; | ||||
@@ -183,7 +192,7 @@ askinfo() { \ | |||||
[ -z "$fulladdr" ] && echo "Give the full email address to add:" && | [ -z "$fulladdr" ] && echo "Give the full email address to add:" && | ||||
read -r fulladdr | read -r fulladdr | ||||
while ! echo "$fulladdr" | grep -qE "^.+@.+\.[A-Za-z]+$"; do | while ! echo "$fulladdr" | grep -qE "^.+@.+\.[A-Za-z]+$"; do | ||||
echo "\`$fulladdr\` is not a valid email address. Please retype the address:" | |||||
echo "$fulladdr is not a valid email address. Please retype the address:" | |||||
read -r fulladdr | read -r fulladdr | ||||
done | done | ||||
getaccounts; echo "$accounts" | grep -q "\s$fulladdr$" 2>/dev/null && | getaccounts; echo "$accounts" | grep -q "\s$fulladdr$" 2>/dev/null && | ||||
@@ -205,7 +214,7 @@ askinfo() { \ | |||||
} | } | ||||
createpass() { echo "$password" > "$PASSWORD_STORE_DIR/$fulladdr" | createpass() { echo "$password" > "$PASSWORD_STORE_DIR/$fulladdr" | ||||
"$GPG" -qer "$(cat "$PASSWORD_STORE_DIR/.gpg-id")" "$PASSWORD_STORE_DIR/$fulladdr" | |||||
"$GPG" -qe $(printf -- " -r %s" $(cat "$PASSWORD_STORE_DIR/.gpg-id")) "$PASSWORD_STORE_DIR/$fulladdr" | |||||
rm -f "$PASSWORD_STORE_DIR/$fulladdr" ;} | rm -f "$PASSWORD_STORE_DIR/$fulladdr" ;} | ||||
getpass() { while : ; do pass rm -f "$fulladdr" >/dev/null 2>&1 | getpass() { while : ; do pass rm -f "$fulladdr" >/dev/null 2>&1 | ||||
@@ -229,6 +238,8 @@ getboxes() { if [ -n "${force+x}" ] ; then | |||||
[ "$type" = "pop" ] && mailboxes="INBOX" | [ "$type" = "pop" ] && mailboxes="INBOX" | ||||
getaccounts; for x in $acctseq; do echo "$accounts" | grep -q "^$x:" || { export idnum="$x"; break ;}; done | getaccounts; for x in $acctseq; do echo "$accounts" | grep -q "^$x:" || { export idnum="$x"; break ;}; done | ||||
toappend="mailboxes $(echo "$mailboxes" | sed "s/^/\"=/;s/$/\"/" | paste -sd ' ' - )" | toappend="mailboxes $(echo "$mailboxes" | sed "s/^/\"=/;s/$/\"/" | paste -sd ' ' - )" | ||||
IFS=' | |||||
' | |||||
for x in $mailboxes; do | for x in $mailboxes; do | ||||
case "$x" in | case "$x" in | ||||
*[Ss][Ee][Nn][Tt]*) setBox record "$x"; formatShortcut s sent "$x" ;; | *[Ss][Ee][Nn][Tt]*) setBox record "$x"; formatShortcut s sent "$x" ;; | ||||
@@ -240,6 +251,7 @@ getboxes() { if [ -n "${force+x}" ] ; then | |||||
*[Ii][Nn][Bb][Oo][Xx]) formatShortcut i inbox "$x"; setBox spoolfile "$x" inbox="$x" ;; | *[Ii][Nn][Bb][Oo][Xx]) formatShortcut i inbox "$x"; setBox spoolfile "$x" inbox="$x" ;; | ||||
esac | esac | ||||
done | done | ||||
unset IFS | |||||
} | } | ||||
finalize() { echo "$toappend" >> "$accdir/$idnum-$fulladdr.muttrc" | finalize() { echo "$toappend" >> "$accdir/$idnum-$fulladdr.muttrc" | ||||
@@ -1,6 +1,7 @@ | |||||
ADDRESS,IMAP,imap port,SMTP,smtp port | ADDRESS,IMAP,imap port,SMTP,smtp port | ||||
126.com,imap.126.com,993,smtp.126.com,587 | 126.com,imap.126.com,993,smtp.126.com,587 | ||||
163.com,imap.163.com,993,smtp.163.com,587 | 163.com,imap.163.com,993,smtp.163.com,587 | ||||
3nt3.de,mail.3nt3.de,993,mail.3nt3.de,465 | |||||
420blaze.it,mail.cock.li,993,mail.cock.li,587 | 420blaze.it,mail.cock.li,993,mail.cock.li,587 | ||||
8chan.co,mail.cock.li,993,mail.cock.li,587 | 8chan.co,mail.cock.li,993,mail.cock.li,587 | ||||
aaathats3as.com,mail.cock.li,993,mail.cock.li,587 | aaathats3as.com,mail.cock.li,993,mail.cock.li,587 | ||||
@@ -43,6 +44,7 @@ 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 | btinternet.com,mail.btinternet.com,993,mail.btinternet.com,587 | ||||
calstatela.edu,outlook.office365.com,993,smtp.office365.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 | ||||
@@ -111,6 +113,7 @@ 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 | ||||
gordon.edu,outlook.office365.com,993,smtp.office365.com,587 | |||||
grrlz.net,mail.autistici.org,993,smtp.autistici.org,465 | grrlz.net,mail.autistici.org,993,smtp.autistici.org,465 | ||||
hacari.*,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 | helsinki.fi,outlook.office365.com,993,smtp.helsinki.fi,587 | ||||
@@ -157,6 +160,7 @@ 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 | ||||
luther.edu,imap.gmail.com,993,smtp.gmail.com,587 | luther.edu,imap.gmail.com,993,smtp.gmail.com,587 | ||||
mac.com,imap.mail.me.com,993,smtp.mail.me.com,587 | mac.com,imap.mail.me.com,993,smtp.mail.me.com,587 | ||||
mace.ac.in,imap.gmail.com,993,smtp.gmail.com,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.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 | ||||
@@ -204,8 +208,8 @@ 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 | ||||
parabolas.xyz,mail.parabolas.xyz,993,mail.parabolas.xyz,587 | parabolas.xyz,mail.parabolas.xyz,993,mail.parabolas.xyz,587 | ||||
paranoici.org,mail.autistici.org,993,smtp.autistici.org,465 | paranoici.org,mail.autistici.org,993,smtp.autistici.org,465 | ||||
paranoid.network,imap.nixnet.email,143,smtp.nixnet.email,587 | |||||
paranoid.email,imap.paranoid.email,993,smtp.paranoid.email,25 | paranoid.email,imap.paranoid.email,993,smtp.paranoid.email,25 | ||||
paranoid.network,imap.nixnet.email,143,smtp.nixnet.email,587 | |||||
pm.me,127.0.0.1,1143,127.0.0.1,1025 | pm.me,127.0.0.1,1143,127.0.0.1,1025 | ||||
poczta.fm,poczta.interia.pl,993,poczta.interia.pl,465 | 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 | ||||
@@ -279,9 +283,9 @@ 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 | ||||
ucsb.edu,imap.gmail.com,993,smtp.gmail.com,587 | ucsb.edu,imap.gmail.com,993,smtp.gmail.com,587 | ||||
ucsc.edu,imap.gmail.com,993,smtp.gmail.com,587 | ucsc.edu,imap.gmail.com,993,smtp.gmail.com,587 | ||||
uni.strath.ac.uk,outlook.office365.com,993,smtp.office365.com,587 | |||||
uni-duesseldorf.de,mail.hhu.de,993,mail.hhu.de,465 | uni-duesseldorf.de,mail.hhu.de,993,mail.hhu.de,465 | ||||
uni-jena.de,imap.uni-jena.de,993,smtp.uni-jena.de,587 | uni-jena.de,imap.uni-jena.de,993,smtp.uni-jena.de,587 | ||||
uni.strath.ac.uk,outlook.office365.com,993,smtp.office365.com,587 | |||||
unilodz.eu,outlook.office365.com,993,smtp.office365.com,587 | unilodz.eu,outlook.office365.com,993,smtp.office365.com,587 | ||||
unitn.it,imap.gmail.com,993,smtp.gmail.com,587 | unitn.it,imap.gmail.com,993,smtp.gmail.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 | ||||