diff --git a/offlineimap.conf b/offlineimap.conf index cf5a69d..b8a6185 100644 --- a/offlineimap.conf +++ b/offlineimap.conf @@ -292,6 +292,7 @@ type = IMAP # "getcredentials" that parses a file "filename" and returns the account # details for "hostname". # remotehosteval = getcredentials("filename", "hostname", "hostname") +# remoteporteval = getcredentials("filename", "hostname", "port") # remoteusereval = getcredentials("filename", "hostname", "user") # remotepasseval = getcredentials("filename", "hostname", "passwd") diff --git a/offlineimap/repository/IMAP.py b/offlineimap/repository/IMAP.py index be8c858..f18090f 100644 --- a/offlineimap/repository/IMAP.py +++ b/offlineimap/repository/IMAP.py @@ -148,6 +148,13 @@ class IMAPRepository(BaseRepository): def getport(self): + port = None + + if self.config.has_option(self.getsection(), 'remoteporteval'): + port = self.getconf('remoteporteval') + if port != None: + return self.localeval.eval(port) + return self.getconfint('remoteport', None) def getssl(self):