Den 12. feb. 2017 23:56, skrev Marcus Rueckert: > On 2017-02-12 23:00:49 +0100, Håkon Alstadheim wrote: >> Just follow the wiki and replace sa-learn scripts with calling dspam. >> Dspam direct pipe needs mail-line-endings (\r\n) translated into unix >> line-endings (\r). I had a typo here, (\r\n) gets replaced by just (\n).
> > tbh ... what do you do about mails which just use \r as separator? > You are mistaken. Firstly: s/\r$// will remove \r from the end of any line, do nothing if there is no \r. Secondly: All line-endings as seen by transfer-agents is transferred with the same line endings (MTA-MTA: \r\n; locally: usually the same but may be different). "Line ending" here pertains to after each header, and between message-parts. If there are naked (\n) characters in the message body, that is of no concern. Point of filter is to make Dspam-signature parseable for dspam. If there is an (\r) at the end of the header, Dspam will not find a match, and be unable to reclassify the mail. > s|\r\n|\n| is safer. > > darix > >> like so: >> >> ----- learn-spam.sh --------- >> #!/bin/sh >> sed -e 's/\r$//' | /usr/bin/dspam --source=error --class=spam >> >> ----- learn-ham.sh ---------- >> #!/bin/sh >> sed -e 's/\r$//' | /usr/bin/dspam --source=error --class=innocent >> >> ------ >> >> Theese will be invoked with the owner of the mailbox as current uid, so >> that is all. >