Justin McAleer wrote:
I have apparently done something to mess up my test installation, as deliver's attempts to send messages now fail with the following error:
deliver(user@example.com): execv() failed: No such file or directory
In these cases, I have sieve rules trying to send messages. It had been working though, and I've tried going through all the changes I made yesterday (related to dictionary quota debugging) to find what could be wrong, but no luck so far. So, I was hoping for suggestions.
Basically, deliver seems to not know where sendmail is. I have sendmail_path set in dovecot.conf (never changed that), yet when deliver tries to pull the location via deliver_set->sendmail_path, it's just returning an empty string. If I hard-code the location in smtp-client.c, it works again.
Any ideas?
Sigh, well I finally found the problem. Ironically, this was caused by mail_debug being enabled. In smtp-client.c, with mail_debug enabled, smtp_env_clean() is called to prevent conflicts with postfix's debug setting. That results in the deliver_set structure getting wiped out, so deliver forgets where sendmail is (deliver_set->sendmail_path), effectively. Sorry for not supplying a fix, but I've already spent the better part of my day tracking this down... It does seem to be trying to preserve all the proper env variables, just not putting them back into the env.