On Thu, Jan 16, 2003 at 07:01:28PM -0500, Robert L. Harris wrote: > Users don't need to exist.
In case exim understands the command line to pipe the mail to as usernames, the mail cannot be delivered to those users if they do not exist. > There's a setting in /etc/exim/exim.conf that tells it what user to > execute the process as. If I put a long sleep in the script I can > see user "mail" or even "robert" executing the script. I've put > some touch commands and debug commands as well in the script and > they get created and with the right ownership. Hm, does that work even in case you get the error message? The message was: > Neither the system_aliases director nor the address_pipe transport > set a uid for local delivery of | /usr/local/bin/Pager.pl 6787586413 Searching for 'address_pipe' in the exim documentation, I've found the following statements (Node: The pipe transport): > The "pipe" transport is used to deliver messages via a pipe to a > command running in another process. This can happen when when a > director explicitly directs a message to a "pipe" transport, and > also when an address is expanded via an alias, > [...] > As "pipe" is a local transport, it is always run in a separate > process, normally under a non-privileged uid and gid. In the common > case, these are the uid and gid belonging to the user whose > `.forward' file directed the message at the pipe. In other cases the > uid and gid have to be specified explicitly, either on the transport > or on the director or router that handled the address. Current and > `home' directories are also controllable. See chapter "Environment > for running local transports" for details of the local delivery > environment. Considering that, my guess is that you either didn't specify the user to run the script as correctly (though you seem to see it running) in the director in the exim configuration, or that the specification is correct, but doesn't work for some reason. Afaics, the user to run the script as *must* exist. If that user does not exist, exim won't be able to find out his UID, what would correspond to the error message you get. Also, it is a possible reason why the specification of the user to execute the script as doesn't work. The first thing I'd try is quoting the command in /etc/aliases as described in my previous mail. The second thing would be to create a ~/.forward file for an existing user as '# Exim filter' and have it pipe all mails sent to that user to your script. You could output some variables from that ~/.forward file to check what becomes of the command, so to get a clue of what happens. What setting did you use to specify the user to run your script as in the exim configuration? In my case, it looks like that: system_aliases: driver = aliasfile file_transport = address_file pipe_transport = address_pipe file = /etc/aliases search_type = lsearch user = listar There's only a user specified in that director, but no group (user 'listar' is in group 'listar'). Nevertheless it works fine. > If I execute the command from CLI by hand everything works the same > except I don't get the failures such as the undefined scheme in > Protocols.pm. I tried setting the scheme, I can even read it and > it's set. Hm? GH -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]