NAME

Mail::BIMI::Indicator - Class to model a BIMI indicator

VERSION

version 3.20240402

DESCRIPTION

Class for representing, retrieving, validating, and processing a BIMI Indicator

INPUTS

These values are used as inputs for lookups and verifications, they are typically set by the caller based on values found in the message being processed

data

is=rw

Raw data representing the Indicator; Fetches from uri if not given

uri

is=rw

URL to retrieve Indicator from

validator_profile

is=rw

Validator profile used to validate the Indicator

ATTRIBUTES

These values are derived from lookups and verifications made based upon the input values, it is however possible to override these with other values should you wish to, for example, validate a record before it is published in DNS, or validate an Indicator which is only available locally

cache_backend

is=ro

data_uncompressed

is=rw

Raw data in uncompressed form

data_xml

is=rw

XML::LibXML object representing the Indicator

errors

is=rw

is=rw

Indicator data encoded as Base64 ready for insertion as BIMI-Indicator header

http_client

is=rw

HTTP::Tiny::Paranoid (or similar) object used for HTTP operations

is_valid

is=rw

Is this indicator valid

parser

is=rw

XML::LibXML::RelaxNG parser object used to validate the Indicator XML

source

is=rw

Human readable summary of where this indicator was retrieved from

warnings

is=rw

CONSUMES

EXTENDS

METHODS

cache_valid_for()

How long should the cache for this class be valid

http_client_max_fetch_size()

Maximum permitted HTTP fetch

data_maybe_compressed()

Synonym for data; returns the data in a maybe compressed format

data_uncompressed_normalized()

Returns the uncompressed data with normalized line endings

header_crlf()

Returns the proposed BIMI-Indicator in its entirity with crlf line endings even when the Indicator has not validated. This is used to find the size of the header in validator code and MUST NOT be used to add the header to emails.

finish()

Finish and clean up, write cache if enabled.

app_validate()

Output human readable validation status of this object

REQUIRES

AUTHOR

Marc Bradshaw <marc@marcbradshaw.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Marc Bradshaw.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.