Hi folks,

> tmda_virtual_pipe:
    driver = pipe
    command = /usr/bin/python2 /usr/local/tmda/bin/tmda-filter
    return_path_add
    delivery_date_add
    envelope_to_add
    user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
    group = mail
    environment = EXTENSION=${substr_1:$local_part_suffix}:\
                  [EMAIL PROTECTED]

First thing I see is that the -S switch will only call the script if an environment variable named EXT (not EXTENSION) exists. This is qmail-specific. That doesn't appear to be the cause of your problem, though. You could add an EXT (same contents as EXTENSION) but... there may be an easier way.

I'm not sure what you mean, but that environment line was taken from exim-specific configuration instructions. Also, I believe it does set environment variables, not check for them, because this is a transport, not a router. But, that's just my understanding of it, I could be way off base.


You mention in a later message that you could set $HOME in the
environment before tmda-filter is called.  Actually, you said $home
but I'm hoping that equates to $HOME.

I said:


Is there a way for me to set $home and override DELIVERY in the exim transport itself?

Yes, I meant $HOME. Sorry, didn't know there was a difference :-) In any case, I don't know if I can or not! It certainly would be easier if I could, like tmda-filter -h /path/to/home.

I'm finding that using a vuserinfo-style script is a little more complicated than I thought. TMDA wants to pass it the user and domain according to the docs. Well in the case of mydomain.com with unix account me, and virtual email [EMAIL PROTECTED], exim will set the user to "me", which is good because the mail files are owned by me:mail, and the local_part to "test". So now what does TMDA pass to the -S script? "me" or "test"? I'm guessing the former, which won't work for me.

Perhaps I can set $HOME in /home/me/mail/mydomain.com/test/.tmda/config, and then use -c with tmda-filter?


Anyway, these days my exim_mainlog is showing:


Child process of tmda_virtual_pipe transport returned 1 from command: /usr/bin/python2

I wish someone could tell me what these return codes (75 and 1 so far) might indicate.

Here is output from exim -d -bs:

set_process_info: 11183 reading output from |/usr/bin/python2 /usr/local/tmda/bin/tmda-filter -c "/home/${lookup{$domain}lsearch* {/etc/userdomains}{$value}}/mail/$domain/$local_part/.tmda/config"
writing data block fd=11 size=44 timeout=3600
writing data block fd=11 size=433 timeout=3600
writing data block fd=11 size=1 timeout=3600
tmda_virtual_pipe transport yielded 2
search_tidyup called
tmda_virtual_pipe transport returned FAIL for [EMAIL PROTECTED]
post-process [EMAIL PROTECTED] (2)
LOG: MAIN
** [EMAIL PROTECTED] R=tmda_virtual T=tmda_virtual_pipe: Child process of tmda_virtual_pipe transport returned 1 from command: /usr/bin/python2


What it means for the command to "yield 2" and "return 1" is beyond me. I have no idea what either of those mean. Anybody else?

-Josh


_____________________________________________ tmda-users mailing list ([EMAIL PROTECTED]) http://tmda.net/lists/listinfo/tmda-users

Reply via email to