<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<!--
    Revisions:
    1.
        General fixes.
        Added requirement notation boilerplace (RFC2119).
        Addressed comments from Alexey Melnikov.
    TODO:
        Address the remaining two comments from Alexey Melnikov.
-->

<?rfc artworklines="1"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc inline="yes"?>
<?rfc comments="yes"?>
<?rfc subcompact="yes"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>

<rfc ipr="pre5378Trust200902" category="exp" docName="draft-ordogh-spam-reporting-using-imap-03">
	<front>
		<title abbrev="IMAP Spam">Spam reporting using IMAP: SREP</title>
		<author fullname="Zoltan Ordogh" initials="Z. O." surname="Ordogh">
			<organization>Research In Motion Limited</organization>
			<address>
				<postal>
					<street>1875 Buckhorn Gate</street>
					<city>Mississauga</city>
					<code>L4W 5P1</code>
					<region>Ontario</region>
					<country>Canada</country>
				</postal>
				<phone>+19056294746x15674</phone>
				<facsimile>+12892615950</facsimile>
				<email>zordogh@rim.com</email>
			</address>
		</author>
		<date month="August" year="2012"/>
		<abstract>
            <t>This document defines an IMAP extension which allows a client to report spam by reference and allows an IMAP server to perform any action on the reported messages, including leaving the action at the client's discretion.</t>
            <t>In addition, this document discusses how an IMAP server can tap into spam aggregator services, ultimately allowing the IMAP server to improve its decision-making process.</t>
		</abstract>
        <note title="Conventions Used In This Document">
			<t>In examples, "C:" and "S:" indicate lines sent by the client or the server, respectively.</t>
			<t>The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>
        	<t>This specification follows the recommendations in <xref target="XDASH"/>.</t>
        </note>
    </front>
	<middle>
        <section title="Introduction">
			<t>The Internet Message Access Protocol <xref target="IMAP4"/> does not support reporting spam on its own.
			There are a number of solutions available based on the multipart/report content type defined in <xref target="OLD-REPORT"/> and its revision, <xref target="REPORT"/>.
			However, these solutions require including the message contents and hence, consume bandwidth to transmit the entire message.
            In bandwidth-constrained environments - such as mobile networks - it is highly desirable to send only a minimum set of information - a reference - instead of the entire message.
            Solutions that exist today employ manipulating proprietary flags in the IMAP storage to achieve the bare minimum, however more advanced solutions cannot be developed by using flags only; the IMAP server needs to be involved actively in the spam reporting process.</t>
            <t>Furthermore, it is highly desirable to permit individual server implementations to handle spam in any way these systems choose to: do nothing, flag, perform deletion or relocation, recommend deletion or relocation to the client, or, leave the decision at the client's discretion as a whole.
			However, in order to make such a decision on the server side, a spam aggregator service, such as <xref target="OMA-SPAMREP"/>, needs to be involved in the decision-making process.</t>
			<t>This document specifies a new IMAP command, SREP, along with its syntax, which allows a client to inform the server that the user considered a message (or parts thereof) spam, or, that the user no longer considers a message (or parts thereof) spam.
			Since all information about the message is readily available on the server, the command also allows the server to implement a more intelligent and accurate decision logic, which may be invoked when the spam is reported and the server can respond with its decision to the client.</t>
			<t>Additionally, this document contains example flows, illustrating various decisions that the server may choose to evaluate, including invoking an aggregator service, such as one based on <xref target="OMA-SPAMREP"/>.</t>
			<t>The SREP command allows:
                <list>
                    <t>reporting spam; i.e. set the spam condition, and,</t>
                    <t>reporting that a message (that was reported spam earlier) is no longer spam; i.e. clear the spam condition.</t>
                </list>
			</t>
		</section>
        <section title="Scope">
            <t>This document focuses only on the client-server interactions and the scope is limited to messages that either exist on the IMAP server, or, exist elsewhere and the IMAP server is configured to access them.
            Consequently, deposit-time filtering, messages that have been deleted, and messages that exist in an external storage but are accessible only via an access protocol unknown to the IMAP server are out of scope.</t>
        </section>
        <section anchor="Command" title="The SREP command">
			<t>The SREP command follows the conventions of <xref target="IMAP4"/>.</t>
            <t>Arguments:
                <list>
                    <t>directive; see <xref target="Directives"/></t>
                    <t>OPTIONAL abuse type; see <xref target="AbuseTypes"/></t>
                    <t>reference; see <xref target="References"/></t>
                    <t>OPTIONAL list of part identifiers; see <xref target="PartIDs"/></t>
                    <t>OPTIONAL request action; see <xref target="RequestAction"/></t>
                </list>
            </t>
            <t>Responses; see <xref target="Responses"/>:
                <list>
                    <t>OPTIONAL OK response: RELOCATE</t>
                    <t>OPTIONAL OK response: RELOCATED</t>
                    <t>OPTIONAL OK response: DELETE</t>
                    <t>OPTIONAL OK response: DELETED</t>
                    <t>OPTIONAL OK response: KEYWORD</t>
                </list>
            </t>
            <t>Result:
                <list>
                    <t>OK - command completed successfully</t>
                    <t>NO - the server cannot access one or more messages (deleted or unauthorized)</t>
                    <t>BAD - there was an error during processing the command (syntax or unsupported parameter)</t>
                </list>
            </t>
            <t>The formal syntax of the SREP command is defined in <xref target="FormalSyntax"/>.</t>
            <t>The SREP command allows:
                <list>
                    <t>- reporting spam; i.e. set the spam condition, and,</t>
                    <t>- reporting that a message (that was reported spam earlier) is no longer spam; i.e. clear the spam condition.</t>
                </list>
            </t>
            <t>The SREP command may be used with any IMAP4 server implementation that returns "SREP" as one of the supported capabilities in response to the CAPABILITY command.
            If the server does not indicate support for the SREP capability, the client MUST NOT use the SREP command.</t>
            <t>The SREP command may result in ambiguity, therefore the client MUST NOT send any commands before the result of the SREP command has been received, see Section 5.5 in [IMAP].</t>
            <t>The command MAY be issued on one or more messages at a time, in the currently selected mailbox.</t>
            <t>The command MAY be extended in the future with new parameters (actions, directives, reference types, etc).
            Servers MUST be able to recognize parameters unknown to them and respond with a BAD response in case they encounter such a parameter.</t>
			<section anchor="Directives" title="Directives">
                <t>The directive argument tells the server whether a message is being reported as a spam, or, it is being reported as no longer a spam. The SREP command MUST include the directive.
                To report a spam, the directive MUST be SET.
                To report that a message is no longer considered to be a spam, the directive MUST be CLEAR.</t>
                <t>
                Extensions are permitted, as defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="AbuseTypes" title="Abuse types">
                <t>The client may have additional information about the spam regarding the nature of the abuse.
                When such information is available, the client SHOULD include the abuse type argument in the request.
                When such information is not available, the client MUST omit the abuse type argument from the request.
                When the directive argument is CLEAR, the client MUST omit the abuse type argument from the request.
                This specification defines the following abuse types:
                </t>
                <t>
                    <list style="numbers">
                        <t>Phishing (forgery, link manipulation, etc.): an attempt to divulge information from the recipient by masquerading the sender and/or the content(s) of the message as a trustworthy form of communication.</t>
                        <t>Malware (virus, spyware, etc.): a malicious piece of software code embedded or attached to the message specifically designed to disrupt normal operation, gather sensitive information, gain unauthorized access, and/or perform other abusive behavior upon execution.</t>
                    </list>
                </t>
                <t>
                Extensions are permitted, as defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="References" title="References">
                <t>The reference argument consists of a reference type and a reference value.
                In general, the reference type MUST indicate the format of the reference while the reference value MUST contain a value corresponding to the indicated reference format.
                To use a unique identifier specified in <xref target="IMAP4"/>, the reference type MUST be UID and the reference value MUST be a number expressing the unique identifier of the message.
                To use a sequence set specified in <xref target="IMAP4"/>, the reference type MUST be SEQ and the reference value MUST be sequence numbers corresponding to the specified message sequence number set.
                To use an authorized URL specified in <xref target="URLAUTH"/>, the reference type MUST be URLAUTH and the reference value MUST be an URLAUTH-authorized URL, authorizing the entire message.
                </t>
                <t>
                Extensions are permitted, as defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="PartIDs" title="Part identifiers">
                <t>When the reference identifies one and only one message, the list of part identifiers MAY be included to improve the accuracy of spam detection.
                When the reference identifies more than one message, the list of part identifiers MUST be omitted.</t>

                <t>The list of part identifiers is a parenthesized list of part identifiers.
                Part identifiers MAY identify header fields or bodies.
                Header field identifiers MUST be prefixed with the word 'header' and the dot ('.') character MUST be used as the separator character.
                Header fields MUST be identified by the name of the header field.</t>
                <t>Example:
                    <list>
                        <t>The 'From' header field is identified as 'header.from'.</t>
                    </list>
                </t>
                <t>Body identifiers MUST be prefixed with the word 'body' and the dot ('.') character MUST be used as the separator character.
                Bodies MUST be identified by their positions within the message hierarcy, where the first position is 1 and the main level is 1.
                To refer the entire body of a message (or all bodies of a multipart message), the separator character, the position MUST be omitted.</t>
                <t>Examples:
                    <list>
                        <t>- The entire body of a message (or all bodies of a multipart message) is identified as 'body'.</t>
                        <t>- Considering a simple multipart message, the part following the first boundary is identified as 'body.1'.</t>
                        <t>- Considering a multipart message that includes an email attachment following the second boundary, and the email attachment containing text following the first boundary, the text within the email message is identified as 'body.2.1'.</t>
                    </list>
                The formal syntax of the part-id-list is defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="RequestAction" title="Request Action">
                <t>The request action argument explicitly tells the server what to do with the the message.
                To request a specific action from the server explicitly, the SREP command MUST include the request action argument.
                To not request a specific action, the SREP command MUST NOT include the request action argument; in this case, the server MUST decide the course of action.
                The client MAY specify either one of the following actions:
                    <list>
                        <t>- The KEYWORD the client requests that only keyword(s) should be added to the message. The server MUST add the appropriate keyword.</t>
                        <t>- The RELOCATE the client requests that the message should be relocated. The server MUST relocate the message by copying the message to the destination mailbox removing the original as if another connected client requested this action.</t>
                        <t>- The DELETE the client requests that the message should be deleted. The server MUST delete the message as if another client performed this action.</t>
                    </list>
                The server MUST ignore the destination mailbox in case it is nil, or, the request action is KEYWORD or DELETE.
                It is assumed that the server is pre-configured with the location where user's spam messages are stored. If the server is not configured with such information and the destination mailbox in a RELOCATE action is nil, or, destination mailbox in a RELOCATE action is otherwise inaccessible to the user (does not exist, insufficient permission, etc) the the server MUST reject the request (see BAD response in <xref target="Responses"/>).
                NOTE: While the DELETE action does not seem appropriate in case the directive argument is CLEAR, it is permitted.
                The formal syntax of the request action argument is defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="Responses" title="Responses and Results">
                <t>The SREP command MAY result in system flag changes, keyword changes, message relocation, message removal, or a combination of these.</t>
                <t>The result of the command MUST be either OK, NO or BAD:
                    <list>
                        <t>- The OK result MUST be returned only in case the server parsed and completed the command successfully.</t>
                        <t>- The NO result MUST be returned only in case the server parsed the command successfully, but there is a problem with the referenced message(s) that prevents the server from completing the requested actions, such as one or more messages do not exist on the server, one or more messages are not properly authorized by URLAUTH, etc.</t>
                        <t>- The BAD result MUST be returned only in case the server cannot parse the command, or a configuration error is preventing the server from completing the requested actions.</t>
                    </list>
                </t>
                <t>When the result is OK, the response to a SET directive MUST be either KEYWORD, RELOCATE, RELOCATED, DELETE, or DELETED.</t>
                <t>When the result is OK, the response to a CLEAR directive MUST be either KEYWORD, RELOCATE, or  RELOCATED.</t>
                <t>The server responses are:
                    <list>
                        <t>- The KEYWORD response occurs in case this specific action has been explicitly requested by the client, or, in case the server decided that only the keywords should be updated either because it does not wish to give any recommendation to the client (RELOCATE or DELETE), or, because it does not have sufficient information either internally, or, from the spam aggregator service that it is configured to use.</t>
                        <t>- The RELOCATE response occurs in case the server decided that the message should be relocated, however leaves this action to the client. The client MAY decide what to do with the message.</t>
                        <t>- The RELOCATED response occurs in case this specific action has been explicitly requested by the client, or, in case the server decided that the message should be relocated and it performed relocation of the message to the appropriate location before the response was sent. The server MUST relocate the message by copying the message to the appropriate location and removing the original as if another connected client requested this action.</t>
                        <t>- The DELETE response occurs in case the server decided that the message should be deleted, however leaves this action to the client. The client MAY decide what to do with the message.</t>
                        <t>- The DELETED response occurs in case this specific action has been explicitly requested by the client, or, in case the server decided that the message should be deleted, and performed deletion of the message before the response was sent. The server MUST delete the message as if another client performed this action.</t>
                    </list>
                </t>
                <t>
                    The KEYWORD, RELOCATE and DELETE responses MUST include the list of flags/keywords that have been added or removed.
                    Added keywords MUST be prefixed with a plus sign ('+'), while removed keywords MUST be prefixed with a minus sign ('-').
                    The RELOCATED and DELETED responses MUST NOT include keywords.
                    The formal syntax of the actions is defined in <xref target="FormalSyntax"/>.
                </t>
			</section>
			<section anchor="FormalSyntax" title="Formal Syntax">
                <t>
                This document extends the formal syntax defined in <xref target="IMAP4"/> using the Augmented Backus-Naur Form (ABNF) notation specified in <xref target="ABNF"/>.
                Note: all string literals are case insensitive.
                </t>
                    <figure>
                        <preamble/>
