{"id":18894161,"url":"https://github.com/trailofbits/dmarc","last_synced_at":"2026-03-16T11:36:06.347Z","repository":{"id":13127189,"uuid":"15809156","full_name":"trailofbits/dmarc","owner":"trailofbits","description":"Ruby DMARC Parser","archived":false,"fork":false,"pushed_at":"2024-01-24T21:05:07.000Z","size":110,"stargazers_count":25,"open_issues_count":1,"forks_count":14,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-05-01T22:03:46.179Z","etag":null,"topics":["dmarc","dns"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/dmarc","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"robdudley/php-challenges","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trailofbits.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-01-10T20:44:42.000Z","updated_at":"2024-01-23T17:35:40.000Z","dependencies_parsed_at":"2024-01-23T18:26:16.463Z","dependency_job_id":"f17d4e89-8d54-44c3-b2ba-f84ce69cdbbc","html_url":"https://github.com/trailofbits/dmarc","commit_stats":{"total_commits":144,"total_committers":7,"mean_commits":"20.571428571428573","dds":"0.17361111111111116","last_synced_commit":"067a01125390f22ca2395bb99d25091a89833c4b"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fdmarc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fdmarc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fdmarc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fdmarc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trailofbits","download_url":"https://codeload.github.com/trailofbits/dmarc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248984402,"owners_count":21193742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dmarc","dns"],"created_at":"2024-11-08T08:19:06.199Z","updated_at":"2026-03-16T11:36:06.266Z","avatar_url":"https://github.com/trailofbits.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DMARC\n\n[![CI](https://github.com/trailofbits/dmarc/actions/workflows/ci.yml/badge.svg)](https://github.com/trailofbits/dmarc/actions/workflows/ci.yml)\n[![Gem Version](https://badge.fury.io/rb/dmarc.svg)](http://badge.fury.io/rb/dmarc)\n[![YARD Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/gems/dmarc)\n\n[DMARC] is a technical specification intended to solve a couple of long-standing\nemail authentication problems. DMARC policies are described in DMARC \"records,\"\nwhich are stored as DNS TXT records on a subdomain. This library contains a\nparser for DMARC records.\n\n## Example\n\nParse a DMARC record:\n\n    require 'dmarc'\n\n    record = DMARC::Record.parse(\"v=DMARC1; p=reject; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com; fo=1\")\n\n    record.v\n    # =\u003e :DMARC1\n\n    record.adkim\n    # =\u003e :r\n\n    record.aspf\n    # =\u003e :r\n\n    record.fo\n    # =\u003e [\"0\"]\n\n    record.p\n    # =\u003e :reject\n\n    record.pct\n    # =\u003e 100\n\n    record.rf\n    # =\u003e :afrf\n\n    record.ri\n    # =\u003e 86400\n\n    record.rua\n    # =\u003e [#\u003cDMARC::Uri:0x0055ede60711e0 @uri=#\u003cURI::MailTo mailto:d@rua.agari.com\u003e, @size=nil, @unit=nil\u003e]\n\n    record.ruf\n    # =\u003e [#\u003cDMARC::Uri:0x0055ede606f138 @uri=#\u003cURI::MailTo mailto:d@ruf.agari.com\u003e, @size=nil, @unit=nil\u003e]\n\n    record.sp\n    # =\u003e :reject\n\nQuery the DMARC record for a domain:\n\n    record = DMARC::Record.query('twitter.com')\n    # =\u003e #\u003cDMARC::Record:0x0055ede6b808b0 @v=:DMARC1, @adkim=nil, @aspf=nil, @fo=[\"1\"@79], @p=:reject, @pct=nil, @rf=nil, @ri=nil, @rua=[#\u003cDMARC::Uri:0x0055ede6ba1c40 @uri=#\u003cURI::MailTo mailto:d@rua.agari.com\u003e, @size=nil, @unit=nil\u003e], @ruf=[#\u003cDMARC::Uri:0x0055ede6b8b760 @uri=#\u003cURI::MailTo mailto:d@ruf.agari.com\u003e, @size=nil, @unit=nil\u003e], @sp=nil\u003e\n\n## Requirements\n\n* [parslet] ~\u003e 1.5\n\n## Install\n\n    $ gem install dmarc\n\n## Testing\n\nTo run the RSpec tests:\n\n    $ rake spec\n\nTo test the parser against the Alexa Top 500:\n\n    $ rake spec:gauntlet\n\n## License\n\nSee the {file:LICENSE.txt} file.\n\n[DMARC]: https://tools.ietf.org/html/rfc7489\n[parslet]: http://kschiess.github.io/parslet/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Fdmarc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrailofbits%2Fdmarc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Fdmarc/lists"}