This API (libopendmarc) at its current release, allows an application to look up DMARC records and to apply policy to application supplied DKIM and SPF results. An implementation of a filter, using Sendmail's milter package, uses this libopendmarc library.
Data Type | Description |
OPENDMARC_LIB_T | The structure used to initialize the library at startup |
DMARC_POLICY_T | The context used per in-bound envelope. |
OPENDMARC_STATUS_T | The type returned by many library functions. |
Function | Description |
Program Startup/Shutdown | |
opendmarc_policy_library_init() | Initialize the library on program startup. |
opendmarc_policy_library_shutdown() | Shut down the library to free resources. |
Per-Envelope Context Functions | |
opendmarc_policy_connect_init() | Allocate a new context for an in-bound envelope. |
opendmarc_policy_connect_clear() | Clears (zeros) a context for reuse. |
opendmarc_policy_connect_rset() | Partially clears the context as part of an SMTP RSET. |
opendmarc_policy_connect_shutdown() | Deallocate and free a context to conclude its use. |
Information Storage Functions | |
opendmarc_policy_store_from_domain() | Give the policy processor the From: header's domain. |
opendmarc_policy_store_dkim() | Give the policy processor the results of DKIM processing. |
opendmarc_policy_store_spf() | Give the policy processor the results of SPF processing. |
DMARC Record Functions | |
opendmarc_policy_query_dmarc() | DNS lookup a DMARC record and parse it. |
opendmarc_policy_parse_dmarc() | Parse a user supplied DMARC record. |
opendmarc_policy_store_dmarc() | The user process looked up the DMARC record and provides it to the library in one gulp. |
DMARC Result Functions | |
opendmarc_get_policy_to_enforce() | Returns the policy for the MTA to enforce. |
opendmarc_policy_fetch_pct() | Fetch the value of the pct= DMARC setting to determine sampling rate. |
opendmarc_policy_fetch_adkim() | Fetch the value of the adkim= DMARC setting to determine alignment policy. |
opendmarc_policy_fetch_aspf() | Fetch the value of the aspf= DMARC setting to determine alignment policy. |
opendmarc_policy_fetch_p() | Fetch the value of the p= DMARC setting to determine desired policy. |
opendmarc_policy_fetch_sp() | Fetch the value of the sp= DMARC setting to determine desired subdomain policy. |
opendmarc_policy_fetch_rua() | Fetch a list of the rua= DMARC URI stating where to send reports. |
opendmarc_policy_fetch_ruf() | Fetch a list of the ruf= DMARC URI stating where to send failed messages notifications. |
opendmarc_policy_fetch_fo() | Fetch a bitmap that shows how/when that RUF reports should be sent. |
opendmarc_policy_fetch_rf() | Fetch a bitmap that shows which format (arfrf versus iodef) should be used. |
opendmarc_policy_fetch_alignment() | Fetch the result of SPF and DKIM alignment checks. |
opendmarc_policy_fetch_utilized_domain() | Fetch the domain that was used to find the DMARC record. |
TLD Functions | |
opendmarc_tld_read_file() | Read and re-read a TLD file for library use. (See also opendmarc_policy_library_init()) |
opendmarc_tld_shutdown() | Deallocate the cached TLD information as part of program shutdown. |
XML File Functions | |
opendmarc_xml() | Parse an XML Report file that was read into a memory buffer and produce CSV output. |
opendmarc_xml_parse() | Read an XML Report file from disk and parse it into CSV output. |
SPF Checking Functions | |
opendmarc_spf_test.html() | Look up an SPF record and determine if it is a pass or fail. |
Handy Utility Functions | |
opendmarc_dns_fake_record() | Hard-code some DNS replies. Intended for use during unit tests. |
opendmarc_util_clearargv() | Free a NULL terminated array of strings. |
opendmarc_policy_status_to_str() | Fetch a human readable string correspoding to a OPENDMARC_STATUS_T value returned by a function. |
opendmarc_policy_to_buf() | Fetch a human readable copy of the opaque DMARC_POLICY_T into a text buffer. |