Skip to main content

Structured vacation notices
draft-happel-sml-structured-vacation-notices-01

Document Type Active Internet-Draft (individual)
Author Hans-Jörg Happel
Last updated 2024-07-08
Replaces draft-happel-structured-vacation-notices
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-happel-sml-structured-vacation-notices-01
SML                                                         H.-J. Happel
Internet-Draft                                              audriga GmbH
Intended status: Standards Track                             8 July 2024
Expires: 9 January 2025

                      Structured vacation notices
            draft-happel-sml-structured-vacation-notices-01

Abstract

   This document describes a machine-readable format for vacation notice
   messages.  It is supposed to be used in conjunction with
   conventional, human-readable vacation notices.

   Structured vacation notices are based on the "structured email"
   specifications defined in [I-D.ietf-sml-structured-email-01] and
   related drafts.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 9 January 2025.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

Happel                   Expires 9 January 2025                 [Page 1]
Internet-Draft         Structured vacation notices             July 2024

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Conventions Used in This Document . . . . . . . . . . . . . .   3
   3.  Data model  . . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Use cases . . . . . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Absentee  . . . . . . . . . . . . . . . . . . . . . . . .   5
       4.1.1.  Outgoing vacation notice  . . . . . . . . . . . . . .   5
       4.1.2.  Outgoing preemptive vaction notice  . . . . . . . . .   5
     4.2.  Communication partner . . . . . . . . . . . . . . . . . .   5
       4.2.1.  Incoming vacation notice  . . . . . . . . . . . . . .   6
       4.2.2.  Incoming preemptive vacation notice . . . . . . . . .   6
       4.2.3.  Message composition . . . . . . . . . . . . . . . . .   6
   5.  Related use cases . . . . . . . . . . . . . . . . . . . . . .   6
     5.1.  Change of address . . . . . . . . . . . . . . . . . . . .   6
     5.2.  New contact data  . . . . . . . . . . . . . . . . . . . .   7
   6.  Implementation guidance . . . . . . . . . . . . . . . . . . .   7
     6.1.  Sending . . . . . . . . . . . . . . . . . . . . . . . . .   7
       6.1.1.  Leave structured vacation notices optional  . . . . .   7
       6.1.2.  Provide alternative representations . . . . . . . . .   7
     6.2.  Processing  . . . . . . . . . . . . . . . . . . . . . . .   7
       6.2.1.  Igore past time ranges  . . . . . . . . . . . . . . .   7
       6.2.2.  Prefer latest vacation time range . . . . . . . . . .   7
       6.2.3.  Strip when forwarding . . . . . . . . . . . . . . . .   7
   7.  Implementation status . . . . . . . . . . . . . . . . . . . .   8
     7.1.  Structured Vacation Notice plugin for Roundcube
           Webmail . . . . . . . . . . . . . . . . . . . . . . . . .   8
   8.  Security considerations . . . . . . . . . . . . . . . . . . .   8
   9.  Privacy considerations  . . . . . . . . . . . . . . . . . . .   8
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   11. Appendix (vCard properties) . . . . . . . . . . . . . . . . .   9
   12. Informative References  . . . . . . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  11

Happel                   Expires 9 January 2025                 [Page 2]
Internet-Draft         Structured vacation notices             July 2024

1.  Introduction

   A "vacation notice" (also known as "out-of-office notice"
   [RFC3834][RFC5598] or "-reply") is a special type of automated
   message which is sent in response to incoming mail, if the recipient
   is absent or otherwise unable to answer immediately.

   Its content is written by the absentee in advance.  The MUA will use
   it in automatic replies to incoming email messages, based on
   conditions set by the user.  The most commonly used condition,
   supported by many MUAs is the time period during which incoming
   messages should be automatically answered with a vacation notice.

   Vacation notices are not fully standardized as such.  A partial,
   implicit specification is contained in [RFC5230], which specifies an
   extension to the Sieve email filtering language.

   On the side of the absentee, vacation notices might be partially
   formalized, e.g., with respect to the time period mentioned before.
   For the receipient however, vacation notices only consist of human-
   readable language.

   The goal of this specification is to allow absentees to include a
   machine-readable version of the vacation notice, such that
   reicipients can be assisted by software when dealing with vacation
   notices.

   While this specification may be used stand-alone, is aims to be
   compliant to the "structured email" specification ([I-D.ietf-sml-
   structured-email-01]) and its trust and security recommendations ([I-
   D.happel-structured-email-trust-00]).

