I'm stumped, mostly because I've never run across this.

I am running Exim 4.82. It works, except that my .forward file is being ignored. It tests fine, and when I feed it manually it works.

yan@selene:~$ /usr/lib/sendmail -bf ~/.forward <mail/Spam.test
Sender taken from "From " line
Return-path copied from sender
Sender      = m...@seiner.com
Recipient   = y...@seiner.com
Testing Exim filter file "/home/yan/.forward"

Save message to: /home/yan/mail/Junk
Filtering set up at least one significant delivery or other action.
No other deliveries will occur.
You have new mail in /var/mail/yan

And when I intentionally break it it barfs:

yan@selene:~$ /usr/lib/sendmail -bf ~/.forward <mail/Spam.test
Sender taken from "From " line
Return-path copied from sender
Sender      = m...@seiner.com
Recipient   = y...@seiner.com
Testing Exim filter file "/home/yan/.forward"

Filter error: unknown filtering command "ifxxx" near line 2 of filter file
You have new mail in /var/mail/yan
yan@selene:~$

But exim ignores it.  Any ideas why?

yan@selene:~$ cat .forward
# Exim filter
if $header_X-Spam-Flag: contains "YES"
then
   save $home/mail/Junk
endif
if $header_X-DSPAM-Result: contains "Spam"
then
   save $home/mail/Junk
endif
if $header_Precedence: contains "list"
then
   save $home/mail/Lists
endif
if $header_Precedence: contains "bulk"
then
   save $home/mail/Lists
endif

Here's the pertinent part of the config:

# This router handles forwarding using traditional .forward files in users'
# home directories. It also allows mail filtering with a forward file
# starting with the string "# Exim filter" or "# Sieve filter".
#
# The no_verify setting means that this router is skipped when Exim is
# verifying addresses. Similarly, no_expn means that this router is skipped if
# Exim is processing an EXPN command.
#
# The check_ancestor option means that if the forward file generates an
# address that is an ancestor of the current one, the current one gets
# passed on instead. This covers the case where A is aliased to B and B
# has a .forward file pointing to A.
#
# The four transports specified at the end are those that are used when
# forwarding generates a direct delivery to a directory, or a file, or to a
# pipe, or sets up an auto-reply, respectively.
#
userforward:
  debug_print = "R: userforward for $local_part@$domain"
  driver = redirect
  domains = +local_domains
  check_local_user
  file = $home/.forward
  require_files = $local_part:$home/.forward
  no_verify
  no_expn
  check_ancestor
  allow_filter
  forbid_smtp_code = true
  directory_transport = address_directory
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  skip_syntax_errors
  syntax_errors_to = real-$local_part@$domain
  syntax_errors_text = \
    This is an automatically generated message. An error has\n\
    been found in your .forward file. Details of the error are\n\
    reported below. While this error persists, you will receive\n\
    a copy of this message for every message that is addressed\n\
    to you. If your .forward file is a filter file, or if it is\n\
    a non-filter file containing no valid forwarding addresses,\n\
    a copy of each incoming message will be put in your normal\n\
    mailbox. If a non-filter file contains at least one valid\n\
    forwarding address, forwarding to the valid addresses will\n\
    happen, and those will be the only deliveries that occur.



--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to