| @@ -0,0 +1,38 @@ | |||||
| # mutt Offline email setup | |||||
| Mutt is one of the most rewarding programs one can use, but can be a pain in the ass to configure. Since my job is making power-user tools available for the masses I want to create a tool that automates most of mutt configuration so that users can simply give their email address and get a /comfy/ setup. At that, I don't just want a mutt wizard, but an offlineIMAP wizard, so users can easily access their mail offline as well, and a wizard that makes it easy to store passwords securely using gpg. | |||||
| ## Progress | |||||
| The main scripts `mutt_install.sh` can create or add an account from a domain in `domain.csv` to `~/.offlineimaprc` without a problem. | |||||
| ## YOU CAN HELP | |||||
| If you use mutt with a particular host or domain, put your server information in `domains.csv`! This will make everyone else who uses your email provider's life much easier! | |||||
| Or you can help monetarily via [Patreon](https://patreon.com/lukesmith) or [Paypal](https://paypal.me/LukeMSmith)! | |||||
| ## Todo | |||||
| * Expand the list of server information in `domains.csv`, including adding spoolfiles/records/postponed folders for each account. | |||||
| * Write scripts that do the following: | |||||
| * Stat `~/.offlineimaprc` and the the mutt configs to see what accounts are currently available. (**Done**, currently in `stat.sh`; needs integration.) | |||||
| * Delete a profile from above if requested. (**Done**, currently in `removeaccount.sh`; needs integration.) | |||||
| * Add a profile above if requested, including: | |||||
| * An automatic search of `domains.csv` for server information. (**Done**) | |||||
| * An ncurses menu for inputing server settings if not available in `domains.csv`. (Soon, see `manual.sh`) | |||||
| * Differential actions for Gmail accounts since these are distinct in offlineIMAP. (**Done**) | |||||
| * Configure notmuch with all accounts. | |||||
| * A prompt for adding encypted passwords for each account available. | |||||
| * Or directions for adding plain text passwords if desired. | |||||
| ### Todo: Add settings for email accounts not unified by one domain | |||||
| -------- | |||||
| zoho,imap.zoho.com,993.00,smtp.zoho.com,465.00 | |||||
| icloud,imap.mail.me.com,993.00,smtp.mail.me.com,587.00 | |||||
| inbox.com,imap.inbox.com,993.00,smtp.inbox.com,465.00 | |||||
| office365,outlook.office365.com,993.00,smtp.office365.com,587.00 | |||||
| hostgator,gator4171.hostgator.com,993.00,gator4171.hostgator.com,587.00 | |||||
| godaddy,imap.secureserver.net,993,smtpout.secureserver.net,465 | |||||
| @@ -0,0 +1,88 @@ | |||||
| ADDRESS,IMAP,imap port,SMTP,smtp port,spoolfile,postponed,record | |||||
| yahoo.com,imap.mail.yahoo.com,993.00,smtp.mail.yahoo.com,465/587,,, | |||||
| mail.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| aol.com,imap.aol.com,993.00,smtp.aol.com,465.00,,, | |||||
| email.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| usa.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| myself.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| consultant.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| post.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| europe.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| asia.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| iname.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| writeme.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| dr.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| engineer.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| cheerful.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| accountant.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| techie.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| linuxmail.org,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| uymail.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| contractor.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| accountant.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| activist.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| adexec.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| allergist.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| alumni.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| alumnidirector.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| angelic.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| appraiser.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| archaeologist.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| arcticmail.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| artlover.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| asia.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| auctioneer.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| bartender.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| bikerider.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| birdlover.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| brew-meister.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| cash4u.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| chef.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| chemist.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| clerk.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| clubmember.org,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| collector.org,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| columnist.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| comic.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| computer4u.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| consultant.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| contractor.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| coolsite.net,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| counsellor.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| cyberservices.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| deliveryman.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| diplomats.com,imap.mail.com,995.00,smtp.mail.com,587.00,INBOX,Drafts,Sent | |||||
| hostgator,gator4171.hostgator.com,993.00,gator4171.hostgator.com,587.00,INBOX,INBOX.Sent,INBOX.Drafts | |||||
| teknik.io,mail.teknik.io,993.00,mail.teknik.io,587.00,,, | |||||
| yandex.com,imap.yandex.com,993.00,smtp.yandex.com,465.00,,, | |||||
| outlook.com,imap-mail.outlook.com,993.00,smtp-mail.outlook.com,587.00,,, | |||||
| hotmail.com,imap-mail.outlook.com,993.00,smtp-mail.outlook.com,587.00,,, | |||||
| gmail.com,imap.google.com,993.00,smtp.gmail.com,587.00,INBOX,[Gmail].Drafts,[Gmail].Sent Mail | |||||
| cock.li,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| airmail.cc,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| 8chan.co,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| redchan.it,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| 420blaze.it,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| aaathats3as.com,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| cumallover.me,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| dicksinhisan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| loves.dicksinhisan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| wants.dicksinhisan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| dicksinmyan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| loves.dicksinmyan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| wants.dicksinmyan.us,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| goat.si,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| horsefucker.org,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| national.shitposting.agency,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| nigge.rs,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| tfwno.gf,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| cock.lu,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| cock.email,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| firemail.cc,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| hitler.rocks,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| getbackinthe.kitchen,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| memeware.net,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| cocaine.ninja,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| waifu.club,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| rape.lol,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| nuke.africa,mail.cock.li,993.00,mail.cock.li,587.00,INBOX,Drafts,Sent | |||||
| @@ -0,0 +1,26 @@ | |||||
| # vim: filetype=muttrc | |||||
| # muttrc file for account $title | |||||
| set realname = "$realname" | |||||
| set from = "$fulladdr" | |||||
| set smtp_url = "smtp://$fulladdr@$smtp:$sport/" | |||||
| set sendmail = "/usr/bin/msmtp -a $title" | |||||
| set folder = "~/.mail/$title" | |||||
| set header_cache = ~/.config/mutt/$title/cache/headers | |||||
| set message_cachedir = ~/.config/mutt/$title/cache/bodies | |||||
| set certificate_file = ~/.config/mutt/$title/certificates | |||||
| source "~/.config/mutt/credentials/getmuttpass $title |" | |||||
| set spoolfile = "+$spoolfile" | |||||
| set record = "+$record" | |||||
| set postponed = "+$postponed" | |||||
| set mbox_type = Maildir | |||||
| set ssl_starttls = yes | |||||
| set ssl_force_tls = yes | |||||
| bind index,pager g noop | |||||
| bind index gg first-entry | |||||
| macro index,pager gi "<change-folder>=$spoolfile<enter>" "Go to inbox" | |||||
| macro index,pager gs "<change-folder>=$record<enter>" "Go to sent" | |||||
| macro index,pager gd "<change-folder>=$postponed<enter>" "Go to drafts" | |||||
| @@ -0,0 +1,6 @@ | |||||
| [general] | |||||
| accounts = | |||||
| starttls = yes | |||||
| ssl = yes | |||||
| pythonfile = ~/.config/mutt/credentials/imappwd.py | |||||
| @@ -0,0 +1,18 @@ | |||||
| [Account $title] | |||||
| localrepository = $title-local | |||||
| remoterepository = $title-remote | |||||
| [Repository $title-remote] | |||||
| type = $type | |||||
| remoteuser = $fulladdr | |||||
| sslcacerfile = /etc/ssl/cets/ca-certificates.crt | |||||
| remotepasseval = mailpasswd("$title") | |||||
| remotehost = $imap | |||||
| port = $iport | |||||
| folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail'] | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| [Repository $title-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.mail/$title | |||||
| @@ -0,0 +1,4 @@ | |||||
| #!/bin/bash | |||||
| pass=$(gpg -d -q ~/.config/mutt/credentials/$1.gpg) | |||||
| echo set smtp_pass=\"$pass\" | |||||
| echo set imap_pass=\"$pass\" | |||||
| @@ -0,0 +1,11 @@ | |||||
| import os.path | |||||
| import subprocess | |||||
| home = os.path.expanduser("~") | |||||
| def mailpasswd(acct): | |||||
| acct = os.path.basename(acct) | |||||
| path = "%s/.config/mutt/credentials/%s.gpg" % (home,acct) | |||||
| args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path] | |||||
| try: | |||||
| return subprocess.check_output(args).strip() | |||||
| except subprocess.CalledProcessError: | |||||
| return "" | |||||
| @@ -0,0 +1,17 @@ | |||||
| # The stuff for manually putting in server settings. | |||||
| # Will be added to main script as option eventually. | |||||
| remotehost=$(\ | |||||
| dialog --inputbox "Insert the IMAP server for your email provider (excluding the port number)" 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| dialog --inputbox "What is your server's IMAP port number? (Usually 993)" 10 60 | |||||
| smtpserver=$(\ | |||||
| dialog --inputbox "Insert the SMTP server for your email provider (excluding the port number)" 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| smtpport=$(\ | |||||
| dialog --inputbox "What is your server's SMTP port number? (Usually 587 or 465)" 10 60 | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| @@ -0,0 +1,80 @@ | |||||
| #!/bin/bash | |||||
| muttdir="$HOME/Repos/email-mutt-offline/" | |||||
| mkdir -p ~/.config/mutt/credentials | |||||
| # Email for GPG | |||||
| youremail=$(\ | |||||
| dialog --title "Luke's mutt/offlineIMAP password wizard" --inputbox "Insert the email address with which you originally created your key pair. This is NOT necessarily the email you want to configure." 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| # Get email address | |||||
| fulladdr=$(\ | |||||
| dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Insert your full email address." 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| # Check to see if domain is in domain list | |||||
| serverinfo=$(cat autoconf/domains.csv | grep -w ^${fulladdr##*@}) | |||||
| if [ -z "$serverinfo" ]; then echo No suitable match. && exit; fi | |||||
| # Read in server data as variables | |||||
| IFS=, read service imap iport smtp sport spoolfile postponed record <<EOF | |||||
| $serverinfo | |||||
| EOF | |||||
| clear | |||||
| realname=$(\ | |||||
| dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Enter the full name you'd like to be identified by on this email account." 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| title=$(\ | |||||
| dialog --title "Luke's mutt/offlineIMAP autoconfig" --inputbox "Give a short, one-word name for this email account that will differentiate it from other email accounts." 10 60 \ | |||||
| 3>&1 1>&2 2>&3 3>&- \ | |||||
| ) | |||||
| # Sets the repo type and other variables for the sed regex. | |||||
| if [[ "$service" == "gmail.com" ]]; | |||||
| then | |||||
| type="Gmail" | |||||
| delet="remotehost" | |||||
| else | |||||
| type="IMAP" | |||||
| delet="Gmail]\/" | |||||
| fi | |||||
| # The replacements | |||||
| replacement=" | |||||
| s/\$realname/$realname/g; | |||||
| s/\$title/$title/g; | |||||
| s/\$fulladdr/$fulladdr/g; | |||||
| s/\$imap/$imap/g; | |||||
| s/\$iport/$iport/g; | |||||
| s/\$smtp/$smtp/g; | |||||
| s/\$sport/$sport/g; | |||||
| s/\$spoolfile/$spoolfile/g; | |||||
| s/\$postponed/$postponed/g; | |||||
| s/\$record/$record/g; | |||||
| s/\$type/$type/g; | |||||
| /$delet/d" | |||||
| addAccount() { | |||||
| if [ ! -f ~/.offlineimaprc ]; then cp "$muttdir"autoconf/offlineimap_header ~/.offlineimaprc; fi | |||||
| cat "$muttdir"autoconf/offlineimap_profile | sed -e "$replacement" >> ~/.offlineimaprc | |||||
| # Add the mutt profile. | |||||
| cat "$muttdir"autoconf/mutt_profile | sed -e "$replacement" > "$muttdir"accounts/$title.muttrc | |||||
| # Add on offlineimaprc sync list. | |||||
| sed -i "s/^accounts =.*[a-zA-Z]$/&, $title/g;s/^accounts =$/accounts = $title/g" ~/.offlineimaprc ;} | |||||
| addAccount | |||||
| dialog --title "Luke's mutt/offlineIMAP password wizard" --passwordbox "Enter the password for the \"$title\" account." 10 60 2> /tmp/$title | |||||
| gpg -r $youremail --encrypt /tmp/$title | |||||
| shred -u /tmp/$title && echo "Password encrypted and memory shredded." | |||||
| mv /tmp/$title.gpg ~/.config/mutt/credentials/ | |||||
| echo Done lmao. | |||||
| exit | |||||
| @@ -0,0 +1,111 @@ | |||||
| [general] | |||||
| accounts = luke, gmail | |||||
| #accounts = luke, gmail, gkulade, kulade, evenor | |||||
| starttls = yes | |||||
| ssl = yes | |||||
| autorefresh = 1 | |||||
| pythonfile = ~/.config/mutt/credentials/imappwd.py | |||||
| ####### | |||||
| [Account gmail] | |||||
| localrepository = gmail-local | |||||
| remoterepository = gmail-remote | |||||
| [Repository gmail-remote] | |||||
| type = Gmail | |||||
| remoteuser = luxmyth@gmail.com | |||||
| remotepasseval = mailpasswd("gmail") | |||||
| folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail', '[Gmail]/Chats', '[Gmail].Trash', 'Trump', 'ugaroml', 'SMS'] | |||||
| #folderfilter = lambda foldername: foldername in ['INBOX', 'lingcircle', "[Gmail].Sent Mail", '[Gmail].Drafts'] | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| [Repository gmail-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.Mail/Gmail | |||||
| ####### | |||||
| [Account luke] | |||||
| localrepository = luke-local | |||||
| remoterepository = luke-remote | |||||
| [Repository luke-remote] | |||||
| type = IMAP | |||||
| remoteuser = luke@lukesmith.xyz | |||||
| remotepasseval = mailpasswd("luke") | |||||
| remotehost = gator4171.hostgator.com | |||||
| folderfilter = lambda foldername: foldername in ['INBOX', 'INBOX.Sent', 'INBOX.Drafts'] | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| [Repository luke-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.Mail/Luke | |||||
| [Account kulade] | |||||
| localrepository = kulade-local | |||||
| remoterepository = kulade-remote | |||||
| [Repository kulade-remote] | |||||
| type = IMAP | |||||
| remoteuser = kulade@cock.li | |||||
| remotepasseval = mailpasswd("kulade") | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| remotehost = mail.cock.li | |||||
| [Repository kulade-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.Mail/kulade | |||||
| ####### | |||||
| [Account gkulade] | |||||
| localrepository = gkulade-local | |||||
| remoterepository = gkulade-remote | |||||
| [Repository gkulade-remote] | |||||
| type = Gmail | |||||
| remoteuser = kulade@gmail.com | |||||
| remotepasseval = mailpasswd("gkulade") | |||||
| folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail', 'SMS', 'Call log'] | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| [Repository gkulade-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.Mail/gkulade | |||||
| #[Account arizona] | |||||
| # | |||||
| #localrepository = arizona-local | |||||
| #remoterepository = arizona-remote | |||||
| # | |||||
| #[Repository arizona-remote] | |||||
| #type = IMAP | |||||
| #remoteuser = lukesmith@email.arizona.edu | |||||
| #remotehost = mail.catnet.arizona.edu | |||||
| #port = 993 | |||||
| ##folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail', '[Gmail]/Chats', '[Gmail].Trash', 'Trump', 'ugaroml', 'SMS'] | |||||
| #folderfilter = lambda foldername: foldername in ['INBOX', 'lingcircle', '[Gmail].Sent Mail', '[Gmail].Drafts'] | |||||
| #sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| # | |||||
| #[Repository arizona-local] | |||||
| #type = Maildir | |||||
| #localfolders = ~/.Mail/Arizona | |||||
| [Account evenor] | |||||
| localrepository = evenor-local | |||||
| remoterepository = evenor-remote | |||||
| [Repository evenor-remote] | |||||
| type = IMAP | |||||
| remoteuser = evenor@teknik.io | |||||
| remotepasseval = mailpasswd("evenor") | |||||
| remotehost = mail.teknik.io | |||||
| port = 993 | |||||
| sslcacertfile = /etc/ssl/certs/ca-certificates.crt | |||||
| [Repository evenor-local] | |||||
| type = Maildir | |||||
| localfolders = ~/.Mail/Evenor | |||||
| @@ -0,0 +1,20 @@ | |||||
| #!/bin/sh | |||||
| muttdir="$HOME/Repos/email-mutt-offline/" | |||||
| # This script will remove an account from ~/.offlineimaprc and the | |||||
| # designated location in ~/.config/mutt/accounts. | |||||
| # Feed the script the title of the account. | |||||
| title=$1 | |||||
| removeAccount() { sed -ie " | |||||
| /Account $title]/,/Account/{//!d} | |||||
| /Account $title]/d | |||||
| s/ $title\(,\|$\)//g | |||||
| s/=$title\(,\|$\)/=/g | |||||
| s/,$//g | |||||
| " ~/.offlineimaprc | |||||
| rm "$muttdir"accounts/$title.muttrc | |||||
| echo $title deleted. ;} | |||||
| removeAccount $title | |||||
| @@ -0,0 +1,8 @@ | |||||
| #!/bin/sh | |||||
| # Gets all accounts used by offlineimaps. | |||||
| cat ~/.offlineimaprc | grep "^accounts =" | sed -e 's/accounts =\( \)//g;s/\(,\) /\n/g;' | |||||
| # Another option | |||||
| # Get current accounts | |||||
| #accountsline=$(cat ~/.offlineimaprc | grep ^accou | sed 's/,//g') | |||||