<artwork><![CDATA[
srep-command        = "SREP" SP directive *1(SP abuse-type) SP \
                      reference *1(SP part-id-list) \
                      *1(SP request-action)
directive           = "SET" / "CLEAR" / directive-ext
directive-ext       = atom
                      ; It is not required that new directives
                      ; begin with "X-", see [XDASH]
abuse-type          = "AT" SP abuse-type-id
abuse-type-id       = 1*DIGIT
                      ; no leading zeroes or signs
                      ; New abuse types MUST be registered with
                      ; IANA as standard or standards-track
reference           = reference-type SP reference-value
reference-type      = "UID" / "SEQ" / "URLAUTH" / reference-type-ext
reference-type-ext  = atom
                      ; It is not required that new reference types
                      ; begin with "X-", see [XDASH]
reference-value     = uniqueid /           ; see [IMAP]
                      sequence-set /       ; see [IMAP]
                      authorized-url /     ; see [URLAUTH]
                      reference-value-ext
authorized-url      = authimapurlfull /    ; see [URLAUTH]
                      authimapurlrump      ; see [URLAUTH]
reference-value-ext = atom
                      ; New reference values MUST correspond to
                      ; reference-type-ext
part-id-list        = "(" part-id *(SP part-id) ")"
part-id             = header-id / body-id
header-id           = "header." header-fld-name
                      ; see header-fld-name in [IMAP]
body-id             = "body" *("." 1*DIGIT)
                      ; no leading zeroes or signs in numberic part
request-action      = "DO" SP req-action *1(SP destination-box)
req-action          = "KEYWORD" /
                      "RELOCATE" /
                      "DELETE"
destination-box     = mailbox / nil
resp-text-code      = resp-spam-actions    ; responses specific to
                                           ; this command, extending
                                           ; existing resp-text-code
                                           ; defined in [IMAP]
resp-spam-actions   = "KEYWORD" flag-list / ; see flag-list in [IMAP]
                      "RELOCATE" flag-list /; see flag-list in [IMAP]
                      "RELOCATED" /
                      "DELETE" flag-list /  ; see flag-list in [IMAP]
                      "DELETED"
]]></artwork>
                        <postamble/>
                    </figure>
			</section>

			<section title="Examples to report spam">
                <t>Report single message as spam; no identified parts; server only flags the message and hints that it should be moved:
                    <list>
                        <t>C: Z020 SREP SET SEQ 10</t>
                        <t>S: Z020 OK [RELOCATE +$OMAEVVM10-spam-user-identified] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as spam; header and body identified; server adds the appropriate flags and hints that it should be deleted:
                    <list>
                        <t>C: Z040 SREP SET SEQ 9 (header.from body.2)</t>
                        <t>S: Z040 OK [DELETE (+$OMAEVVM10-spam-user-identified-field.from +$OMAEVVM10-spam-user-identified-body.2)] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as spam; no identified parts; server moves the message (may clear/set flags too, but that is irrelevant because the client will need to reconcile anyway).
                    <list>
                        <t>C: Z060 SREP SET SEQ 8</t>
                        <t>S: Z060 OK [RELOCATED] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as spam; no identified parts; server deletes the message.
                    <list>
                        <t>C: Z080 SREP SET SEQ 6</t>
                        <t>S: Z080 OK [DELETED] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as spam; no identified parts; client requests explicitly to delete the message, server deletes the message as the client requested.
                    <list>
                        <t>C: Z100 SREP SET SEQ 4 DO DELETE NIL</t>
                        <t>S: Z100 OK [DELETED] SREP Completed.</t>
                    </list>
                </t>
    		</section>

			<section title="Examples to report messages as no longer spam">
                <t>Report single message as no longer spam; no identified parts; server only clears the appropriate flags from the message.
                    <list>
                        <t>C: Z020 SREP CLEAR SEQ 10</t>
                        <t>S: A020 OK [KEYWORD -$OMAEVVM10-spam-user-identified] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as no longer spam; earlier the header and body were identified as spam; the server clears the appropriate flags.
                    <list>
                        <t>C: Z040 SREP CLEAR SEQ 9</t>
                        <t>S: A040 OK [KEYWORD (-$OMAEVVM10-spam-user-identified-field.from -$OMAEVVM10-spam-user-identified-body.2)] SREP Completed.</t>
                    </list>
                </t>
                <t>Report single message as no longer spam; no identified parts; server moves the message (may set/clear flags, too but that is irrelevant because the client will need to reconcile anyway).
                    <list>
                        <t>C: Z060 SREP CLEAR SEQ 8</t>
                        <t>S: A060 OK [RELOCATED] SREP Completed.</t>
                    </list>
                </t>
    		</section>
			<section title="Example flows">
    			<t>The new command specified in this document allows a client to save significant bandwidth by sending only reference(s) instead of full-blown spam reports that most if the time include the entire message.
    			By doing so, the responsibility of recording metadata and handling the message designated as spam has been shifted to the server side.
                It is not the purpose of IMAP servers to deal with various aspects of spam reporting, such as creating and storing metadata, making the metadata available when new messages arrive, etc.
                IMAP servers should take advantage of an aggregator service and perform the exchanges related to spam reporting in the background, delegating the work to the aggregator service.
                Spam aggregator services are expected to collect and store metadata in very large volumes, evaluate the stored metadata and support queries to decide whether an incoming message is a spam or not.
                Open Mobile Alliance (OMA) specified the <xref target="OMA-SPAMREP"/> enabler release that supports deploying such aggregator services.
                </t>
                <t>The flows in the following sub-sections illustrate informative examples for various scenarios that may be triggered by the SREP command defined in <xref target="Command"/>.
                </t>
    			<section title="The server simply flags a message">
                    <t>
                        <list style="numbers">
                            <t>The user finds a voicemail that he/she deems to be spam.</t>
                            <t>He invokes the appropriate functions on the client to report the message as spam.</t>
                            <t>The client reports the spam using the appropriate command to the server: SREP SET SEQ 10</t>
                            <t>The server prepares the message referenced by the command for inquiry.</t>
                            <t>The server queries its internal database for precedence.</t>
                            <t>The server gets a 'not found' response from the internal database.</t>
                            <t>The server queries an external database for precedence, such as an aggregator service based on <xref target="OMA-SPAMREP"/>.</t>
                            <t>The server gets a 'not found' response from the external database as well.</t>
                            <t>No records of the message are found; the server prepares the message to be recorded for future reference.</t>
                            <t>The server reports the message as spam to its internal database.</t>
                            <t>The server gets an 'ok' response from the internal database.</t>
                            <t>The server reports the message as spam to external database, such as an aggregator service based on <xref target="OMA-SPAMREP"/>.</t>
                            <t>The server gets an 'ok' response from the external database.</t>
                            <t>The server checks the user's preferences and finds no guidance about handing the spam, so</t>
                            <t>... it checks the service provider policies - and yet again, finds no instructions.</t>
                            <t>In the end, lacking any sort of guidance, the end the server stores a keyword for the message, and</t>
                            <t>... informs that client about that using the appropriate response: OK [KEYWORD +$OMAEVVM10-spam-user-identified] Completed.</t>
                            <t>The client updates its representation of the voicemail repository and</t>
                            <t>... the message turns red on the user interface.</t>
                            <t>The user cheers.</t>
                        </list>
                        <figure>
                            <preamble/>
