diff --git a/getmailcore/baseclasses.py b/getmailcore/baseclasses.py index 7143886..e94ba0d 100755 --- a/getmailcore/baseclasses.py +++ b/getmailcore/baseclasses.py @@ -261,7 +261,7 @@ class ConfFile(ConfString): if val is None: return None val = expand_user_vars(val) - if not os.path.isfile(val): + if not os.path.isfile(val) and not self.name == 'path' and not self.name == 'password_command': raise getmailConfigurationError( '%s: specified file "%s" does not exist' % (self.name, val) ) @@ -473,7 +473,7 @@ class ForkingBase(object): stdout, stderr, args, nolog=False): self._pipemail(msg, delivered_to, received, unixfrom, stdout, stderr) nolog or self.log.debug('about to execl() with args %s\n' % str(args)) - os.execl(*args) + os.execlp(*args) def forkchild(self, childfun, with_out=True): self.child = child = Namespace() diff --git a/getmailcore/destinations.py b/getmailcore/destinations.py index 2d25558..d7adeba 100755 --- a/getmailcore/destinations.py +++ b/getmailcore/destinations.py @@ -607,9 +607,9 @@ class MDA_external(DeliverySkeleton, ForkingBase): def initialize(self): self.log.trace() self.conf['command'] = os.path.basename(self.conf['path']) - if not os.access(self.conf['path'], os.X_OK): - raise getmailConfigurationError('%s not executable' - % self.conf['path']) + # if not os.access(self.conf['path'], os.X_OK): + # raise getmailConfigurationError('%s not executable' + # % self.conf['path']) if type(self.conf['arguments']) != tuple: raise getmailConfigurationError( 'incorrect arguments format; see documentation (%s)' diff --git a/getmailcore/filters.py b/getmailcore/filters.py index e118e8e..014970a 100755 --- a/getmailcore/filters.py +++ b/getmailcore/filters.py @@ -193,10 +193,10 @@ class Filter_external(FilterSkeleton, ForkingBase): def initialize(self): self.log.trace() self.conf['command'] = os.path.basename(self.conf['path']) - if not os.access(self.conf['path'], os.X_OK): - raise getmailConfigurationError( - '%s not executable' % self.conf['path'] - ) + # if not os.access(self.conf['path'], os.X_OK): + # raise getmailConfigurationError( + # '%s not executable' % self.conf['path'] + # ) if type(self.conf['arguments']) != tuple: raise getmailConfigurationError( 'incorrect arguments format; see documentation (%s)' @@ -332,10 +332,10 @@ class Filter_TMDA(FilterSkeleton, ForkingBase): def initialize(self): self.log.trace() self.conf['command'] = os.path.basename(self.conf['path']) - if not os.access(self.conf['path'], os.X_OK): - raise getmailConfigurationError( - '%s not executable' % self.conf['path'] - ) + # if not os.access(self.conf['path'], os.X_OK): + # raise getmailConfigurationError( + # '%s not executable' % self.conf['path'] + # ) self.exitcodes_keep = (0, ) self.exitcodes_drop = (99, )