Mailglass.Deliverability.Resolver behaviour (Mailglass v1.0.0)

Copy Markdown View Source

Mailglass-owned DNS resolver seam for deliverability checks.

The default implementation uses OTP :inet_res and normalizes DNS answers into binaries and maps only. Callers never receive raw charlists or :dns_rec tuples across the boundary.

Summary

Callbacks

Looks up one CNAME target for one domain.

Looks up MX records for one domain.

Looks up TXT records for one domain.

Types

mx_record()

@type mx_record() :: %{exchange: binary(), preference: integer()}

reason()

@type reason() :: :timeout | :nxdomain | :servfail | :malformed_answer | :not_found

Callbacks

lookup_cname(t)

@callback lookup_cname(String.t()) :: {:ok, binary()} | {:error, reason()}

Looks up one CNAME target for one domain.

lookup_mx(t)

@callback lookup_mx(String.t()) :: {:ok, [mx_record()]} | {:error, reason()}

Looks up MX records for one domain.

lookup_txt(t)

@callback lookup_txt(String.t()) :: {:ok, [binary()]} | {:error, reason()}

Looks up TXT records for one domain.