<artwork><![CDATA[
User     Client     Server     Server    Aggregator
                                 DB      Service DB
 |----      |          |          |          |
 |    | 1   |          |          |          |
 |<---      |          |          |          |
 |    2     |          |          |          |
 |--------->|    3     |          |          |
 |          |--------->|          |          |
 |          |          |----      |          |
 |          |          |    | 4   |          |
 |          |          |<---      |          |
 |          |          |    5     |          |
 |          |          |--------->|          |
 |          |          |    6     |          |
 |          |          |<---------|          |
 |          |          |          7          |
 |          |          |-------------------->|
 |          |          |          8          |
 |          |          |<--------------------|
 |          |          |----      |          |
 |          |          |    | 9   |          |
 |          |          |<---      |          |
 |          |          |    10    |          |
 |          |          |--------->|          |
 |          |          |    11    |          |
 |          |          |<---------|          |
 |          |          |          12         |
 |          |          |-------------------->|
 |          |          |          13         |
 |          |          |<--------------------|
 |          |          |----      |          |
 |          |          |    | 14  |          |
 |          |          |<---      |          |
 |          |          |----      |          |
 |          |          |    | 15  |          |
 |          |          |<---      |          |
 |          |          |----      |          |
 |          |          |    | 16  |          |
 |          |    17    |<---      |          |
 |          |<---------|          |          |
 |          |----      |          |          |
 |          |    |  18 |          |          |
 |    19    |<---      |          |          |
 |<---------|          |          |          |
 |----      |          |          |          |
 |    | 20  |          |          |          |
 |<---      |          |          |          |
 |          |          |          |          |
 ]]></artwork>
                            <postamble/>
                        </figure>
                    </t>
        		</section>
    		</section>
  		</section>
        <section anchor="Acknowledgements" title="Acknowledgements">
        	<t>The author acknowledges and appreciates the work and comments from Josh Soref, Gaelle Martin-Cocher, Suresh Chitturi, Clara Severino and Christophe Le Thierry D'Ennequin.
            </t>
        </section>
		<section anchor="IANA" title="IANA Considerations">
			<t>This document constitutes registration of the SREP capability in the imap4-capabilities registry.
            </t>
            <t>SREP command directives are registered by publishing a standards track or IESG-approved experimental RFC.
            The registry is currently located at:
            http://www.iana.org/assignments/spam-directive-registry
            </t>
            <t>SREP command abuse types are registered by publishing a standards track or IESG-approved experimental RFC.
            The registry is currently located at:
            http://www.iana.org/assignments/spam-abuse-type-registry
            </t>
            <t>SREP command reference types are registered by publishing a standards track or IESG-approved experimental RFC.
            The registry is currently located at:
            http://www.iana.org/assignments/spam-reference-type-registry
            </t>
            <t>All registries are case insensitive.
            </t>
			<t>This document constitutes the following registrations with IANA:
                <figure>
                    <preamble/>
