Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

feedback-loop

  • Clone with SSH
  • Clone with HTTPS
  • ale's avatar
    ale authored
    Replace the flask-script 'feedbackloop' entry point with Flask CLI
    hooks. Add an option to store unparsable files to a mbox.
    a6a892de
    History

    feedback-loop

    This small server receives spam feedback loop messages, as sent from large email providers in ARF format, and stores the entries in a database so that you can see aggregates and details via a web interface. Records are periodically expunged from the database if they are older than a certain time period.

    Due to the common tendency to report mailing list emails as spam, the tool tries to identify reports for mailing lists emails, and presents their statistics separately from those about emails from ordinary users (which are often indicative of an account takeover). Details (i.e. the message body) for mailing list emails are not saved to the database to save space and effort.

    The tool reads emails from an IMAP account, configured via the IMAP_SERVER, IMAP_USERNAME and IMAP_PASSWORD parameters (SSL is assumed). Emails are deleted from the remote account once the reports have been successfully saved to the database.

    The HTTP server can be started with:

    feedbackloop server --port=1234

    There are two cron jobs that need to be run periodically:

    # Fetch new reports.
    feedbackloop ingest
    
    # Expire old records.
    feedbackloop expire --days=30