# This is an example /etc/pymodmilter.conf file. # Copy it into place before use. # # The file is in JSON format. # # The global option 'log' can be overriden per rule or per modification. # { # Section: global # Notes: Global options. # "global": { # Option: socket # Type: String # Notes: The socket used to communicate with the MTA. # # Examples: # unix:/path/to/socket a named pipe # inet:8899 listen on ANY interface # inet:8899@localhost listen on a specific interface # inet6:8899 listen on ANY interface # inet6:8899@[2001:db8:1234::1] listen on a specific interface # Value: [ SOCKET ] "socket": "inet:8898@127.0.0.1", # Option: local_addrs # Type: List # Notes: A list of local hosts and networks. # Value: [ LIST ] # "local_addrs": ["::1/128", "127.0.0.0/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"], # Option: loglevel # Type: String # Notes: Set loglevel for rules and actions. # Value: [ error | warning | info | debug ] # "loglevel": "info", # Option: pretend # Type: Bool # Notes: Just pretend to do the actions, for test purposes. # Value: [ true | false ] # "pretend": true }, # Section: rules # Notes: Rules and related actions. # "rules": [ { # Option: name # Type: String # Notes: Name of the rule. # Value: [ NAME ] # "name": "myrule", # Section: conditions # Notes: Optional conditions to process the rule. # If multiple conditions are set, they all # have to be true to process the rule. # "conditions": { # Option: local # Type: Bool # Notes: Condition wheter the senders host address is listed in local_addrs. # Value: [ true | false ] # "local": false, # Option: hosts # Type: String # Notes: Condition wheter the senders host address is listed in this list. # Value: [ LIST ] # "hosts": [ "127.0.0.1" ], # Option: envfrom # Type: String # Notes: Condition wheter the envelop-from address matches this regular expression. # Value: [ REGEX ] # "envfrom": "^.+@mypartner\\.com$", # Option: envto # Type: String # Notes: Condition wheter the envelop-to address matches this regular expression. # Value: [ REGEX ] # "envto": "^postmaster@.+$" }, # Section: actions # Notes: Actions of the rule. # "actions": [ { # Option: name # Type: String # Notes: Name of the modification. # Value: [ NAME ] # "name": "add_test_header", # Option: type # Type: String # Notes: Type of the modification. # Value: [ add_header | del_header | mod_header ] # "type": "add_header", # Option: field # Type: String # Notes: Name of the header. # Value: [ NAME ] # "field": "X-Test-Header", # Option: value # Type: String # Notes: Value of the header. # Value: [ VALUE ] # "value": "true" }, { "name": "modify_subject", "type": "mod_header", # Option: field # Type: String # Notes: Regular expression to match against header lines (e.g. Subject: Test-Subject). # Value: [ REGEX ] # "field": "^Subject$", # Option: search # Type: String # Notes: Regular expression to match against the headers value. # Values: [ VALUE ] # "search": "(?P.*)", # Option: value # Type: String # Notes: New value of the header. # Values: [ VALUE ] "value": "[EXTERNAL] \\g" }, { "name": "delete_received_header", "type": "del_header", # Option: field # Type: String # Notes: Regular expression to match against header lines (e.g. Subject: Test-Subject). # Value: [ REGEX ] # "field": "^Received$" }, { "name": "add_disclaimer", "type": "add_disclaimer", # Option: action # Type: String # Notes: Action to perform with the disclaimer. # Value: [ append | prepend ] # "action": "prepend", # Option: html_template # Type: String # Notes: Path to a file which contains the html representation of the disclaimer. # Value: [ FILE_PATH ] # "html_template": "/etc/pymodmilter/templates/disclaimer_html.template", # Option: text_template # Type: String # Notes: Path to a file which contains the text representation of the disclaimer. # Value: [ FILE_PATH ] # "text_template": "/etc/pymodmilter/templates/disclaimer_text.template", # Option: error_policy # Type: String # Notes: Set what should be done if the modification fails (e.g. no message body present). # Value: [ wrap | ignore | reject ] # "error_policy": "wrap" }, { "name": "store_message", "type": "store", # Option: storage_type # Type: String # Notes: The storage type used to store e-mails. # Value: [ file ] "storage_type": "file", # Option: directory # Type: String # Notes: Directory used to store e-mails. # Value: [ file ] "directory": "/mnt/messages" } ] } ] }