2.  Conventions Used in This Document

   The term "message" refers to "electronic mail messages" or "emails"
   as specified in [RFC5322].

   The term "Message User Agent" (MUA) denotes an email client
   application as per [RFC5598].  Based on the role of the communication
   partners, one can further distiguish into "Recipient MUA" (rMUA) and
   "Author MUA" (aMUA).

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

Happel                   Expires 9 January 2025                 [Page 3]
Internet-Draft         Structured vacation notices             July 2024

3.  Data model

   The minimum data for a vacation notice is the actual notice content
   as specified by the absentee.  It might be as short as "I am
   currently out of office".

   Many systems also allow to specify a time range during which a
   vacation notice should be sent.  As for the Sieve vacation extension
   ([RFC5230]), it is often used in conjuction with a currentdate test
   ([RFC5260]) to achieve this.

   Notably, this time range must not exactly match the actual absence
   time, even though this is mostly the case in practice.

   Vacation notice content may also contain information about if a
   message is automatically forwarded to a replacement person, or
   details about replacement persons to contact.

   The following snippet shows a potential extension to the [SchemaOrg]
   vocabulary in [JSONLD] format.

   {
           "@context": "https://schema.org",
           "@type": "OutOfOffice",
           "start": "2023-08-15",
           "end": "2023-08-22",
           "isForwarded": false,
           "replacement": [
               {
                   "@type": "OutOfOfficeReplacement",
                   "name": "John Doe",
                   "topic": "Project A",
                   "email": "john@doe.com",
                   "phone": "+1234567890"
               },
               {
                   "@type": "OutOfOfficeReplacement",
                   "name": "Jane Doe",
                   "topic": "Project B",
                   "email": "jane@doe.com",
                   "phone": "+9876543210"
               }
           ],
           "note": "Some text"
   }

Note that this is a preliminary specification only. Do not use in practice.

Happel                   Expires 9 January 2025                 [Page 4]
Internet-Draft         Structured vacation notices             July 2024

For discussion, see also:
https://github.com/hhappel/draft-happel-sml-structured-vacation-notices/issues/1

4.  Use cases

   For the use cases, we distinguish the absentee, willing to answer
   incoming messages with a vacation notice, and communication
   partner(s), which want to send messages to the absentee.

4.1.  Absentee

   The absentee can make use of structured vacation notices in common
   vacation notice autoreplies but also in regular messages.

4.1.1.  Outgoing vacation notice

   For including a structured vacation notice, a JSON-LD snippet using
   the OutOfOffice-type defined in the previous section needs to be
   embedded in the text/html representation of the vacation notice
   email.

   In systems using the Sieve "vacation" extension ([RFC5230]), text/
   html body parts are supported when using the parameter to include
   MIME content (:mime).

   If the user interface already allows to set date ranges, the
   structured vacation notice data may be added without extra user
   effort.

4.1.2.  Outgoing preemptive vaction notice

   Structured vacation notices can support a second use case, in which
   information can be preemptively added to regular outgoing email
   messages by the absentee.

   This may be helpful in three scenarios, if an absentee sends a
   message:

   *  _during_ her absence, to proactively inform communication partners
   *  _before_ her absence, communication partners can preemptively
      learn about the upcoming absence and take according actions
   *  _after_ her absence, communication partners could learn that the
      absentee is available again (in particular, if no initial absence
      end time was given, or if the´ (U+00B4) absence ended earlier than
      planned)

4.2.  Communication partner

Happel                   Expires 9 January 2025                 [Page 5]
Internet-Draft         Structured vacation notices             July 2024

