I was not sure if I got it all right. How clear was the Exim update explained? I asked gemini flash 2.5 for a better explanation. I am sharing it here, since this A.I. as well thinks that Direct Admin should not have forced this upon the D.A. user(s) and creates havoc for nothing!
When the update is there (I am running on 'stable' which is still on
1.679) I wil add the extra line
AUTH_BLOCK_SENDER_SPOOFING = no to /etc/exim.variables.conf.custom
-->
I wonder, can I already add this up front? Or will D.A./Exim complain about an unknown setting?
I really don't want all of the shops I am hosting to have problems with sending email! I am forced to UNDO the 'fix', and don't understand why D.A. works this way. They should let this choice to us, the 'D.A.' user. I REALLY hope D.A. listens and undo this FIX and use
AUTH_BLOCK_SENDER_SPOOFING = no
by default! Why harass the end users in D.A. hosting?
This makes no sense. I am sure if I had not seen the 'fix', a lot of customers would have their shop interrupted, and the real problem lies in the fact that it takes several days to learn of this problem. A lot of end users immediately draw a conclusion, and think they need hosting somewhere else, as they loose trust. Why does D.A. want us to loose customers (or trust from customers), who benefits from that?
Here is the explanation by GEMINI FLASH 2.5:
This is the scenario we are now working with:
- SMTP Authentication: The script logs in using the credentials for the mailbox [email protected].
- SMTP MAIL FROM (Envelope Sender): The script then tells the server it is sending the email as [email protected].
- Email Reply-To Header: Inside the email's content, the script sets the Reply-To: header to [email protected].
You are correct to ask for verification on the Reply-To header. Let's address that first.
The Reply-To Header is Irrelevant Here
The new DirectAdmin check happens at the
SMTP protocol level, before the email's content (including headers like From: and Reply-To: ) is even transmitted. The check only looks at two things:
- The username used for SMTP authentication ([email protected]).
- The address used in the MAIL FROM command ([email protected]).
The Reply-To header is completely invisible to this process and does not affect whether the server accepts or rejects the email. It only affects what happens when the final recipient clicks the "Reply" button in their email client.
So, Does This Corrected Scenario Still Break?
Yes, absolutely. This configuration will also fail and break after the update.
Here is the new logical flow of the check:
- A user authenticates with the username [email protected].
- The user tries to send an email with the envelope sender MAIL FROM:<[email protected]>.
- The Exim ACL kicks in and asks the crucial question:
"Is the user
[email protected] allowed to send as
[email protected]?"
- To answer this, it performs the check described in the changelog:
"If I receive an email addressed to
[email protected], would it be delivered to the
[email protected] mailbox?"
In a normal setup, the answer to that question is
NO. An email sent to
[email protected] is delivered to the
[email protected] mailbox, not the
[email protected] mailbox.
Result: The SMTP server will reject the email with a 550 error. The website's functionality is broken.
Your analysis is correct. The update will break this functionality.
Solutions for This Specific Scenario
The solutions are similar, but tailored to fix this specific (and frankly, illogical) mail flow.
Solution 1: Fix the Sending Logic (Highly Recommended)
This is the most logical and secure approach. The website's sending logic should be corrected. There are two "correct" ways to do this:
- Option A (Best Practice):Authenticate as the address you want to send from.
- Change the script to authenticate with the [email protected] credentials.
- Set the MAIL FROM to [email protected].
- This is the simplest setup. The authenticated user and the sender are the same, so the check always passes.
- Option B (If you must use noreply@):Authenticate as noreply@ and send as noreply@.
Solution 2: The "Make it Work" Forwarder (Technically Works, But Illogical)
To make the current broken logic pass the new check, you would need to create a forwarder that makes the check true.
Action: In DirectAdmin, create an email forwarder from
[email protected] to
[email protected].
Why it's a bad idea: This means any real email a customer sends to
[email protected] will be forwarded to the noreply@ box, which is likely not monitored.
This will cause your customers to lose incoming mail. While it would fix the outgoing mail problem, it creates a much bigger incoming mail problem.
Do not recommend this unless you fully explain the severe side effects.
Solution 3: The "Last Resort" - Disable the Protection
As before, this remains the fallback option to prevent immediate service disruption while you coordinate with customers to fix their sending logic (per Solution 1).
Action: As root, run the commands to disable the feature server-wide.
Generated bash:
sed -i '/^AUTH_BLOCK_SENDER_SPOOFING /d' /etc/exim.variables.conf.custom
echo AUTH_BLOCK_SENDER_SPOOFING = no >> /etc/exim.variables.conf.custom
da build exim_conf
Conclusion
Thank you again for the correction. Your assessment remains 100% correct. This DirectAdmin update introduces a stricter security model that will break the sending logic you've described.
Your best course of action is to advise your customers to implement
Solution 1 option B, as their current method of authenticating as one user to send as another is precisely what this new feature is designed to prevent.