The usual modern solution is to separate SMTP submission from regular SMTP transmission traffic, and require authentication for the former, but not the latter.
The latter should only accept inbound traffic for domains you are MXing for, and run on port 25.
Regular users should be blocked from using port 25 (your ISP or corporate firewall probably already does this) and use port 587 for message submission. (Some legacy systems still use 465, but you should not.)
In actual practice, you would check at MAIL FROM
whether the sender is internal, in which case reject if they are not authenticated; and otherwise, check in RCPT TO
if all recipients are internal, and reject the ones which are not.
See RFC 6409 for the SMTP submission spec, and RFC 8314 for related security recommendations.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…