On Wed, 2010-01-20 at 12:14 +1300, David Woodhouse wrote:
> So what's different in Raymond's setup such that $h_message-id is
> actually set when we evaluate it? What version of Exim is this?
Please can you try this (entirely untested) patch...
diff --git a/include/acl-greylist-sqlite b/include/acl-greylist-sqlite
index bb22907..2d2ffad 100644
--- a/include/acl-greylist-sqlite
+++ b/include/acl-greylist-sqlite
@@ -56,8 +56,13 @@ greylist_mail:
WHERE helo='${quote_sqlite:$sender_helo_name}' \
AND host='$sender_host_address';} {1}}
+ # Don't just use raw $h_message-id: because it might be assigned locally
+ # and in that case it's never going to be repeated.
+ warn set acl_m_greymsgid = ${if eq{$h_message-id:}{<E$message_id@$primary_hostname>} \
+ {<>} {$h_message-id:}}
+
# Generate a hashed 'identity' for the mail, as described above.
- warn set acl_m_greyident = ${hash{20}{62}{$sender_address$recipients$h_message-id:}}
+ warn set acl_m_greyident = ${hash{20}{62}{$sender_address$recipients$acl_m_greymsgid}}
# Attempt to look up this mail in the greylist database. If it's there,
# remember the expiry time for it; we need to make sure they've waited
@@ -87,7 +92,7 @@ greylist_mail:
its queue and retry. When that happens, your system will be added to the list \
genuine mail systems, and mail from it should not be greylisted any more. \
In the event of problems, please contact postmaster@$qualify_domain
- log_message = Greylisted <$h_message-id:> from <$sender_address> for offences: ${sg {$acl_m_greylistreasons}{\n}{,}}
+ log_message = Greylisted <$acl_m_greymsgid> from <$sender_address> for offences: ${sg {$acl_m_greylistreasons}{\n}{,}}
# Handle the error case (which should never happen, but would be bad if it did).
# First by whining about it in the logs, so the admin can deal with it...
--
dwmw2