As I mentioned yesterday this gets called from a router based on certain
conditions in the mail. No prob there.
The problem is the pipe needs to be run as the user who submitted the
message, which my understanding is the pipe_as_creator option provides.
However even though the logs appear to say the pipe is being called by the
user "tmj" (that's good) the uid/gid corresponds to the user "nobody"
(that's bad), which of course causes it to fail. Here's a snippet from a
d9 delivery output:
delivering tmj@??? as tmj using tmda:
uid=32767 gid=32767 home=NULL current=/
auxiliary group list: <none>
set_process_info: 15235 delivering 16gJlE-0001RG-00 to tmj using tmda
tmda transport entered
direct command:
argv[0] = /usr/local/bin/python
argv[1] = /usr/local/tmda/bin/tmda-sendmail
direct command after expansion:
argv[0] = /usr/local/bin/python
argv[1] = /usr/local/tmda/bin/tmda-sendmail
Writing message to pipe
set_process_info: 31806 reading output from |/usr/local/bin/python
/usr/local/tmda/bin/tmda-sendmail
writing data block fd=9 size=55 timeout=3600
writing data block fd=9 size=596 timeout=3600
writing data block fd=9 size=1 timeout=3600
tmda transport yielded 7
search_tidyup called
tmda transport returned FAIL for tmj@???
post-process tmj@??? (7)
LOG: 0 MAIN
** tmj@??? R=tmda_outgoing T=tmda: Child process of tmda transport
returned 127 from command: /usr/local/bin/python
Did I not write the transport correctly or does anyone have any idea why
this would be behaving like this? Exim runs as its own user "exim". (This
is OpenBSD 3.0 if that matters.)