{"id":34113326,"url":"https://github.com/owenh000/addrcollector","last_synced_at":"2026-04-10T10:32:17.661Z","repository":{"id":62559771,"uuid":"276736972","full_name":"owenh000/addrcollector","owner":"owenh000","description":"A Python application for collecting email addresses from email messages","archived":false,"fork":false,"pushed_at":"2020-07-16T06:21:26.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-14T12:26:07.513Z","etag":null,"topics":["contacts","database","email","python3"],"latest_commit_sha":null,"homepage":"https://owenh.net/addrcollector","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owenh000.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"owenh000","liberapay":"owenh","ko_fi":"owenh","patreon":"owenh","issuehunt":"owenh000","custom":["https://flattr.com/@owenh","https://paypal.me/owenh000","https://owenh.net/support"]}},"created_at":"2020-07-02T20:13:57.000Z","updated_at":"2021-08-07T05:07:06.000Z","dependencies_parsed_at":"2022-11-03T12:45:15.170Z","dependency_job_id":null,"html_url":"https://github.com/owenh000/addrcollector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/owenh000/addrcollector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owenh000%2Faddrcollector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owenh000%2Faddrcollector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owenh000%2Faddrcollector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owenh000%2Faddrcollector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owenh000","download_url":"https://codeload.github.com/owenh000/addrcollector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owenh000%2Faddrcollector/sbom","scorecard":{"id":715667,"data":{"date":"2025-08-11","repo":{"name":"github.com/owenh000/addrcollector","commit":"b70825c7850b357da4be9cd3f4965b25dac5277d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/19 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Creative Commons Zero v1.0 Universal: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T09:34:52.311Z","repository_id":62559771,"created_at":"2025-08-22T09:34:52.311Z","updated_at":"2025-08-22T09:34:52.311Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31638445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contacts","database","email","python3"],"created_at":"2025-12-14T19:12:23.469Z","updated_at":"2026-04-10T10:32:17.653Z","avatar_url":"https://github.com/owenh000.png","language":"Python","funding_links":["https://github.com/sponsors/owenh000","https://liberapay.com/owenh","https://ko-fi.com/owenh","https://patreon.com/owenh","https://issuehunt.io/r/owenh000","https://flattr.com/@owenh","https://paypal.me/owenh000","https://owenh.net/support"],"categories":[],"sub_categories":[],"readme":"=============\naddrcollector\n=============\n\nA Python application for collecting email addresses from email messages\n\n-----\nAbout\n-----\n\n*addrcollector* collects email addresses from email messages. This is\nsimilar to Thunderbird's \"Collected Addresses\" feature and\ncorresponding functionality in other software. In the case of\naddrcollector, however, email messages are read from standard input,\nor manually on the command line, and the email address database can be\nqueried by keyword.\n\nIt is possible for addrcollector to be integrated with a mail delivery\nsystem like Procmail or Maildrop to collect addresses from all\nmessages, or with mail clients like Mutt or Alpine to collect\naddresses selectively.\n\nDates and display names are also collected. If an address is seen more\nthan once, then (1) the date is updated and (2) the display name is\nupdated if the new one is longer than the old one.\n\nFor example, to add an address manually (the display name is optional):\n\n.. code:: console\n\n   $ addrcollector add jon@example.com \"Jon Smith\"\n   $ addrcollector add sven@example.com\n\nTo import addresses from a message passed on standard input:\n\n.. code:: console\n\n   $ addrcollector import \u003c mymail.msg\n\nTo search for addresses using keywords (multiple keywords may be\ngiven and are ORed):\n\n.. code:: console\n\n   $ addrcollector search jon sven\n   2020-07-03 jon@example.com                Jon Smith\n   2020-07-03 sven@example.com\n\n--------------------\nInstalling from PyPI\n--------------------\n\naddrcollector is published on PyPI and can be installed with pip.\n\n1. Install the addrcollector package.\n\n   .. code:: console\n\n      $ pip3 install addrcollector\n\n   This should provide a ``~/.local/bin/addrcollector`` script that you\n   can execute.\n\n2. If that path is included in your `PATH` environment variable, you\n   can run the ``addrcollector`` command without typing the entire\n   path. To set this up (if it hasn't been done already), add the\n   following code in your ``~/.bash_profile`` (it may be\n   ``~/.profile`` for a shell other than Bash):\n\n   .. code:: bash\n\n      if [ -d \"$HOME/.local/bin\" ] ; then\n          PATH=\"$HOME/.local/bin:$PATH\"\n      fi\n\n-----------------------\nRunning from repository\n-----------------------\n\nIf you have cloned the repository, you can run addrcollector from it\ndirectly.\n\n1. Install Poetry:\n\n   .. code:: console\n\n      $ pip3 install poetry\n\n2. With the addrcollector repository root as your current directory,\n   use Poetry to install the dependencies:\n\n   .. code:: console\n\n      $ poetry install\n\n3. Now that the dependencies have been installed, use Poetry to run\n   addrcollector:\n\n   .. code:: console\n\n      $ poetry run addrcollector\n\n--------\nSponsors\n--------\n\nThank you to an anonymous sponsor for supporting my work on this and\nother projects! ✨\n\n------------\nContributing\n------------\n\nIf you interested in contributing to this project, thank you!\n\n- Share this project with someone else who may be interested\n- Contribute a fix for a currently open\n  [issue](https://github.com/owenh000/addrcollector/issues) (if any)\n  using a GitHub pull request (please discuss before working on any\n  large changes)\n- Open a new issue for a problem you've discovered or a possible\n  enhancement\n- Sponsor my work through `GitHub Sponsors\n  \u003chttps://github.com/owenh000\u003e`_ (see also `owenh.net/support\n  \u003chttps://owenh.net/support\u003e`_)\n\nThank you for your interest!\n\n---------------------\nCopyright and License\n---------------------\n\nCopyright 2020 Owen T. Heisler. Creative Commons Zero v1.0 Universal\n(CC0 1.0).\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\nThis source code may be used, modified, and/or redistributed according\nto the terms of the Creative Commons Zero 1.0 Universal (CC0 1.0)\nlicense. You should have received a copy of this license along with\nthis program (see `LICENSE`). If not, see\n\u003chttps://creativecommons.org/publicdomain/zero/1.0/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowenh000%2Faddrcollector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowenh000%2Faddrcollector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowenh000%2Faddrcollector/lists"}