From c3ef40c3a66feace80a3eff97316415ac2c23945 Mon Sep 17 00:00:00 2001 From: tobybryans Date: Thu, 2 Jul 2026 10:54:05 +0100 Subject: [PATCH] Update integration.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the modern full exim milter header configuration example, two $s in `set acl_m_milter_add` and `set acl_m_milter_del` respectively need to be escaped otherwise you get an error with the config: `Failed: $ not followed by letter, digit, or {`. exim’s string expansion sees $ and tries to interpret it as the start of a variable like $variable or ${...}. When it hits $} it complains because } is not a valid variable-name character. To fix it, escape the regex end-of-line anchor so exim passes a literal $ through to the PCRE engine --- docs/tutorials/integration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/integration.md b/docs/tutorials/integration.md index ac9798e51..a2735daa1 100644 --- a/docs/tutorials/integration.md +++ b/docs/tutorials/integration.md @@ -282,10 +282,10 @@ acl_check_spam: warn set acl_m_report = ${sg{$spam_report}{\\v\\s+}{\\n}} set acl_m_milter_add = ${sg{\ - ${sg{$acl_m_report}{(?m)^(?!X-Milter-Add: ).*(\\n|$)}{}}}\ + ${sg{$acl_m_report}{(?m)^(?!X-Milter-Add: ).*(\\n|\$)}{}}}\ {(?m)^X-Milter-Add: ([^\\[:\\n]+)(?:\\[\\d+\\])?: }{$1: }} set acl_m_milter_del = ${sg{\ - ${sg{$acl_m_report}{(?m)^(?!X-Milter-Del: ).*(\\n|$)}{}}}\ + ${sg{$acl_m_report}{(?m)^(?!X-Milter-Del: ).*(\\n|\$)}{}}}\ {(?m)^X-Milter-Del: ([^\\[\\n]+).*}{$1}} # use greylisting available in rspamd v1.3+