You are blocking legitimate mailings from going out
Your anti-spam that treats $ signs as likely spam is understandable on the incoming side.
Your content based analysis does differentiate between informat I n, content that makes up the body of a message and content that is part of an attachment.
Further, it does not weigh whether the message is being transmitted to a single email or to multiple.
Case in point I had a script that was needed by a colleague, as uou are no doubt aware scripting languages commonly use $ to precede a variable.
When the email was composed in the yahoo email app, in the web browser, upon trying to send the messgae the alert displayed in the browser that the message is spam and provided no option for me to send it.
In the yahoo.app, the send option is rejected and the message gets stuck in the outbox
I tried to expand the content in the body of the message to try to offset the count of $ in the script that was being attached to mo avail.
Seems like your analysis does not distinguish incoming and outgoing...
Case in point

Hi there. In order to protect all users, we temporarily block sending on accounts that are flagged with spam-like or suspicious sending habits. For more info and tips on how to avoid this in the future, please review this article: https://help.yahoo.com/kb/SLN3406.html You'd need to wait for this block to expire, which can take up to 24 hours. If you need additional assistance, please contact us on X at @YahooCare or on Facebook at our Yahoo Customer Care page. If you do not have a social media account, we are available at help.yahoo.com through the ''Contact us'' link.
Thank you,
Yahoo team