from offlineimap import folder, imaputil, imapserver
from offlineimap.folder.UIDMaps import MappedIMAPFolder
from offlineimap.threadutil import ExitNotifyThread
-import re, types, os
+import re, types, os, netrc, errno
from threading import *
class IMAPRepository(BaseRepository):
if user != None:
return user
+ try:
+ netrcentry = netrc.netrc().authentificator(self.gethost())
+ except IOError, inst:
+ if inst.errno != errno.ENOENT:
+ raise
+ else:
+ if netrcentry:
+ return netrcentry[0]
+
def getport(self):
return self.getconfint('remoteport', None)
def getssl(self):
return self.getconfboolean('ssl', 0)
+ def getsslclientcert(self):
+ return self.getconf('sslclientcert', None)
+
+ def getsslclientkey(self):
+ return self.getconf('sslclientkey', None)
+
def getpreauthtunnel(self):
return self.getconf('preauthtunnel', None)
password = fd.readline().strip()
fd.close()
return password
+
+ try:
+ netrcentry = netrc.netrc().authenticators(self.gethost())
+ except IOError, inst:
+ if inst.errno != errno.ENOENT:
+ raise
+ else:
+ if netrcentry:
+ user = self.getconf('remoteuser')
+ if user == None or user == netrcentry[0]:
+ return netrcentry[2]
return None
def getfolder(self, foldername):
imapobj = self.imapserver.acquireconnection()
self.imapserver.releaseconnection(imapobj)
+ def forgetfolders(self):
+ self.folders = None
+
def getfolders(self):
if self.folders != None:
return self.folders