Import Blocklist Regex Rules

Summary: Creates blocklist rules from a file containing regular expressions.
Requires: SpamSieve
Last Modified: 2019-10-02


Given a file containing one regular expression per line (e.g. exported from another spam filter), this script creates blocklist rules for SpamSieve that match those regexes against the message body and subject. SpamSieve uses PCRE regular expressions.

Installation Instructions · Download in Compiled Format · Download in Text Format


set _file to my promptForFile()
set _regexes to my linesFromFile(_file)
repeat with _regex in _regexes
my makeBlocklistRulesForRegex(_regex)
end repeat

on promptForFile()
set _types to {"public.plain-text"}
set _prompt to "Choose a text file with one blocklist regex per line."
return choose file of type _types with prompt _prompt
end promptForFile

on linesFromFile(_file)
set _fd to open for access _file
set _result to read _fd using delimiter {return, ASCII character 13}
close access _fd
return _result
end linesFromFile

on makeBlocklistRulesForRegex(_regex)
tell application "SpamSieve"
set _regex to "(?-i)" & _regex -- Make case-sensitive
tell blocklist
repeat with _field in {body, subject}
set _properties to {match field:_field, match style:regex style, text to match:_regex}
make new rule with properties _properties
end repeat
end tell
end tell
end makeBlocklistRulesForRegex