On Mon 06/Jun/2022 17:06:05 +0200 Todd Herr wrote:

Here's what's currently written in rev -07 for the subject at hand:

    A DMARC policy record MUST comply with the formal specification found
    in Section 5.4 in that the "v" tag MUST be present and MUST appear
    first.  Unknown tags MUST be ignored.  Syntax errors in the remainder
    of the record SHOULD be discarded in favor of default values (if any)
    or ignored outright.

    Note that given the rules of the previous paragraph, addition of a
    new tag into the registered list of tags does not itself require a
    new version of DMARC to be generated (with a corresponding change to
    the "v" tag's value), but a change to any existing tags does require
    a new version of DMARC.


That text seems good to me.


5.4.  Formal Definition

    The formal definition of the DMARC format, using [RFC5234], is as
    follows:



Herr (ed) & Levine (ed)  Expires 8 October 2022                [Page 25]

Internet-Draft                  DMARCbis                      April 2022


      dmarc-uri       = URI
                        ; "URI" is imported from [RFC3986]; commas (ASCII
                        ; 0x2C) and exclamation points (ASCII 0x21)
                        ; MUST be encoded

      dmarc-record    = dmarc-version dmarc-sep *(dmarc-tag dmarc-sep)


No, in April we said something like so:

        dmarc-record    = dmarc-version *(dmarc-sep dmarc-tag) [dmarc-sep]


      dmarc-tag       = dmarc-request /
                        dmarc-test /
                        dmarc-psd /
                        dmarc-sprequest /
                        dmarc-nprequest /
                        dmarc-adkim /
                        dmarc-aspf /
                        dmarc-auri /
                        dmarc-furi /
                        dmarc-fo /
                        dmarc-rfmt
                        ; components other than dmarc-version and
                        ; dmarc-request may appear in any order

      dmarc-version   = "v" *WSP "=" *WSP %x44 %x4d %x41 %x52 %x43 %x31


Can we use RFC 7405?  It is more readable:

        dmarc-version   = "v" *WSP "=" *WSP %s"DMARC1" ; case sensitive


      dmarc-sep       = *WSP %x3b *WSP


The definition of comment in RFC 5234 uses ";".  How about the following?

        dmarc-sep       = *WSP ";" *WSP


      dmarc-request   = "p" *WSP "=" *WSP
                        ( "none" / "quarantine" / "reject" )

      dmarc-test      = "t" *WSP "=" ( "y" / "n" )

      dmarc-psd       = "psd" *WSP "=" ( "y" / "n" )

      dmarc-sprequest = "sp" *WSP "=" *WSP
                        ( "none" / "quarantine" / "reject" )

      dmarc-nprequest  = "np" *WSP "=" *WSP
                        ( "none" / "quarantine" / "reject" )

      dmarc-adkim     = "adkim" *WSP "=" *WSP ( "r" / "s" )

      dmarc-aspf      = "aspf" *WSP "=" *WSP ( "r" / "s" )

      dmarc-auri      = "rua" *WSP "=" *WSP
                        dmarc-uri *(*WSP "," *WSP dmarc-uri)

      dmarc-furi      = "ruf" *WSP "=" *WSP
                        dmarc-uri *(*WSP "," *WSP dmarc-uri)

      dmarc-fo        = "fo" *WSP "=" *WSP
                        ( "0" / "1" / ( "d" / "s" / "d:s" / "s:d" ) )

      dmarc-rfmt      = "rf"  *WSP "=" *WSP Keyword *(*WSP ":" Keyword)
                        ; registered reporting formats only

    "Keyword" is imported from Section 4.1.2 of [RFC5321].

I've also got the following nits teed up for rev -08:

    -dmarc-test= "t" *WSP "=" ( "y" / "n" )

    +dmarc-test= "t" *WSP "=" *WSP ( "y" / "n" )

    -dmarc-psd = "psd" *WSP "=" ( "y" / "n" )

    +dmarc-psd = "psd" *WSP "=" *WSP ( "y" / "n" / "u" )


Best
Ale
--













_______________________________________________
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc

Reply via email to