@@ -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') |