Internet-Draft Structured vacation notices October 2023
Happel Expires 25 April 2024 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-happel-structured-vacation-notices-00
Published:
Intended Status:
Informational
Expires:
Author:
H.-J. Happel
audriga GmbH

Structured vacation notices

Abstract

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

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 25 April 2024.

1. Introduction

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

The message is typically sent automatically by a MUA. Its content is written by the absentee in advance. In addition, many MUAs allow to specify a time period during which incoming messages should be automatically answered with a vacation notice.

Vacation notices are not standardized as such. [RFC5230] specifies an extension to the Sieve email filtering language. While vacation notices are partly formalized on the side of the absentee (e.g., start and end date), they consist of human-readable language only for their recipient.

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.happel-structured-email-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.

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 and standards like [RFC5230] also allow to specify a time range during which a vacation notice should be sent.

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: This is a preliminary specification only. Do not use in practice.
Open issues
* "Change of address" use case [RFC3834]

4. Use cases

For the use cases, we distinguish the absentee, willing to answer incoming messages with a vacation notice, and commonication 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 vacation notice email.

In systems using the Sieve "vacation" extension ([RFC5230]), this can be done manually, using the parameter to include MIME content (":mime").

4.1.2. Outgoing preemptive vaction notice

Machine-readable markup allows absentees to also include structured vacation notices in regular messages sent before or during their absence.

4.2. Communication partner

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.

4.2.2. Incoming preemtive vacation notice

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

When receiving such messages, the MUA of the communication partner MAY extract and store the structured vacation notice and MAY highlight 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 notify its user about this upcoming or ongoing absence.

5. 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".

5.1. Structured Vacation Notice plugin for Roundcube Webmail

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

6. 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:

7. Privacy considerations

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

For this reason, absentees typically are free to decide how much information they expose in the writte n 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]).

8. IANA Considerations

This document has no IANA actions at this time.

9. Appendix (vCard properties)

The following vCard "X-Properties" are currently used for internal storage of structured vacation notice data for external contacts of the mailbox user.

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

10. Informative References

[JSONLD]
W3C JSON-LD Working Group, "JSON-LD 1.1", <https://www.w3.org/TR/json-ld/>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3834]
Moore, K., "Recommendations for Automatic Responses to Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, , <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, , <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, , <https://www.rfc-editor.org/info/rfc5230>.
[RFC5322]
Resnick, P., Ed., "Internet Message Format", RFC 5322, DOI 10.17487/RFC5322, , <https://www.rfc-editor.org/info/rfc5322>.
[RFC5598]
Crocker, D., "Internet Mail Architecture", RFC 5598, DOI 10.17487/RFC5598, , <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, , <https://www.rfc-editor.org/info/rfc6133>.
[RFC6134]
Melnikov, A. and B. Leiba, "Sieve Extension: Externally Stored Lists", RFC 6134, DOI 10.17487/RFC6134, , <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, , <https://www.rfc-editor.org/info/rfc7942>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <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