<artwork><![CDATA[
      IMAP SREP Directive Registry

      Directive           Reference
      ---------           ---------
      SET                 [this document]
      CLEAR               [this document]
 ]]></artwork>
                    <postamble/>
                </figure>
                <figure>
                    <preamble/>
<artwork><![CDATA[
      IMAP SREP Abuse Type Registry

      Abuse Type                       Reference
      ----------                       ---------
      1 - Phishing                     [this document]
      2 - Malware                      [this document]
 ]]></artwork>
                    <postamble/>
                </figure>
                <figure>
                    <preamble/>
<artwork><![CDATA[
      IMAP SREP Reference Type Registry

      Reference Type      Reference
      --------------      ---------------
      UID                 [this document]
      SEQ                 [this document]
      URLAUTH             [this document]
 ]]></artwork>
                    <postamble/>
                </figure>
            </t>
 			<t>Note to RFC Editor: replace "[this document]" with the RFC number before publication.</t>
		</section>
		<section anchor="Security" title="Security Considerations">
            <t>When an aggregator service is actively involved in a deployment, the service provider MUST ensure that:
            <list>
                <t>- a mutual trust relation is in place between the IMAP server and the aggregator service, and,</t>
                <t>- the aggregator service does not leak any information.</t>
            </list>
			</t>
			<t>See additional security considerations in <xref target="IMAP4"/> and <xref target="URLAUTH"/>, respectively.
			</t>
		</section>
	</middle>
	<back>
		<references title="Normative References">
            &rfc2119;
            <reference anchor="ABNF">
                <front>
                    <title abbrev="ABNF">Augmented BNF for Syntax Specifications: ABNF</title>
                    <author initials="D." surname="Crocker" fullname="Dave Crocker">
                        <organization>Brandenburg InternetWorking</organization>
                        <address>
                            <postal>
                                <street>675 Spruce Dr.</street>
                                <city>Sunnyvale</city>
                                <region>CA</region>
                                <code>94086</code>
                                <country>US</country>
                            </postal>
                            <email>dcrocker@bbiw.net</email>
                        </address>
                    </author>
                    <author initials="P." surname="Overell" fullname="Paul Overell">
                        <organization>THUS plc.</organization>
                        <address>
                            <postal>
                                <street>99 Berkeley Street</street>
                                <city>Glasgow</city>
                                <code>G37HR</code>
                                <country>UK</country>
                            </postal>
                            <email>dcrocker@bbiw.net</email>
                        </address>
                    </author>
                    <date year="2008" month="January"/>
                </front>
                <seriesInfo name="RFC" value="5234"/>
                <format type="HTML" target="http://tools.ietf.org/html/rfc5234"/>
            </reference>
            <reference anchor="IMAP4">
                <front>
                    <title abbrev="IMAP - VERSION 4rev1">INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1</title>
                    <author initials="M." surname="Crispin" fullname="Mark R. Crispin">
                        <organization>Networks and Distributed Computing, University of Washington</organization>
                        <address>
                            <postal>
                                <street>15th Avenue NE</street>
                                <city>Seattle</city>
                                <region>WA</region>
                                <code>4545</code>
                                <country>US</country>
                            </postal>
                            <email>MRC@CAC.Washington.EDU</email>
                        </address>
                    </author>
                    <date year="2003" month="March"/>
                </front>
                <seriesInfo name="RFC" value="3501"/>
                <format type="HTML" target="http://tools.ietf.org/html/rfc3501"/>
            </reference>
            <reference anchor="URLAUTH">
                <front>
                    <title abbrev="IMAP URLAUTH Extension">Internet Message Access Protocol (IMAP) - URLAUTH Extension</title>
                    <author initials="M." surname="Crispin" fullname="Mark R. Crispin">
                        <organization>Networks and Distributed Computing, University of Washington</organization>
                        <address>
                            <postal>
                                <street>15th Avenue NE</street>
                                <city>Seattle</city>
                                <region>WA</region>
                                <code>4545</code>
                                <country>US</country>
                            </postal>
                            <email>MRC@CAC.Washington.EDU</email>
                        </address>
                    </author>
                    <date year="2006" month="May"/>
                </front>
                <seriesInfo name="RFC" value="4467"/>
                <format type="HTML" target="http://tools.ietf.org/html/rfc4467"/>
            </reference>
            <reference anchor="XDASH">
                <front>
                    <title abbrev="XDASH">Deprecating the "X-" Prefix and Similar Constructs in Application Protocols</title>
                    <author initials="P." surname="Saint-Andre" fullname="Peter Saint-Andre">
                        <organization>Cisco Systems, Inc.</organization>
                        <address>
                            <postal>
                                <street>1899 Wynkoop Street, Suite 600</street>
                                <city>Denver</city>
                                <region>CO</region>
                                <code>80202</code>
                                <country>US</country>
                            </postal>
                            <email>psaintan@cisco.com</email>
                        </address>
                    </author>
                    <author initials="D." surname="Crocker" fullname="Dave Crocker">
                        <organization>Brandenburg InternetWorking</organization>
                        <address>
                            <postal>
                                <street>675 Spruce Dr.</street>
                                <city>Sunnyvale</city>
                                <region>CA</region>
                                <code>94086</code>
                                <country>US</country>
                            </postal>
                            <email>dcrocker@bbiw.net</email>
                        </address>
                    </author>
                    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
                        <organization>Rackspace</organization>
                        <address>
                            <email>mnot@mnot.net</email>
                        </address>
                    </author>
                    <date year="2012" month="June"/>
                </front>
                <seriesInfo name="RFC" value="6648"/>
                <format type="HTML" target="http://tools.ietf.org/html/rfc6648"/>
            </reference>
		</references>

		<references title="Informative References">		
            <reference anchor="REPORT">
                <front>
                    <title abbrev="Multipart/Report content type">The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages</title>
                    <author initials="M." surname="Kucherawy" fullname="Murray S. Kucherawy">
                        <organization>Cloudmark</organization>
                        <address>
                            <postal>
                                <street>128 King St., 2nd Floor</street>
                                <city>San Francisco</city>
                                <region>CA</region>
                                <code>94107</code>
                                <country>US</country>
                            </postal>
                            <email>msk@cloudmark.com</email>
                        </address>
                    </author>
                    <date year="2012" month="January"/>
                </front>
                <seriesInfo name="RFC" value="6522"/>
                <format type="HTML" target="http://tools.ietf.org/html/rfc6522"/>
            </reference>
            <reference anchor="OLD-REPORT">
                <front>
                    <title abbrev="Multipart/Report content type">The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages</title>
                    <author initials="G." surname="Vaudreuil" fullname="Gregory M. Vaudreuil">
                        <organization>Lucent Technologies</organization>
                        <address>
                            <postal>
                                <street>7291 Williamson Rd</street>
                                <city>Dallas</city>
                                <region>TX</region>
                                <code>75214</code>
                                <country>US</country>
                            </postal>
                            <email>GregV@ieee.org</email>
                        </address>
                    </author>
                    <date year="2003" month="January"/>
                </front>
                <seriesInfo name="RFC" value="3462"/>
                <format type="TXT" octets="12186" target="http://tools.ietf.org/rfc/rfc3462.txt"/>
            </reference>
            <reference anchor="OMA-SPAMREP">
                <front>
                    <title abbrev="OMA SpamRep 1.0">Mobile Spam Reporting 1.0, OMA-ERP-SpamRep-V1_0</title>
                    <author>
                        <organization>Open Mobile Alliance</organization>
                    </author>
                    <date/>
                </front>
            </reference>
		</references>
	</back>
</rfc>