4.2.1.  Incoming vacation notice

   If an incoming vacation notice contains structured vacation notice
   data, the MUA of the communication partner MAY extract and store this
   data.

   Since the MUA can make sense of the structured vacation notice, it
   MAY also employ various forms of user assistance at its own
   discretion, such as:

   *  Highlighting the absence in a special way
   *  Allowing the user to take certain actions (set a reminder, store
      to calendar, forward the message to a replacement person)
   *  Informing the user when trying to compose an email to a person
      known to be absent

4.2.2.  Incoming preemptive vacation notice

   As described before, the absentee may decide to add structured
   vacation notices in regular messages sent before or during her
   absence.

   When receiving such messages, the MUA of the communication partner
   MAY extract and store the structured vacation notice and MAY display
   the absence information.

4.2.3.  Message composition

   If a communication partner wants to send a message to a person, for
   which a structured vacation notice has been received earlier, the MUA
   MAY inform its user about this upcoming or ongoing absence.

5.  Related use cases

   There are some use cases which are somehow related to "vacation
   notices", mostly by providing automated messages about a certain
   status of the recipient.

   Those related use cases may be worth further consideration within the
   design space of this draft.

5.1.  Change of address

   As highlightd in [RFC3834], an automated response might also convey
   the fact that an email address has become obsolete or changed.

Happel                   Expires 9 January 2025                 [Page 6]
Internet-Draft         Structured vacation notices             July 2024

5.2.  New contact data

   Beyond the email addresses, senders sometimes highlight updated
   information in the signature of a message, such as:

   *  Updated postal address
   *  Updated phone number

6.  Implementation guidance

   The following points should be considered when implementing
   (structured) vacation notices from a sender and recipient-side
   processing perspective.

6.1.  Sending

6.1.1.  Leave structured vacation notices optional

   Adding structured data to a vacation notice should be left as a
   choice to the user.  A MUA SHOULD not add structured data to vacation
   notices without explicit coonsent or action of the user.

6.1.2.  Provide alternative representations

   A vacation notice including structured data should always include an
   alternative, human-readable version of the vacation notice using
   text/plain and/or text/html multipart/alternative body parts.

6.2.  Processing

6.2.1.  Igore past time ranges

   A MUA MUST ignore structured vacation notices with time ranges in the
   past.

6.2.2.  Prefer latest vacation time range

   If multiple structured vacation notices exist for a user, prefer the
   one from the most recently received message.

6.2.3.  Strip when forwarding

   In the case of preemptive structured vacation notices, strip the
   structured data from the message when it is forwarded to a third
   party by the user.

Happel                   Expires 9 January 2025                 [Page 7]
Internet-Draft         Structured vacation notices             July 2024

7.  Implementation status

   < RFC Editor: before publication please remove this section and the
   reference to [RFC7942] >

   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in [RFC7942].
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs.  Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features.  Readers are advised to note that other implementations may
   exist.

   According to [RFC7942], "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the implemented protocols more mature.
   It is up to the individual working groups to use this information as
   they see fit".

7.1.  Structured Vacation Notice plugin for Roundcube Webmail

   This draft is implemented in an open source plugin for the Roundcube
   Webmail system [RC-SVN], partly based on the Roundcube managesieve
   plugin.

8.  Security considerations

   In particular when using structured vacation notices in conjunction
   with the Sieve filtering language, the security considerations of the
   corresponding RFCs should be taken into account:

   *  Sieve base specification [RFC5228]
   *  Sieve Vacation extension [RFC5230]
   *  [I-D.happel-sml-structured-email-trust-00]

9.  Privacy considerations

   Vacation notices expose certain potentially sensitive information to
   third parties, such as absence times, absence reasons and
   organizational details (such as replacement staff and their contact
   information).

Happel                   Expires 9 January 2025                 [Page 8]
Internet-Draft         Structured vacation notices             July 2024

   For this reason, absentees typically are free to decide how much
   information they expose in the written text of their vacation notice.

   Accordingly, software systems SHOULD leave absentees the same level
   of freedom when adding structured vacation notices and e.g., not
   enforce the inclusion of certain information or even do so
   implicitly.

   Information exposure might also be limited by restricting the usage
   of structured vacation notices to certain communication partners
   (e.g., using address book information [RFC6134] as discussed in
   [RFC6133]).

