Skip to the documentation
SDK

openemail.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.checkDmarc()

Check a domain's DMARC policy

No scope
Signature
checkDmarc(domain: string, options?: RequestScope): Promise<DmarcReportResource>

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.

options.signalAbortSignal

Cancels the request.

options.apiKeystring

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

Returns

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

Example

const report = await openemail.tools.checkDmarc('acme.com') console.log(report.stage, report.tags.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
CLI
openemail tools check-dmarc

tools.checkBimi()

Check a domain's BIMI logo

No scope
Signature
checkBimi(domain: string, options?: RequestScope): Promise<BimiReportResource>

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.

options.signalAbortSignal

Cancels the request.

options.apiKeystring

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

Returns

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

Example

const report = await openemail.tools.checkBimi('acme.com') if (report.status !== 'present') console.log(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/bimi
CLI
openemail tools check-bimi

tools.checkDeliverability()

Check a domain's deliverability

No scope
Signature
checkDeliverability(domain: string, options?: RequestScope): Promise<DeliverabilityReportResource>

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.

options.signalAbortSignal

Cancels the request.

options.apiKeystring

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

Returns

DeliverabilityReportResource with score, grade, provider and checks, each with id, label, status, verdict, record and notes.

Example

const report = await openemail.tools.checkDeliverability('acme.com') console.log(report.grade, report.score)for (const check of report.checks) console.log(check.id, check.status, check.verdict)

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
CLI
openemail tools check-deliverability