Skip to the documentation
Ruby

client.tools

Every method in this namespace: its signature, its parameters, what it returns and an example.

Methods

Checks of the public mail records of any domain, the free tools on the OpenEmail website: its DMARC policy, its BIMI logo and a deliverability report across MX, SPF, DKIM, DMARC and BIMI. They need no scope.

tools.check_dmarc

Check a domain's DMARC policy

No scope
Signature
check_dmarc(domain, api_key: nil) -> Hash

Reads the domain's DMARC record from public DNS, or the record of the organisational domain it inherits from, and says how strict it is and what is wrong with it, the DMARC checker on the OpenEmail website. stage is missing, invalid, monitor for p=none, quarantine or reject, and issues lists the problems written to be shown to a person.

Parameters

domainStringRequired

The domain to check, such as acme.com. An email address or a URL is read as its domain, and any public domain works, not only the ones in this workspace.

api_keyString

Overrides the client's API key for this call only.

Returns

A Hash with domain, record, inheritedFrom, every tag in tags, stage and issues.

Example

report = client.tools.check_dmarc("acme.com") puts report[:stage], report[:tags][:p]p report[:issues]

Notes

  • Needs no scope: any key or access token for the workspace may run it.

  • A domain that does not read as one is 422 invalid_parameter on domain, and DNS that did not answer is 503 unreachable, which is worth retrying.

Also available in

API
GET /tools/dmarc
TypeScript
tools.checkDmarc()
Python
tools.check_dmarc()
CLI
openemail tools check-dmarc

tools.check_bimi

Check a domain's BIMI logo

No scope
Signature
check_bimi(domain, api_key: nil) -> Hash

Reads the domain's BIMI record, fetches the logo it names and checks the DMARC policy beside it, since inboxes draw a logo only at p=quarantine or p=reject, the BIMI checker on the OpenEmail website. status is present, partial when the record is there but something stops inboxes showing the logo, absent or invalid, and issues says why.

Parameters

domainStringRequired

The domain to check, such as acme.com. An email address or a URL is read as its domain, and any public domain works, not only the ones in this workspace.

api_keyString

Overrides the client's API key for this call only.

Returns

A Hash with record, logoUrl, authorityUrl, logoSvg, logoReachable, dmarcPolicy, dmarcEnforced, status and issues.

Example

report = client.tools.check_bimi("acme.com") p report[:issues] unless report[:status] == "present"

Notes

  • Needs no scope: any key or access token for the workspace may run it.

  • A domain that does not read as one is 422 invalid_parameter on domain, and DNS that did not answer is 503 unreachable, which is worth retrying.

Also available in

API
GET /tools/bimi
TypeScript
tools.checkBimi()
Python
tools.check_bimi()
CLI
openemail tools check-bimi

tools.check_deliverability

Check a domain's deliverability

No scope
Signature
check_deliverability(domain, api_key: nil) -> Hash

Checks the records a receiving mailbox reads before it trusts mail from the domain, the deliverability checker on the OpenEmail website: MX, SPF, DKIM at the selectors its mail provider uses, DMARC and BIMI. Each check says pass, warn, fail or absent with a verdict and notes, and score weighs them into 0 to 100, graded A to F.

Parameters

domainStringRequired

The domain to check, such as acme.com. An email address or a URL is read as its domain, and any public domain works, not only the ones in this workspace.

api_keyString

Overrides the client's API key for this call only.

Returns

A Hash with score, grade, provider and checks, an Array of Hashes each with id, label, status, verdict, record and notes.

Example

report = client.tools.check_deliverability("acme.com") puts report[:grade], report[:score]report[:checks].each { |check| puts check.values_at(:id, :status, :verdict).join(" ") }

Notes

  • Needs no scope: any key or access token for the workspace may run it.

  • A domain that does not read as one is 422 invalid_parameter on domain, and DNS that did not answer is 503 unreachable, which is worth retrying.

Also available in

API
GET /tools/deliverability
TypeScript
tools.checkDeliverability()
Python
tools.check_deliverability()
CLI
openemail tools check-deliverability