commit 914a1bf4d895a986adaa240e857b95c7f49fed4c
Author: Luke <luke@lukesmith.xyz>
Date: Fri, 9 Feb 2018 23:47:29 -0700
initial commit
Diffstat:
12 files changed, 427 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -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
diff --git a/autoconf/domains.csv b/autoconf/domains.csv
@@ -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
diff --git a/autoconf/mutt_profile b/autoconf/mutt_profile
@@ -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"
diff --git a/autoconf/offlineimap_header b/autoconf/offlineimap_header
@@ -0,0 +1,6 @@
+[general]
+accounts =
+starttls = yes
+ssl = yes
+pythonfile = ~/.config/mutt/credentials/imappwd.py
+
diff --git a/autoconf/offlineimap_profile b/autoconf/offlineimap_profile
@@ -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
diff --git a/credentials/getmuttpass b/credentials/getmuttpass
@@ -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\"
diff --git a/credentials/imappwd.py b/credentials/imappwd.py
@@ -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 ""
diff --git a/manual.sh b/manual.sh
@@ -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>&- \
+ )
diff --git a/mutt_install.sh b/mutt_install.sh
@@ -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
diff --git a/offlineimap b/offlineimap
@@ -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
diff --git a/removeaccount.sh b/removeaccount.sh
@@ -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
diff --git a/stat.sh b/stat.sh
@@ -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')