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:: http://git.exim.org/exim.git/blob/exim-4_84:/doc/doc-txt/ChangeLog? 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 lists 90 <http://git.exim.org/#l90> individually rather than the list as a whole. Bug 1452. 91 <http://git.exim.org/#l91> 92 <http://git.exim.org/#l92> Required for reasonable handling of multiple headers_ options when 93 <http://git.exim.org/#l93> they may be empty; requires that headers_remove items with embedded 94 <http://git.exim.org/#l94> 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: 50 16: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: false 16:25:07 67108 expanding: SpamTagText 16:25:07 67108 result: SpamTagText 16:25:07 67108 skipping: result is not used 16:25:07 67108 expanding: /etc/exim/exim4u_global_spam_virus 16:25:07 67108 result: /etc/exim/exim4u_global_spam_virus 16:25:07 67108 skipping: result is not used 16:25:07 67108 expanding: X-Spam-Flag: YES\nSubject: [${lookup{SpamTagText}lsearch{/etc/exim/exim4u_global_spam_virus}}] $h_Subject:\n 16:25:07 67108 result: X-Spam-Flag: YES 16:25:07 67108 Subject: [] 16:25:07 67108 16:25:07 67108 skipping: result is not used 16:25:07 67108 expanding: X-Spam-Flag: NO\n 16:25:07 67108 result: X-Spam-Flag: NO 16:25:07 67108 16: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: NO 16:25:07 67108 16:25:07 67108 expanding: $acl_m_spamscore 16:25:07 67108 result: 16:25:07 67108 empty string cast to zero for numerical comparison *16:25:07 67108 failed to expand: select users.sa_tag * 10 from users,domains where localpart = '${quote_mysql* *16: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_mysql* *16: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_* *mysql* *16: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(a)Domain.name* 16: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=d omains.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 filtering virtual_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(a)gmail.com> wrote:
On 23 Sep 2014 08:52, "Gordon Dickens" <gecko(a)exim4u.org> wrote:
Hi Shah,
You mentioned Vexim in the attached post and, in a post on the
exim-users(a)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(a)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."