You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by hg user <me...@gmail.com> on 2019/11/19 11:23:50 UTC

a simplified, home-made txRep?

In a 28mb, 610K lines text file, I have a list of all my users and the
email addresses they *sent* a mail at least once.
I'd like to use the info to add a -1 point when a mail is received from one
of these addresses.

Unfortunately, at the moment, outgoing mail is not processed by
spamassassin so txRep is not good...

any idea?

Thank you
Francesco

Re: a simplified, home-made txRep?

Posted by Martin Gregorie <ma...@gregorie.org>.
On Tue, 2019-11-19 at 20:32 +0200, Henrik K wrote:
> If you want to strictly test for both remote_email@remotedomain and
> mail@mydomain, I'm afraid you need a custom plugin for it.
> 
Sounds like a job for a relational database and a custom SAplugin to
interface to it: by using a single table to store the addresses a single
SQL query would give a clear yes/no answer.

I do something similar: my SA plugin runs the SQL query against a view
of my mail archive, which is in a PostgreSQL database.

Martin



Re: a simplified, home-made txRep?

Posted by RW <rw...@googlemail.com>.
On Tue, 19 Nov 2019 20:32:50 +0200
Henrik K wrote:

> On Tue, Nov 19, 2019 at 07:08:29PM +0100, hg user wrote:
> > Thank you to both for your answers.
> > 
> > Yes, I meant TxRep.
> > 
> > My text file is in this format:
> > mail@mydomain,remote_email@remotedomain
> > 
> > My goal is to lower the score of messages coming from
> > remote_email@remotedomain and addressed to mail@mydomain. Of
> > course, each user can have a different list of addresses and as I
> > said, there are about 610.000 lines in the file.
> > 
> > There are 360.000 unique remote_emails in the file...  
> 
> If you want to strictly test for both remote_email@remotedomain and
> mail@mydomain, I'm afraid you need a custom plugin for it.

Not if you put the remote_email@remotedomain entries for each
mail@mydomain in per user config.

Re: a simplified, home-made txRep?

Posted by Henrik K <he...@hege.li>.
On Tue, Nov 19, 2019 at 07:08:29PM +0100, hg user wrote:
> Thank you to both for your answers.
> 
> Yes, I meant TxRep.
> 
> My text file is in this format:
> mail@mydomain,remote_email@remotedomain
> 
> My goal is to lower the score of messages coming from remote_email@remotedomain
> and addressed to mail@mydomain. Of course, each user can have a different list
> of addresses and as I said, there are about 610.000 lines in the file.
> 
> There are 360.000 unique remote_emails in the file...

If you want to strictly test for both remote_email@remotedomain and
mail@mydomain, I'm afraid you need a custom plugin for it.


Re: a simplified, home-made txRep?

Posted by hg user <me...@gmail.com>.
Thank you to both for your answers.

Yes, I meant TxRep.

My text file is in this format:
mail@mydomain,remote_email@remotedomain

My goal is to lower the score of messages coming from
remote_email@remotedomain and addressed to mail@mydomain. Of course, each
user can have a different list of addresses and as I said, there are about
610.000 lines in the file.

There are 360.000 unique remote_emails in the file...

Re: a simplified, home-made txRep?

Posted by RW <rw...@googlemail.com>.
On Tue, 19 Nov 2019 13:56:53 +0200
Henrik K wrote:

> On Tue, Nov 19, 2019 at 12:23:50PM +0100, hg user wrote:
> > In a 28mb, 610K lines text file, I have a list of all my users and
> > the email addresses they sent a mail at least once.
> > I'd like to use the info to add a -1 point when a mail is received
> > from one of these addresses.
> > 
> > Unfortunately, at the moment, outgoing mail is not processed by
> > spamassassin so txRep is not good...

Did you actually mean TxRep? IIRC there's another plugin that learns
addresses from outgoing mail, but TxRep doesn't require it.



> You can dump them in enlist_addrlist format to .cf file
> 
> enlist_addrlist (KNOWN_FROM) foo@bar.net
> enlist_addrlist (KNOWN_FROM) baz@another.com
> ...
> header KNOWN_FROM eval:check_from_in_list('KNOWN_FROM')
> score KNOWN_FROM -1
> 
> If you have thousands of entries, it might slow down things
> marginally (the list is fully iterated for finding matches, but
> shouldn't be a problem unless you have million).
> 
> Of course From header could be forged etc, currently there's no
> function to check only envelope sender which might be safer.


The envelope is not much safer, but you can do this:

meta KNOWN_FROM_AUTH       KNOWN_FROM  && (DKIM_VALID_AU || (SPF_PASS || __RP_MATCHES_RCVD) && !HEADER_FROM_DIFFERENT_DOMAINS)



Re: a simplified, home-made txRep?

Posted by Henrik K <he...@hege.li>.
On Tue, Nov 19, 2019 at 12:23:50PM +0100, hg user wrote:
> In a 28mb, 610K lines text file, I have a list of all my users and the email
> addresses they sent a mail at least once.
> I'd like to use the info to add a -1 point when a mail is received from one of
> these addresses.
> 
> Unfortunately, at the moment, outgoing mail is not processed by spamassassin so
> txRep is not good...
> 
> any idea?
> 
> Thank you
> Francesco

You can dump them in enlist_addrlist format to .cf file

enlist_addrlist (KNOWN_FROM) foo@bar.net
enlist_addrlist (KNOWN_FROM) baz@another.com
...
header KNOWN_FROM eval:check_from_in_list('KNOWN_FROM')
score KNOWN_FROM -1

If you have thousands of entries, it might slow down things marginally (the
list is fully iterated for finding matches, but shouldn't be a problem
unless you have million).

Of course From header could be forged etc, currently there's no function to
check only envelope sender which might be safer.

If you have Postfix, I wrote similar daemon to do this dynamically:
https://mailfud.org/postpals/