geeks4change / untrack-email-analyzer
Requires
- php: ^8.1
- ext-dom: *
- cweagans/composer-patches: ^1.7
- guzzlehttp/guzzle: ^7.5
- guzzlehttp/psr7: ^2.4
- loophp/collection: ^6.0
- masterminds/html5: ^2.7
- phpmailer/dkimvalidator: 0.3
- psr/http-message: ^1.0
- psr/log: ^1.1 || ^2.0 || ^3.0
- symfony/dom-crawler: ^6.2
- symfony/http-client: ^6.2
- symfony/http-foundation: ^6.2
- symfony/rate-limiter: ^6.2
- symfony/yaml: ^5 || ^6.2
- zbateson/mail-mime-parser: ^2.2
Requires (Dev)
- maglnet/composer-require-checker: ^3.8
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5 || ^6.2
This package is auto-updated.
Last update: 2024-11-16 00:34:45 UTC
README
Part of the unspy.email suite: Analyzes emails for user tracking links. (The "untrack_email" prefix is for legacy reasons.)
What it does
The analyzer component...
- parses the email
- checks DKIM signature
- extracts headers
- extracts link and image URLs
- among these, guesses unsubscribe URLs
- queries all CName domain aliases of all found domains
- matches URLs for well-known analytics patterns
- matches URLs for well-known provider patterns (see docs/matchers.md), adding matched unsubscribe URLs
- queries all URLs (except guessed or matched unsubscribe URLs) for redirections (async for speed, throttled to not get banned)
- extracts the mailing list (via heuristic)
- extracts a verdict from all that results
The result data structure was balanced to be generic enough to serve for further analyses, and also structured in a way to allow displaying it without too much further processing.
For more details see \Geeks4change\UntrackEmailAnalyzer\Analyzer\Analyzer and \Geeks4change\UntrackEmailAnalyzer\Analyzer\Result\FullResultWrapper.
Usage
See \Drupal\untrack_email_storage\UntrackEmailProcessor::process() in the geeks4chane/untrack_email_storage package.
Development
For technical docs see docs/README.md.
This package is meant to be used as analyzer engine in untrack_email_storage. For installation and usage see that one: https://gitlab.com/geeks4change/untrack.email/untrack_email_storage