Hi Guys,
It would appear that I haven't hit this problem because I have "SpamRejectScore: 100" on several servers that I run Exim4u+Exim-4.82.
The moment I enabled that, I started seeing the errors mentioned here.
So, my question would be: Why would headers_remove directive cause these internal errors? Something must have changed significantly between 4.82 and 4.83 ( I am not talking about 4.84 because it was a minor fix for 4.83). I upgraded from 4.82 to 4.84 in the machines I manage. Unfortunately, I have had SpamRejectScore at 100 on all of them for quite some time because I use other spam filtering options.
I suppose and maybe someone has time to take a keen look at::
I have looked briefly at it and I *suspect* the following changes might give a clue:
--------------------------JH/12� Expand�items�in�router/transport�headers_add�or�headers_remove�lists90 ������individually�rather�than�the�list�as�a�whole.��Bug�1452.92 ������Required�for�reasonable�handling�of�multiple�headers_�options�when93 ������they�may�be�empty;�requires�that�headers_remove�items�with�embedded94 ������colons�must�have�them�doubled�(or�the�list-separator�changed).-----------------
I decided to run Exim in debug mode briefly on my very busy server and here is where the errors surface on the virtual_domains router:
16:25:07 67108 expanding: ${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.on_spamassassin = '1' and users.domain_id=domains.domain_id }{$value}fail}16:25:07 67108 � �result: 5016:25:07 67108 condition: >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.on_spamassassin = '1' and sers.domain_id=domains.domain_id }{$value}fail}}16:25:07 67108 � �result: false16:25:07 67108 expanding: SpamTagText16:25:07 67108 � �result: SpamTagText16:25:07 67108 skipping: result is not used16:25:07 67108 expanding: /etc/exim/exim4u_global_spam_virus16:25:07 67108 � �result: /etc/exim/exim4u_global_spam_virus16:25:07 67108 skipping: result is not used16:25:07 67108 expanding: X-Spam-Flag: YES\nSubject: [${lookup{SpamTagText}lsearch{/etc/exim/exim4u_global_spam_virus}}] $h_Subject:\n16:25:07 67108 � �result: X-Spam-Flag: YES16:25:07 67108 Subject: []16:25:07 6710816:25:07 67108 skipping: result is not used16:25:07 67108 expanding: X-Spam-Flag: NO\n16:25:07 67108 � �result: X-Spam-Flag: NO16:25:07 6710816:25:07 67108 expanding: ${if >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.on_spamassassin = '1' and users.domain_id=domains.domain_id }{$value}fail}} {X-Spam-Flag: YES\nSubject: [${lookup{SpamTagText}lsearch{/etc/exim/exim4u_global_spam_virus}}] $h_Subject:\n}{X-Spam-Flag: NO\n}}16:25:07 67108 � �result: X-Spam-Flag: NO16:25:07 6710816:25:07 67108 expanding: $acl_m_spamscore16:25:07 67108 � �result:16:25:07 67108 empty string cast to zero for numerical comparison16:25:07 67108 failed to expand: select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql16:25:07 67108 � �error message: "${quote_mysql" is not a known operator (or a } is missing in a variable reference)16:25:07 67108 failed to expand: ${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql16:25:07 67108 � �error message: "${quote_mysql" is not a known operator (or a } is missing in a variable reference)16:25:07 67108 failed to expand: ${if >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql16:25:07 67108 � �error message: "${quote_mysql" is not a known operator (or a } is missing in a variable reference)16:25:07 67108 virtual_domains router: defer for XXXX@Domain.name16:25:07 67108 � message: virtual_domains router failed to expand "${if >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql:$local_part}' and domain = '${quote_mysql:$domain}' and users.on_spamassassin = '1' and users.domain_id=domains.domain_id }{$value}fail}} {Subject}{${if eq{SPAMHEADERTYPE}{0}{X-Spam-Report}}} �}": "${quote_mysql" is not a known operator (or a } is missing in a variable reference)
This is an issue directly from virtual_domains router and exactly from the headers_remove part:
# exim4u: This router routes to virtual domains with spamassassin filteringvirtual_domains:� condition = �${if < {SPAMREJECT}{1000}}� driver = redirect� allow_fail� data = ${lookup mysql{select smtp from users,domains \� � � � � � � � where localpart = '${quote_mysql:$local_part}' \� � � � � � � � and domain = '${quote_mysql:$domain}' \� � � � � � � � and domains.enabled = '1' \� � � � � � � � and users.enabled = '1' \� � � � � � � � and users.domain_id = domains.domain_id}}
# exim4u header_remove to remove subject if spam or X-Spam-Report if not spam and SPAMHEADERTYPE=0.� headers_remove = ${if >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains \� � � � � � � � where localpart = '${quote_mysql:$local_part}' \� � � � � � � � and domain = '${quote_mysql:$domain}' \� � � � � � � � and users.on_spamassassin = '1' \� � � � � � � � and users.domain_id=domains.domain_id }{$value}fail}} \� � � � � � � � {Subject}{${if eq{SPAMHEADERTYPE}{0}{X-Spam-Report}}} �\� � � � � � � � }
# exim4u header_add to add X-Spam-Flag for all mail and rewrite Subject if spam.� headers_add = ${if >={$acl_m_spamscore}{${lookup mysql{select users.sa_tag * 10 from users,domains \� � � � � � � � where localpart = '${quote_mysql:$local_part}' \� � � � � � � � and domain = '${quote_mysql:$domain}' \� � � � � � � � and users.on_spamassassin = '1' \� � � � � � � � and users.domain_id=domains.domain_id }{$value}fail}} \� � � � � � � � {X-Spam-Flag: YES\nSubject: [SPAMTAGTEXT] $h_Subject:\n}{X-Spam-Flag: NO\n}\� � � � � � � � }# local_part_suffix = -*# local_part_suffix_optional� retry_use_local_part# file_transport = virtual_delivery� file_transport = dovecot_virtual_delivery� reply_transport = address_reply� pipe_transport = address_pipe
So, Gordon, can you possibly take a look at the query again to see where you can introduce improvements.
Given that Jeremy Harris did some work around this portion, I have taken the liberty to request for his input on the same. He is not subscribed to this list and might get really pissed off, or this mail might end up as spam, but let me try:)
PS: Jeremy, I hope I don't piss you off with this. Please advise us on what's wrong with our headers_remove query since Exim-4.8{3|4} and thank you in advance.
On 23 September 2014 15:46, Shamim Shahriar <shamim.shahriar@gmail.com> wrote:
On 23 Sep 2014 08:52, "Gordon Dickens" <gecko@exim4u.org> wrote:
>
> Hi Shah,
>
> You mentioned Vexim in the attached post and, in a post on the� exim-users@exim.org mailing list, you said that you were using Vexim.� So, please clarify; Are you using Exim4U or Vexim?
>
> Also, others have mentioned Vexim too.� So, I ask the same question of Rimas Kudelis, Harald Valkanover and anyone else having this problem;� Are you using Exim4U or Vexim?
>
> Thanks,
>
>
> Gordon
>
>Hi Gordon
I am using vexim, on FreeBSD 9 release, currently with exim 4.82. We made some customisation for the configure in Exim, and plenty of "improvements" for the gui in vexim. Once i noticed the problems after updating Exim in one of the test servers, Google brought me to Exim4u list as the problems were similar. And as it seems, solution to one will eventually bring solution to all. Hence i put the discussion both to exim4u and Exim-user list.
Hope this clears up any confusion.
Thanks
Shah
_______________________________________________
users mailing list
users@exim4u.org
https://exim4u.org/mailman/listinfo/users
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254733744121/+254722743223
"I can't hear you -- I'm using the scrambler."
_______________________________________________ users mailing list users@exim4u.org https://exim4u.org/mailman/listinfo/users