Hello,
postfix communicates with spamassassin via a milter: # milter settings (for DKIM, spam filters,...) smtpd_milters = unix:/opendkim/opendkim.sock,local:spamass/spamass.sock non_smtpd_milters = $smtpd_milters As said, I can see logs in mail.log that show messages being processed and correctly identified as spam/ham. Example from a few minutes ago: Nov 26 12:45:06 bollu spamd[30993]: learn: auto-learn: adding head_only points 0.01 Nov 26 12:45:06 bollu spamd[30993]: learn: auto-learn: message score: 3.264, computed score for autolearn: 3.337 Nov 26 12:45:06 bollu spamd[30993]: learn: auto-learn? ham=0.1, spam=12, body-points=1.911, head-points=1.425, learned-points=0.8 Nov 26 12:45:06 bollu spamd[30993]: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam Nov 26 12:45:06 bollu spamd[30993]: check: is spam? score=3.264 required=5 Nov 26 12:45:06 bollu spamd[30993]: check: tests=BAYES_50,FSL_HELO_NON_FQDN_1,HTML_IMAGE_RATIO_02,HTML_MESSAGE,MIME_HTML_ONLY,MIME_QP_LONG_LINE,MISSING_MID,RDNS_NONE,SPF_PASS,T_REMOTE_IMAGE,UNPARSEABLE_RELAY,URIBL_BLOCKED Nov 26 12:45:06 bollu spamd[30993]: check: subtests=__ANY_TEXT_ATTACH,__ANY_TEXT_ATTACH_DOC,__BODY_TEXT_LINE,__BODY_TEXT_LINE,__BODY_TEXT_LINE,__BUGGED_IMG,__COMMENT_EXISTS,__CT,__CTE,__CTYPE_HTML,__DKIM_DEPENDABLE,__DOS_BODY_FRI,__DOS_DIRECT_TO_MX,__DOS_HAS_ANY_URI,__DOS_RCVD_FRI,__DOS_REF_TODAY,__DOS_SINGLE_EXT_RELAY,__ENV_AND_HDR_FROM_MATCH,__FB_NUM_PERCNT,__FROM_FULL_NAME,__HAS_ANY_URI,__HAS_DATE,__HAS_FROM,__HAS_RCVD,__HAS_SUBJECT,__HAS_TO,__HAS_URI,__HELO_NO_DOMAIN,__HTML_LINK_IMAGE,__LAST_EXTERNAL_RELAY_NO_AUTH,__LAST_UNTRUSTED_RELAY_NO_AUTH,__LCL__ENV_AND_HDR_FROM_MATCH,__LOCAL_PP_NONPPURL,__MAIL_LINK,__MIME_HTML,__MIME_VERSION,__MISSING_REF,__MISSING_REPLY,__NAKED_TO,__NONEMPTY_BODY,__NOT_A_PERSON,__NOT_SPOOFED,__NUMBERS_IN_SUBJ,__RDNS_NONE,__REMOTE_IMAGE,__STY_INVIS,__SUBJ_NOT_SHORT,__TAG_EXISTS_BODY,__TAG_EXISTS_HEAD,__TAG_EXISTS_HTML,__TOCC_EXISTS,__TO_NO_ARROWS_R,__TO_NO_BRKTS_HTML_ONLY,__TO_NO_BRKTS_NORDNS_HTML,__TO_NO_BRKTS_PCNT,__UNPARSEABLE_RELAY_COUNT,__UNSUB_LINK,__URI_12LTRDOM Nov 26 12:45:06 bollu spamd[30993]: spamd: clean message (3.3/5.0) for cyrpub:65534 in 0.3 seconds, 9763 bytes. Nov 26 12:45:06 bollu spamd[30993]: spamd: result: . 3 - BAYES_50,FSL_HELO_NON_FQDN_1,HTML_IMAGE_RATIO_02,HTML_MESSAGE,MIME_HTML_ONLY,MIME_QP_LONG_LINE,MISSING_MID,RDNS_NONE,SPF_PASS,T_REMOTE_IMAGE,UNPARSEABLE_RELAY,URIBL_BLOCKED scantime=0.3,size=9763,user=cyrpub,uid=65534,required_score=5.0,rhost=::1,raddr=::1,rport=35132,mid=(unknown),bayes=0.500416,autolearn=no autolearn_force=no Nov 26 12:45:06 bollu spamd[30993]: check: tagrun - tag DKIMDOMAIN is still blocking action 0 Nov 26 12:45:06 bollu spamd[30993]: config: copying current conf from backup Nov 26 12:45:06 bollu spamd[30993]: netset: cache trusted_networks hits/attempts: 9/10, 90.0 % Nov 26 12:45:06 bollu spamd[30993]: timing: total 349 ms - signal_user_changed: 2.4 (0.7%), parse: 1.17 (0.3%), extract_message_metadata: 27 (7.7%), get_uri_detail_list: 1.92 (0.5%), tests_pri_-1000: 20 (5.7%), tests_pri_-950: 1.83 (0.5%), tests_pri_-900: 1.88 (0.5%), tests_pri_-400: 15 (4.4%), check_bayes: 13 (3.8%), b_tokenize: 6 (1.8%), b_tok_get_all: 2.9 (0.8%), b_comp_prob: 1.11 (0.3%), b_tok_touch_all: 0.08 (0.0%), b_finish: 1.51 (0.4%), tests_pri_0: 113 (32.3%), check_spf: 13 (3.8%), poll_dns_idle: 89 (25.5%), check_dkim_signature: 0.68 (0.2%), check_dkim_adsp: 24 (7.0%), check_pyzor: 0.27 (0.1%), tests_pri_500: 93 (26.5%), copy_config: 48 (13.8%) Nov 26 12:45:06 bollu spamd[30991]: prefork: child 30993: entering state 1 Nov 26 12:45:06 bollu spamd[30991]: prefork: new lowest idle kid: 30993 Nov 26 12:45:06 bollu spamd[30991]: prefork: child reports idle Nov 26 12:45:06 bollu spamd[30991]: prefork: child states: II Nov 26 12:45:06 bollu spamd[30993]: prefork: sysread(8) not ready, wait max 300.0 secs Nov 26 12:45:31 bollu spamd[30994]: prefork: periodic ping from spamd parent Ha!? While pasting I stumble upon the following line: Nov 26 12:45:06 bollu spamd[30993]: check: tagrun - tag DKIMDOMAIN is still blocking action 0 Maybe a trail? Best regards, Cyrille "David Bürgin" dbuer...@gluet.ch – 26 novembre 2021 13:20 >> What should happen technically is that Postfix connects to the milter, >> the milter uses spamc to communicate with SpamAssassin/spamd, and >> finally the milter will add the new headers it receives from >> SpamAssassin. > > To expand a little bit on this, the crucial thing is that all components > can communicate properly via sockets. That is, for every component you > must configure where it can reach the next component. And make sure > user/permissions match, too. > > My setup on Ubuntu 20.04 looks something like this: > > Postfix > > ⇅ > > SpamAssassin Milter (crates.io/crates/spamassassin-milter[1]) > /var/spool/postfix/spamassassin/spamassassin-milter.sock > > ⇅ spamc > > spamd (SpamAssassin) > /run/spamassassin/spamd.sock > > -- Cyrille Bollu Links: ------ [1] https://crates.io/crates/spamassassin-milter