1 (* HCoop
Domtool (http
://hcoop
.sourceforge
.net
/)
2 * Copyright (c
) 2006, Adam Chlipala
3 * Copyright (c
) 2014 Clinton Ebadi
<clinton@unknownlamer
.org
>
5 * This program is free software
; you can redistribute it
and/or
6 * modify it under the terms
of the GNU General Public License
7 * as published by the Free Software Foundation
; either version
2
8 * of the License
, or (at your option
) any later version
.
10 * This program is distributed
in the hope that it will be useful
,
11 * but WITHOUT ANY WARRANTY
; without even the implied warranty
of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
. See the
13 * GNU General Public License for more details
.
15 * You should have received a copy
of the GNU General Public License
16 * along
with this program
; if not
, write to the Free Software
17 * Foundation
, Inc
., 51 Franklin Street
, Fifth Floor
, Boston
, MA
02110-1301, USA
.
20 (* Setting SpamAssassin filtering preferences
*)
22 structure SetSA
:> SET_SA
= struct
30 fun address (User s
) = s ^
"@localhost"
31 |
address (Email s
) = s
33 fun file addr
= OS
.Path
.joinDirFile
{dir
= Config
.SpamAssassin
.addrsDb
,
36 fun query addr
= Posix
.FileSys
.access (file addr
, [])
38 fun set (addr
, setting
) =
40 TextIO.closeOut (TextIO.openAppend (file addr
))
42 OS
.FileSys
.remove (file addr
)
46 fun doNode (site
, ok
) =
47 (print ("New spamassassin data for node " ^ site ^
"\n");
48 Connect
.commandWorker (Domain
.get_context (), site
, MsgSaChanged
))
50 foldl doNode
true Config
.mailNodes_all