Skip to content

Fix Exim version detection for versions >= 4.100 - #718

Merged
msapiro merged 1 commit into
MailScanner:masterfrom
uwallrodt:patch-1
Sep 14, 2026
Merged

Fix Exim version detection for versions >= 4.100#718
msapiro merged 1 commit into
MailScanner:masterfrom
uwallrodt:patch-1

Conversation

@uwallrodt

Copy link
Copy Markdown
Contributor

Perl's >= numeric comparison numifies "4.100" to 4.1, which is less than 4.97, so MailScanner wrongly assumes Exim is old and disables eximlongids. This breaks the split-spool message ID layout on any Exim >= 4.100 (e.g. after a cPanel/EA4 upgrade), leaving messages misfiled and stuck/undeletable in the queue.

This replaces the naive numeric compare with a proper major.minor split comparison.

Fixes #717.

Credit: diagnosis and fix approach originally posted by community member nickgr on cPanel's support forum (https://support.cpanel.net/hc/en-us/community/posts/43412185290519), confirmed independently reproduced and fixed in production.

Perl's `>=` numeric comparison numifies "4.100" to 4.1, which is less than 4.97, so MailScanner wrongly assumes Exim is old and disables eximlongids. This breaks the split-spool message ID layout on any Exim >= 4.100 (e.g. after a cPanel/EA4 upgrade), leaving messages misfiled and stuck/undeletable in the queue.

This replaces the naive numeric compare with a proper major.minor split comparison.

Fixes MailScanner#717.

Credit: diagnosis and fix approach originally posted by community member nickgr on cPanel's support forum (https://support.cpanel.net/hc/en-us/community/posts/43412185290519), confirmed independently reproduced and fixed in production.
@msapiro
msapiro merged commit 85c99da into MailScanner:master Sep 14, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exim 4.100: "$ver >= 4.97" compares as a float, so long message IDs are not detected and every message is stranded ("Spool file -D not found")

2 participants