10.  IANA Considerations

   This document has no IANA actions at this time.

11.  Appendix (vCard properties)

   The following vCard X-Properties are currently used by the [RC-SVN]
   implementation to store incoming structured vacation notice data of
   absentees.  I.e., if an email message with a structured vacation
   notice is processed, the implementation will lookup the absentee in
   the user's address book and store the absence information, if an
   address book entry was found.

   While this is mostly for internal data management in [RC-SVN],
   standardizing the vCard properties could be useful from a data
   portability perspective.

   Most X-Properties directly map to the example OutOfOffice JSON-LD
   snippet above, X-OOF-UPDATED was added to store the receiving date of
   the email message which contained the structured vacation notice.

   X-OOF-UPDATED:2023-10-01
   X-OOF-START:2023-10-01
   X-OOF-END:2023-11-01
   X-OOF-IS-FORWARDED:false
   X-OOF-REPLACEMENT:Jane Doe,Marketing,jane.doe@corp.com,+1234567-89
   X-OOF-REPLACEMENT:John Doe,Development,john.doe@corp.com,+1234567-99
   X-OOF-NOTE:I am out of office please reach my replacement instead

12.  Informative References

   [JSONLD]   W3C JSON-LD Working Group, "JSON-LD 1.1",
              <https://www.w3.org/TR/json-ld/>.

Happel                   Expires 9 January 2025                 [Page 9]
Internet-Draft         Structured vacation notices             July 2024

   [RC-SVN]   audriga GmbH, "Structured Vacation Notice plugin for
              Roundcube Webmail", <https://github.com/audriga/roundcube-
              structured-vacation-notice/>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3834]  Moore, K., "Recommendations for Automatic Responses to
              Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August
              2004, <https://www.rfc-editor.org/info/rfc3834>.

   [RFC5228]  Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email
              Filtering Language", RFC 5228, DOI 10.17487/RFC5228,
              January 2008, <https://www.rfc-editor.org/info/rfc5228>.

   [RFC5230]  Showalter, T. and N. Freed, Ed., "Sieve Email Filtering:
              Vacation Extension", RFC 5230, DOI 10.17487/RFC5230,
              January 2008, <https://www.rfc-editor.org/info/rfc5230>.

   [RFC5260]  Freed, N., "Sieve Email Filtering: Date and Index
              Extensions", RFC 5260, DOI 10.17487/RFC5260, July 2008,
              <https://www.rfc-editor.org/info/rfc5260>.

   [RFC5322]  Resnick, P., Ed., "Internet Message Format", RFC 5322,
              DOI 10.17487/RFC5322, October 2008,
              <https://www.rfc-editor.org/info/rfc5322>.

   [RFC5598]  Crocker, D., "Internet Mail Architecture", RFC 5598,
              DOI 10.17487/RFC5598, July 2009,
              <https://www.rfc-editor.org/info/rfc5598>.

   [RFC6133]  George, R., Leiba, B., and A. Melnikov, "Sieve Email
              Filtering: Use of Presence Information with Auto-Responder
              Functionality", RFC 6133, DOI 10.17487/RFC6133, July 2011,
              <https://www.rfc-editor.org/info/rfc6133>.

   [RFC6134]  Melnikov, A. and B. Leiba, "Sieve Extension: Externally
              Stored Lists", RFC 6134, DOI 10.17487/RFC6134, July 2011,
              <https://www.rfc-editor.org/info/rfc6134>.

   [RFC7942]  Sheffer, Y. and A. Farrel, "Improving Awareness of Running
              Code: The Implementation Status Section", BCP 205,
              RFC 7942, DOI 10.17487/RFC7942, July 2016,
              <https://www.rfc-editor.org/info/rfc7942>.

Happel                   Expires 9 January 2025                [Page 10]
Internet-Draft         Structured vacation notices             July 2024

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [SchemaOrg]
              W3C Schema.org Community Group, "Schema.org",
              <https://schema.org/>.

Author's Address

   Hans-Joerg Happel
   audriga GmbH
   Email: happel@audriga.com
   URI:   https://www.audriga.com

Happel                   Expires 9 January 2025                [Page 11]