So Thunderbird in the code that tests an user's account configuration.
It connects and dumps "EHLO we-guess.mozilla.org" and then immediately
sends a QUIT without reading the response, which of course violates the
protocol and annoys exim:
2016-05-04 14:41:19 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "EHLO we-guess.mozilla.org" H=epithumia.math.uh.edu [129.7.128.2] next input="QUIT\r\n"
Since
https://bugzilla.mozilla.org/show_bug.cgi?id=538809 has
been open for six years I don't expect that it will be fixed any time
soon, so I'd like to work around it.
One possibility is to just use:
acl_check_helo:
accept hosts = :
accept control = no_enforce_sync
which appears to work. But can I turn it off just for Thunderbird's
probes? I tried the following, but it doesn't appear to work:
acl_check_helo:
accept hosts = :
accept condition = ${if eq{$sender_helo_name}{we-guess.mozilla.org} {true}}
control = no_enforce_sync
logwrite = Turning off sync enforcement for Thunderbird.
accept
I am pretty sure the syntax is correct and I know it worked exactly
once. Is it possible that there's some race between processing the ACL
and complaining about the protocol violation? Is there any better way
to do this besides just turning on no_enforce_sync globally? I
obviously can't narrow it down to any particular IP.
Note: I'm currently running 4.86.2 as packaged by Fedora:
exim-4.86.2-2.fc23.x86_64
Any hints would be appreciated.
- J<