Mailing List Archive

vacation filter option once file expected to be a directory?
Dear list,

I am running an exim4-daemon-heavy (4.90.1-1ubuntu1.10) and

in the context of a userforward "~/.forward" filter file using the
vacation command

> if personal alias raphael.haas@windnovation.com
> then
>       vacation from raphael.haas@windnovation.com subject "Out of
> office notification"
> endif

with no other options changed from the default values given in
https://www.exim.org/exim-html-4.90/doc/html/spec_html/filter_ch-exim_filter_files.html#SECTmail

especially the once option is still the original ".vacation" and citing
from the above link "If a once file is specified, it is used to hold a
database..." I understand the ".vacation" is expected to be a file -

while the user filter/vacation triggering message to
raphael.haas@windnovation.com is delivered without problems,

processing the vacation reply message I get this entry in the exim mainlog:

> "...R=userforward T=address_reply defer (0): Failed to open db (v4.1+)
> file .vacation when sending message from address_reply transport: Not
> a directory"

Now that sounds like exim expects the filename ".vacation" to be a
directory?
And after a lot of unfruitful research, I renamed the ".vacation" file
in my home directory and created an empty ".vacation" directory, and voila,
the vacation message gets delivered and a new ".vacation" db file is
created inside the new ".vacation" directory.
(which also rules out any possible problems with setting up the current
or home directories for the transport, obviously the action happens in
the expected place, i.e. the user home dir)

While this is nice in principle,
* I'd like to understand why the vacation filter command expects a
directory when it should (after all I read and understand) be a file.
* and I'd like to avoid having to change the vacation setup in each
home-dir of all the users.

Any hints and explanations would be highly welcome.

Thank you,
Raphael


Some more background:
The setup ran fine for over 10 years before, the last working setup was
with exim 4.86.2-2ubuntu2.
The changes to the /etc/exim4/exim4.conf.template file (left file is the
new/current one) are

> 320d319
> < MAIN_KEEP_ENVIRONMENT =
> 943,944c942,943
> < #  warn  demime = *
> <   warn !malware = *
> ---
> >   warn  demime = *
> >         !malware = *
> 947c946,947
> <   warn  malware = */defer_ok
> ---
> >   warn  demime = *
> >         malware = */defer_ok
> 953c953,954
> <    accept malware = */defer_ok
> ---
> >   accept demime = *
> >         malware = */defer_ok




--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: vacation filter option once file expected to be a directory? [ In reply to ]
On 11/04/2024 18:54, Raphael Haas via Exim-users wrote:
> Any hints and explanations would be highly welcome.

Can you get a run of the delivery of such a vacation-message-triggering
original with debug enabled?

The wrappers for the DB access functions have debug tracing, and the
"open" should show us what filename and directory name it has
at that layer. Then we'll know whether to search forward or back
from there.

Probably "-d+all" would be best so that we also get the filter
processing.
--
Cheers,
Jeremy


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: vacation filter option once file expected to be a directory? [ In reply to ]
This looks like
https://bugs.exim.org/show_bug.cgi?id=2593

On Thu, 11 Apr 2024, Raphael Haas via Exim-users wrote:

> Dear list,
>
> I am running an exim4-daemon-heavy (4.90.1-1ubuntu1.10) and
>
> in the context of a userforward "~/.forward" filter file using the vacation
> command
>
>> if personal alias raphael.haas@windnovation.com
>> then
>>       vacation from raphael.haas@windnovation.com subject "Out of office
>> notification"
>> endif
>
> with no other options changed from the default values given in
> https://www.exim.org/exim-html-4.90/doc/html/spec_html/filter_ch-exim_filter_files.html#SECTmail
>
> especially the once option is still the original ".vacation" and citing from
> the above link "If a once file is specified, it is used to hold a
> database..." I understand the ".vacation" is expected to be a file -
>
> while the user filter/vacation triggering message to
> raphael.haas@windnovation.com is delivered without problems,
>
> processing the vacation reply message I get this entry in the exim mainlog:
>
>> "...R=userforward T=address_reply defer (0): Failed to open db (v4.1+) file
>> .vacation when sending message from address_reply transport: Not a
>> directory"
>
> Now that sounds like exim expects the filename ".vacation" to be a directory?
> And after a lot of unfruitful research, I renamed the ".vacation" file in my
> home directory and created an empty ".vacation" directory, and voila,
> the vacation message gets delivered and a new ".vacation" db file is created
> inside the new ".vacation" directory.
> (which also rules out any possible problems with setting up the current or
> home directories for the transport, obviously the action happens in the
> expected place, i.e. the user home dir)
>
> While this is nice in principle,
> * I'd like to understand why the vacation filter command expects a directory
> when it should (after all I read and understand) be a file.
> * and I'd like to avoid having to change the vacation setup in each home-dir
> of all the users.
>
> Any hints and explanations would be highly welcome.

> Some more background:
> The setup ran fine for over 10 years before, the last working setup was with
> exim 4.86.2-2ubuntu2.

--
Andrew C. Aitchison Kendal, UK
andrew@aitchison.me.uk

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: vacation filter option once file expected to be a directory? [ In reply to ]
That bug must be the cause.
Did a lot of search & reading but obviously I didn't search in all the
relevant places, sorry.

Thanks a lot Andrew,
also for anonymising my e-mail btw

Am 13.04.24 um 22:32 schrieb Andrew C Aitchison via Exim-users:
>
> This looks like
> https://bugs.exim.org/show_bug.cgi?id=2593
>
> On Thu, 11 Apr 2024, Raphael Haas via Exim-users wrote:
>
>> Dear list,
>>
>> I am running an exim4-daemon-heavy (4.90.1-1ubuntu1.10) and
>>
>> in the context of a userforward "~/.forward" filter file using the
>> vacation command
>>
>>> if personal alias raphael.haas@windnovation.com
>>> then
>>>       vacation from raphael.haas@windnovation.com subject "Out of
>>> office notification"
>>> endif
>>
>> with no other options changed from the default values given in
>> https://www.exim.org/exim-html-4.90/doc/html/spec_html/filter_ch-exim_filter_files.html#SECTmail
>>
>>
>> especially the once option is still the original ".vacation" and
>> citing from the above link "If a once file is specified, it is used
>> to hold a database..." I understand the ".vacation" is expected to be
>> a file -
>>
>> while the user filter/vacation triggering message to
>> raphael.haas@windnovation.com is delivered without problems,
>>
>> processing the vacation reply message I get this entry in the exim
>> mainlog:
>>
>>> "...R=userforward T=address_reply defer (0): Failed to open db
>>> (v4.1+) file .vacation when sending message from address_reply
>>> transport: Not a directory"
>>
>> Now that sounds like exim expects the filename ".vacation" to be a
>> directory?
>> And after a lot of unfruitful research, I renamed the ".vacation"
>> file in my home directory and created an empty ".vacation" directory,
>> and voila,
>> the vacation message gets delivered and a new ".vacation" db file is
>> created inside the new ".vacation" directory.
>> (which also rules out any possible problems with setting up the
>> current or home directories for the transport, obviously the action
>> happens in the expected place, i.e. the user home dir)
>>
>> While this is nice in principle,
>> * I'd like to understand why the vacation filter command expects a
>> directory when it should (after all I read and understand) be a file.
>> * and I'd like to avoid having to change the vacation setup in each
>> home-dir of all the users.
>>
>> Any hints and explanations would be highly welcome.
>
>> Some more background:
>> The setup ran fine for over 10 years before, the last working setup
>> was with exim 4.86.2-2ubuntu2.
>

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/