SML H.-J. Happel
Internet-Draft audriga GmbH
Intended status: Standards Track 9 January 2025
Expires: 13 July 2025
Structured vacation notices
draft-ietf-sml-structured-vacation-notices-00
Abstract
This document describes a machine-readable format for vacation
notices in email messages. It is supposed to be used in conjunction
with conventional, human-readable vacation notices.
Structured vacation notices are based on the forthcoming "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 13 July 2025.
Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved.
Happel Expires 13 July 2025 [Page 1]
Internet-Draft Structured vacation notices January 2025
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 . . . . . . . . . . . . . . 6
4.1.2. Outgoing preemptive vaction notice . . . . . . . . . 6
4.2. Communication partner . . . . . . . . . . . . . . . . . . 6
4.2.1. Incoming vacation notice . . . . . . . . . . . . . . 6
4.2.2. Incoming preemptive vacation notice . . . . . . . . . 7
4.2.3. Message composition . . . . . . . . . . . . . . . . . 7
5. Related use cases . . . . . . . . . . . . . . . . . . . . . . 7
5.1. Change of email address . . . . . . . . . . . . . . . . . 7
5.2. New contact data . . . . . . . . . . . . . . . . . . . . 7
6. Implementation guidance . . . . . . . . . . . . . . . . . . . 8
6.1. Sending . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.1. Leave structured vacation notices optional . . . . . 8
6.1.2. Provide alternative representations . . . . . . . . . 8
6.2. Processing . . . . . . . . . . . . . . . . . . . . . . . 8
6.2.1. Igore past time ranges . . . . . . . . . . . . . . . 8
6.2.2. Prefer latest vacation time range . . . . . . . . . . 8
6.2.3. Strip when forwarding . . . . . . . . . . . . . . . . 8
7. Implementation status . . . . . . . . . . . . . . . . . . . . 8
7.1. Structured Vacation Notice plugin for Roundcube
Webmail . . . . . . . . . . . . . . . . . . . . . . . . . 9
8. Security considerations . . . . . . . . . . . . . . . . . . . 9
9. Privacy considerations . . . . . . . . . . . . . . . . . . . 9
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
11. Appendix (vCard properties) . . . . . . . . . . . . . . . . . 10
12. Informative References . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11
Happel Expires 13 July 2025 [Page 2]
Internet-Draft Structured vacation notices January 2025
1. Introduction
A "vacation notice" (also known as "out-of-office notice"
[RFC3834][RFC5598] or "-reply") is a short text message which is
automatically 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 and usually informs about the
absence and possible alternative contacts for urgent inquiries.
The MUA will put this content in automatic replies to incoming email
messages, based on conditions set by the absentee. 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 in the MUA, 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).
Happel Expires 13 July 2025 [Page 3]
Internet-Draft Structured vacation notices January 2025
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 also allow to specify a time range during which a
vacation notice should be sent. Some MUAs also allow for open time
ranges, in which either a start time or end time is given. 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 probably the most common 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 for urgent inquiries.
The following snippet shows a potential extension to the [SchemaOrg]
vocabulary in [JSONLD] format.
Happel Expires 13 July 2025 [Page 4]
Internet-Draft Structured vacation notices January 2025
{
"@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": "I am currently on vacation."
}
Note that this is a preliminary specification only. Do not use in practice.
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 are sending messages to the absentee during or
around the time of her absence.
4.1. Absentee
The absentee might want to send vacation notices in two difference
scenarios. Besides the common, dedicated vacation notice
autoreplies, machine-readable vacation notices might also be added to
regular email messages sent to communication partners.
Happel Expires 13 July 2025 [Page 5]
Internet-Draft Structured vacation notices January 2025
4.1.1. Outgoing vacation notice
For adding a structured vacation notice in a common vacation notice
message, 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 or prefilled
automatically, 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, so that communication partners can
preemptively learn about an 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 absence ended earlier than planned)
For discussion, see also:
https://github.com/hhappel/draft-happel-sml-structured-vacation-notices/issues/2
4.2. Communication partner
Structured vacation notices may be processed by the communication
partner (resp. her MUA) in different ways.
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.
Happel Expires 13 July 2025 [Page 6]
Internet-Draft Structured vacation notices January 2025
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 (e.g., set a reminder,
store to calendar, or forward the message to a replacement person)
4.2.2. Incoming preemptive vacation notice
As described before, the absentee may decide to add structured
vacation notices in regular messages sent before, during, or after
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.
For discussion, see also:
https://github.com/hhappel/draft-happel-sml-structured-vacation-notices/issues/3
5.1. Change of email address
As highlighted in [RFC3834], an automated response might also convey
the fact that an email address has become obsolete or changed.
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
Happel Expires 13 July 2025 [Page 7]
Internet-Draft Structured vacation notices January 2025
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 containing 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.
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
Happel Expires 13 July 2025 [Page 8]
Internet-Draft Structured vacation notices January 2025
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).
For this reason, absentees are typically 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.
Happel Expires 13 July 2025 [Page 9]
Internet-Draft Structured vacation notices January 2025
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 in the address book of the communication partner. I.e., if
an email message with a structured vacation notice is processed, the
implementation will lookup the absentee in the communication
partner'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",
.
[RC-SVN] audriga GmbH, "Structured Vacation Notice plugin for
Roundcube Webmail", .
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
.
Happel Expires 13 July 2025 [Page 10]
Internet-Draft Structured vacation notices January 2025
[RFC3834] Moore, K., "Recommendations for Automatic Responses to
Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August
2004, .
[RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email
Filtering Language", RFC 5228, DOI 10.17487/RFC5228,
January 2008, .
[RFC5230] Showalter, T. and N. Freed, Ed., "Sieve Email Filtering:
Vacation Extension", RFC 5230, DOI 10.17487/RFC5230,
January 2008, .
[RFC5260] Freed, N., "Sieve Email Filtering: Date and Index
Extensions", RFC 5260, DOI 10.17487/RFC5260, July 2008,
.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
DOI 10.17487/RFC5322, October 2008,
.
[RFC5598] Crocker, D., "Internet Mail Architecture", RFC 5598,
DOI 10.17487/RFC5598, July 2009,
.
[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,
.
[RFC6134] Melnikov, A. and B. Leiba, "Sieve Extension: Externally
Stored Lists", RFC 6134, DOI 10.17487/RFC6134, July 2011,
.
[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,
.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, .
[SchemaOrg]
W3C Schema.org Community Group, "Schema.org",
.
Author's Address
Happel Expires 13 July 2025 [Page 11]
Internet-Draft Structured vacation notices January 2025
Hans-Joerg Happel
audriga GmbH
Email: happel@audriga.com
URI: https://www.audriga.com
Happel Expires 13 July 2025 [Page 12]