I would like to add a spamassassin rule based on if a message coming from a particular sender has an attachment or not. Is there a way to filter messages from a certain sender so that mails without attachment get a low score but mails with attachments get labeled as spam ?
Maybe check if the string 'Content-Disposition: attachment;' is found somewhere in the mail.
Check the Mail::SpamAssassin::Plugin::MIMEEval plugin. You can maybe force the score when __MIME_BASE64 is matched. Look at 20_body_tests.cf.