diff --git a/offlineimap/repository/IMAP.py b/offlineimap/repository/IMAP.py index 8548b6d..33987e2 100644 --- a/offlineimap/repository/IMAP.py +++ b/offlineimap/repository/IMAP.py @@ -85,10 +85,30 @@ class IMAPRepository(BaseRepository): return self.imapserver.delim def gethost(self): - return self.getconf('remotehost') + host = None + localeval = self.localeval + + if self.config.has_option(self.getsection(), 'remotehosteval'): + host = self.getconf('remotehosteval') + if host != None: + return localeval.eval(host) + + host = self.getconf('remotehost') + if host != None: + return host def getuser(self): - return self.getconf('remoteuser') + user = None + localeval = self.localeval + + if self.config.has_option(self.getsection(), 'remoteusereval'): + user = self.getconf('remoteusereval') + if user != None: + return localeval.eval(user) + + user = self.getconf('remoteuser') + if user != None: + return user def getport(self): return self.getconfint('remoteport', None) @@ -109,6 +129,14 @@ class IMAPRepository(BaseRepository): return self.getconfboolean('expunge', 1) def getpassword(self): + passwd = None + localeval = self.localeval + + if self.config.has_option(self.getsection(), 'remotepasseval'): + passwd = self.getconf('remotepasseval') + if passwd != None: + return localeval.eval(passwd) + password = self.getconf('remotepass', None) if password != None: return password @@ -117,7 +145,7 @@ class IMAPRepository(BaseRepository): fd = open(os.path.expanduser(passfile)) password = fd.readline().strip() fd.close() - return password + return password return None def getfolder(self, foldername):