This repository has no description
1(*---------------------------------------------------------------------------
2 Copyright (c) 2025 Anil Madhavapeddy. All rights reserved.
3 SPDX-License-Identifier: ISC
4 ---------------------------------------------------------------------------*)
5
6(** Email header types as defined in RFC 8621 Section 4.1.2
7
8 @canonical Jmap.Proto.Email_header *)
9
10(** {1 Raw Headers} *)
11
12(** A raw email header name-value pair. *)
13type t = {
14 name : string;
15 (** The header field name. *)
16 value : string;
17 (** The raw header field value. *)
18}
19
20val create : name:string -> value:string -> t
21
22val name : t -> string
23val value : t -> string
24
25val jsont : t Jsont.t
26
27(** {1 Header Parsed Forms}
28
29 RFC 8621 defines several parsed forms for headers.
30 These can be requested via the header:Name:form properties. *)
31
32(** The raw form - header value as-is. *)
33val raw_jsont : string Jsont.t
34
35(** The text form - decoded and unfolded value. *)
36val text_jsont : string Jsont.t
37
38(** The addresses form - list of email addresses. *)
39val addresses_jsont : Mail_address.t list Jsont.t
40
41(** The grouped addresses form - addresses with group info. *)
42val grouped_addresses_jsont : Mail_address.Group.t list Jsont.t
43
44(** The message IDs form - list of message-id strings. *)
45val message_ids_jsont : string list Jsont.t
46
47(** The date form - parsed RFC 3339 date. *)
48val date_jsont : Ptime.t Jsont.t
49
50(** The URLs form - list of URL strings. *)
51val urls_jsont : string list Jsont.t