From 40d1ddede65da9e7d5f18303a90624da40e8408e Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 13 Aug 2013 23:03:12 +0200 Subject: Initial commit of my offlineimap configuration in vcsh --- .offlineimap.py | 51 ++++++++++++++++++++++++++ .offlineimaprc | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 .offlineimap.py create mode 100644 .offlineimaprc diff --git a/.offlineimap.py b/.offlineimap.py new file mode 100644 index 0000000..fb4f66e --- /dev/null +++ b/.offlineimap.py @@ -0,0 +1,51 @@ +from offlineimap import imaputil + + +def lld_flagsimap2maildir(flagstring): + flagmap = {'\\seen': 'S', + '\\answered': 'R', + '\\flagged': 'F', + '\\deleted': 'T', + '\\draft': 'D', + 'gnus-expire': 'E'} + retval = [] + imapflaglist = [x.lower() for x in flagstring[1:-1].split()] + + for imapflag in imapflaglist: + if imapflag in flagmap: + retval.append(flagmap[imapflag]) + + retval.sort() + return set(retval) + + +def lld_flagsmaildir2imap(list): + flagmap = {'S': '\\Seen', + 'R': '\\Answered', + 'F': '\\Flagged', + 'T': '\\Deleted', + 'D': '\\Draft', + 'E': 'gnus-expire'} + retval = [] + + for mdflag in list: + if mdflag in flagmap: + retval.append(flagmap[mdflag]) + + retval.sort() + return '(' + ' '.join(retval) + ')' + +imaputil.flagsmaildir2imap = lld_flagsmaildir2imap +imaputil.flagsimap2maildir = lld_flagsimap2maildir + + +def getuser(host): + import netrc + mynet = netrc.netrc() + return mynet.authenticators(host)[0] + + +def getpassword(host): + import netrc + mynet = netrc.netrc() + return mynet.authenticators(host)[2] diff --git a/.offlineimaprc b/.offlineimaprc new file mode 100644 index 0000000..5b96d16 --- /dev/null +++ b/.offlineimaprc @@ -0,0 +1,110 @@ +# -*- mode: conf-unix; -*- +[general] +# NOTE: cronjob calls the quiet UI with -u +ui = TTYUI +accounts = ryuslash.org,gmail,aethon,ninthfloor +pythonfile = ~/.offlineimap.py + +[Account ryuslash.org] +localrepository = ryuslash.org-local +remoterepository = ryuslash.org-remote +# postsynchook = /home/slash/usr/bin/emacs-send-mail ryuslash.org + +[Repository ryuslash.org-local] +type = Maildir +localfolders = ~/documents/mail/ryuslash.org +nametrans = lambda folder: re.sub('^Inbox$', 'INBOX', folder.capitalize()) + +[Repository ryuslash.org-remote] +type = IMAP +remotehost = imap.alwaysdata.com +remoteusereval = getuser("imap.alwaysdata.com") +remotepasseval = getpassword("imap.alwaysdata.com") +nametrans = lambda folder: folder.lower() + +[Account aethon] +localrepository = aethon-local +remoterepository = aethon-remote +# postsynchook = /home/slash/usr/bin/emacs-send-mail aethon + +[Repository aethon-local] +type = Maildir +localfolders = ~/documents/mail/aethon +nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gmail]/Concepten', re.sub('^sent$', '[Gmail]/Verzonden berichten', re.sub('^trash$', '[Gmail]/Prullenbak', folder)))) + +[Repository aethon-remote] +type = Gmail +remoteusereval = getuser("imap.google.com-aethon") +remotepasseval = getpassword("imap.google.com-aethon") +realdelete = no +cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa +folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Concepten', '[Gmail]/Verzonden berichten', '[Gmail]/Prullenbak'] +nametrans = lambda folder: re.sub('^INBOX$', 'inbox', re.sub('^\[Gmail\]/Concepten$', 'drafts', re.sub('^\[Gmail\]/Verzonden berichten$', 'sent', re.sub('^\[Gmail\]/Prullenbak$', 'trash', folder)))) + +[Account gmail] +localrepository = gmail-local +remoterepository = gmail-remote +# postsynchook = /home/slash/usr/bin/emacs-send-mail gmail + +[Repository gmail-local] +type = Maildir +localfolders = ~/documents/mail/gmail +nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gmail]/Drafts', re.sub('^sent$', '[Gmail]/Sent Mail', re.sub('^trash$', '[Gmail]/Trash', folder)))) + +[Repository gmail-remote] +type = Gmail +remoteusereval = getuser("imap.google.com") +remotepasseval = getpassword("imap.google.com") +realdelete = no +cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa +folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Drafts', '[Gmail]/Sent Mail', '[Gmail]/Trash'] +nametrans = lambda folder: re.sub('^INBOX$', 'inbox', re.sub('^\[Gmail\]/Drafts$', 'drafts', re.sub('^\[Gmail\]/Sent Mail$', 'sent', re.sub('^\[Gmail\]/Trash$', 'trash', folder)))) + +[Account ninthfloor] +localrepository = ninthfloor-local +remoterepository = ninthfloor-remote +# postsynchook = /home/slash/usr/bin/emacs-send-mail ninthfloor + +[Repository ninthfloor-local] +type = Maildir +localfolders = ~/documents/mail/ninthfloor +nametrans = lambda folder: re.sub('^Inbox$', 'INBOX', folder.capitalize()) + +[Repository ninthfloor-remote] +type = IMAP +remotehost = ninthfloor.org +remoteusereval = getuser("ninthfloor.org") +remotepasseval = getpassword("ninthfloor.org") +nametrans = lambda folder: folder.lower() + +[Account arch] +localrepository = arch-local +remoterepository = arch-remote + +[Repository arch-local] +type = Maildir +localfolders = ~/documents/mail/arch +nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gmail]/Drafts', re.sub('^sent$', '[Gmail]/Sent Mail', re.sub('^trash$', '[Gmail]/Trash', folder)))) + +[Repository arch-remote] +type = Gmail +remoteusereval = getuser("imap.google.com-arch") +remotepasseval = getpassword("imap.google.com-arch") +realdelete = no +cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042 +folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Drafts', '[Gmail]/Sent Mail', '[Gmail]/Trash'] +nametrans = lambda folder: re.sub('^INBOX$', 'inbox', re.sub('^\[Gmail\]/Drafts$', 'drafts', re.sub('^\[Gmail\]/Sent Mail$', 'sent', re.sub('^\[Gmail\]/Trash$', 'trash', folder)))) + +[Account iactor] +localrepository = iactor-local +remoterepository = iactor-remote + +[Repository iactor-local] +type = Maildir +localfolders = ~/documents/mail/iactor + +[Repository iactor-remote] +type = IMAP +remotehost = mail.iactor.nl +remoteusereval = getuser("mail.iactor.nl") +remotepasseval = getpassword("mail.iactor.nl") -- cgit v1.2.3-54-g00ecf