{"id":46238029,"url":"https://github.com/treelogic-swe/email-scraper","last_synced_at":"2026-03-03T19:30:33.826Z","repository":{"id":57222886,"uuid":"91218870","full_name":"treelogic-swe/email-scraper","owner":"treelogic-swe","description":"Turn a mailbox into a read API.","archived":false,"fork":false,"pushed_at":"2017-05-21T05:17:11.000Z","size":134,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-24T01:20:11.713Z","etag":null,"topics":["e-mail","email","inbox","mailbox","scrape"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/treelogic-swe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-14T04:02:15.000Z","updated_at":"2021-08-26T11:28:10.000Z","dependencies_parsed_at":"2022-08-28T21:40:09.094Z","dependency_job_id":null,"html_url":"https://github.com/treelogic-swe/email-scraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/treelogic-swe/email-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treelogic-swe%2Femail-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treelogic-swe%2Femail-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treelogic-swe%2Femail-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treelogic-swe%2Femail-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/treelogic-swe","download_url":"https://codeload.github.com/treelogic-swe/email-scraper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treelogic-swe%2Femail-scraper/sbom","scorecard":{"id":897773,"data":{"date":"2025-08-11","repo":{"name":"github.com/treelogic-swe/email-scraper","commit":"eea179ea03aa755ab322a2842febb12891c5016b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"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":"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":"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":"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":"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":"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":"Code-Review","score":0,"reason":"Found 0/30 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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt: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"}},{"name":"Vulnerabilities","score":0,"reason":"54 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-6cpc-mj5c-m9rq","Warn: Project is vulnerable to: GHSA-9vvw-cc9w-f27h","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-qrmc-fj45-qfc2","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-44pw-h2cw-w3vq","Warn: Project is vulnerable to: GHSA-jp4x-w63m-7wgm","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-4hpf-3wq7-5rpr","Warn: Project is vulnerable to: GHSA-f522-ffg8-j8r6","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-282f-qqgm-c34q","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-wrvr-8mpx-r7pp","Warn: Project is vulnerable to: GHSA-hxm2-r34f-qmc5","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-446m-mv8f-q348","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-w9mr-4mfr-499f","Warn: Project is vulnerable to: GHSA-mqr2-w7wj-jjgr","Warn: Project is vulnerable to: GHSA-49j4-86m8-q2jw","Warn: Project is vulnerable to: GHSA-fpw7-j2hg-69v5","Warn: Project is vulnerable to: GHSA-4rch-2fh8-94vw","Warn: Project is vulnerable to: GHSA-pmh2-wpjm-fj45","Warn: Project is vulnerable to: GHSA-48ww-j4fc-435p","Warn: Project is vulnerable to: GHSA-hwqf-gcqm-7353","Warn: Project is vulnerable to: GHSA-9h6g-pr28-7cqp","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-2m39-62fm-q8r3","Warn: Project is vulnerable to: GHSA-mf6x-7mm4-x2g7","Warn: Project is vulnerable to: GHSA-g7q5-pjjr-gqvp","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-cf4h-3jhx-xvhq"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T14:23:29.392Z","repository_id":57222886,"created_at":"2025-08-24T14:23:29.392Z","updated_at":"2025-08-24T14:23:29.392Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30056059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["e-mail","email","inbox","mailbox","scrape"],"created_at":"2026-03-03T19:30:33.219Z","updated_at":"2026-03-03T19:30:33.806Z","avatar_url":"https://github.com/treelogic-swe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![email-scraper Logo](./resources/images/email-scraper.png)  [![Build Status](https://travis-ci.org/treelogic-swe/email-scraper.png?branch=master)](https://travis-ci.org/treelogic-swe/email-scraper)\n\n# Summary\n\nTurn a mailbox into a read API.  Availalble on npmjs.com: https://www.npmjs.com/package/email-scraper\n\n# Overview\n\nScrapes e-mail from a specified e-mail server, extracting string results according to specified matching patterns, and sends the output to a configured location.\n\nThis is useful, for example, for having billing information written to a database from a service that sends e-mail notification of payment received, but offers no programmatic api for obtaining the data.\n\nCan be used from the command line or programmatically, as described below in the \"Usage\" section.\n\n# Prerequisites\n\n  * NodeJS.  See `engines` field in the file `./package.json` for details on the version.\n  * Recommended: [yarn package manager](https://yarnpkg.com).\n\n## Non-test Usage\n\nTo use this beyond the default test settings, you will need to:\n\n  * Configure `./conf/mail_servers.conf.js` by following the pattern set by any entry in that file.\n    * Note that the username and password can be set in the clear.  Otherwise, the keyword `retrieve` will cause the mail\n    program to run a separate, custom module to retrieve the credentials.\n  * Configure `./conf/output_targets.conf.js` by following the pattern set by any entry in that file.\n\n# Install\n\nIf you have [`yarn`](https://yarnpkg.com):\n\n```\nyarn install email-scraper\nmake instally\n```\n\nor if you want to use `npm` instead:\n\n```\nnpm install email-scraper\nmake install\n```\n\nTip: Use the provided alternative: `make instally` .  This will use the [yarn package manager](https://yarnpkg.com) instead of npm.  Yarn is typically much, much faster.\nIf you do not have or want `yarn`, do: `make install` instead of `make instally`.\n\n# Configure\n\nIf not running using the test server, then the mail server and extraction job will need to be configured.  See `./conf/README.md` for details.\n\n# Usage\n\n## Command-Line\n\n### Prerequistes\n\n* A running mailserver and access to the same.  You can use the bundled local test email server.  The test server must be running.  Start it like this: `make starttestmailserver`.  Stop it like this: `make stoptestmailserver`.\n\n### Examples\n\nExample (running with all defaults, which uses the test mailserver that is bundled with this project; assumes that the test email server is running (see above)):\n\n```\nmake run\n```\n\nIf using any command line arguments, use the included npm scripts as shown below.\n\nExample:\n\n```\nnpm run-script run -- --startAt=1\n```\n\nTo keep the server listening indefinitely on mailserver 'foo':\n\n```\nnpm run-script run -- --mailserver=foo --username=bar --password=bat --keepListening=true\n```\n\n\n## Programmatic\n\nThe file `src/index.js` shows how to use this package from your NodeJS program.  Essentially, you will use the module, `src/scrape_mail.js` as your entry point.\n\n# Develop / Contribute\n\nEnsure that your code meets lint:\n\n`make lint`\n\nThen run the tests as shown below, ensuring that you see \"Test Passed\" as the test result.\n\n# Debug\n\n## Prerequisites\n\nThe pre-requisites are the same as for [`node --inspect`](https://nodejs.org/api/debugger.html#debugger_v8_inspector_integration_for_node_js).\n\n## Tools\n\nFor more info on how to set up and use your debugging tools, see:\n  * [Debugging Node.js with Chrome DevTools](https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27)\n  * [Debugging Node.js Apps](https://nodejs.org/en/docs/inspector/).\n\n\n## Run\n\n`make run-debug`\n\n### Run with Arguments\n\nExample 1:\n\n```\nnpm run-script run-debug -- --startAt=1\n```\n\nExample 2:\n\n```\nnpm run-script run-debug -- --mailserver=foo --username=bar --password=bat --keepListening=true\n```\n\n## Output Options\n\nCurrent output options include output to console, write to file (currently includes csv format), or write to database.  Use the command line option `--output` to select the output type.  The default is output to the console.\n\nSee the file `conf/output_targets.conf.js` for examples of the output options available.  That is where you will do any configuration you need for your output.  For info on the database structure required for database output, see the file `test/util/setup/db/mysql.sql`.\n\n# Test\n\n## Prerequisites\n\nPort 1110 must be available.\n\n## Run\n\n`make test`\n\n## Debug\n\n`make test debug=true`\n\n## Configure\n\nConfigure the test mail server and other settings in `./conf/test.conf.js`, according to the relevant information in `./conf/README.md`.\n\n# List Configured Servers\n\n`make list`\n\n# Uninstall\n\n`make uninstall`\n\n# Help\n\nGet help on the mail program features like this:\n\n```\nmake help\n```\n\n# Development Tips\n\n## Run Fast\n\nTo iterate quickly over successive runs, use the bundled local test email server.  To do this, first start the test email server with `make starttestmailserver`.  Then, do `make run-against-test-server`.\n\n## Change the Test Data\n\nIf you would like to alter the test data that is used by the bundled local test email server, this is done in the file `./test/util/test_messages.js`.  Modify the two components, the message body list and the message metadata list.  To see your change, you will need to restart the test email server: `make stoptestmailserver`.\n\n# Contributing\n\nEnsure that:\n\n  * Your commits are usually [prefixed with a classifier](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#type) (feat:, doc:, chore:, etc).\n  * Your pull or merge request passes all tests (see Test section above) and passes lint (`make lint`).\n  * Any new or changed behavior has an associated automated test case that runs under `make test`.\n  * Document any new options or behaviors in a `README.md` (new or existing).\n  * Any new or changed options must be documented in the output of `make help`.\n  * Ensure all contributed code meets the license requirements in `LICENSE.txt`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreelogic-swe%2Femail-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftreelogic-swe%2Femail-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreelogic-swe%2Femail-scraper/lists"}