module Id : sig ... end
module Status : sig ... end
module Queue : sig ... end
type t
t
does not contain the full envelope. The envelope is loaded from disk and then
stored back to disk only when changes need to be made.
val spool_dir : t ‑> string
val flows : t ‑> Async_smtp__.Mail_log.Flows.t
val parent_id : t ‑> Async_smtp_types.Smtp_envelope.Id.t
val spool_date : t ‑> Core.Time.t
val next_hop_choices : t ‑> Async_smtp_types.Smtp_socket_address.t list
val envelope_info : t ‑> Async_smtp_types.Smtp_envelope.Info.t
val time_on_spool : t ‑> Core.Time.Span.t
val retry_intervals : t ‑> Async_smtp_types.Smtp_envelope.Retry_interval.t list
The head of this list is the time at which we should attempt a delivery after the next time a delivery fails.
val set_retry_intervals : t ‑> Async_smtp_types.Smtp_envelope.Retry_interval.t list ‑> unit
val add_retry_intervals : t ‑> Async_smtp_types.Smtp_envelope.Retry_interval.t list ‑> unit
val remaining_recipients : t ‑> Async_smtp_types.Email_address.Stable.V1.t list
val set_remaining_recipients : t ‑> Async_smtp_types.Email_address.t list ‑> unit
val failed_recipients : t ‑> Async_smtp_types.Email_address.Stable.V1.t list
Currently not used, but saved to disk to aid in triaging frozen messages and failed deliveries. Addresses on this list will not be included in remaining_recipients, and would otherwise be lost to the ether.
val set_failed_recipients : t ‑> Async_smtp_types.Email_address.t list ‑> unit
val relay_attempts : t ‑> (Core.Time.t * Core.Error.t) list
val add_relay_attempt : t ‑> (Core.Time.t * Core.Error.t) ‑> unit
val last_relay_attempt : t ‑> (Core.Time.t * Core.Error.t) option
module Data : sig ... end
Data.t
is an on-disk Email.t
. The type is abstract because we store a dot-encoded
email on disk.
val of_envelope_batch : Async_smtp_types.Smtp_envelope.Routed.Batch.t ‑> gen_id:(unit ‑> Id.t Async.Deferred.Or_error.t) ‑> spool_dir:string ‑> spool_date:Core.Time.t ‑> failed_recipients:Async_smtp_types.Email_address.t list ‑> relay_attempts:(Core.Time.t * Core.Error.t) list ‑> parent_id:Async_smtp_types.Smtp_envelope.Id.t ‑> status:Status.t ‑> flows:Async_smtp__.Mail_log.Flows.t ‑> (t * Data.t) list Async.Deferred.Or_error.t
module On_disk : Async_smtp__.Multispool_intf.Spoolable.S with type Metadata.t = t and type Name_generator.t = Async_smtp_types.Smtp_envelope.t and module Name_generator.Unique_name = Id and module Queue = Queue and module Data = Data
module On_disk_spool : Async_smtp__.Multispool_intf.S with module Spoolable := On_disk
module Stable : sig ... end