Module Async_smtp__.Message_spool

type t = Async_smtp__.Message.On_disk_spool.t
type spool = t
val load : string -> t Async.Deferred.Or_error.t
val create : string -> t Async.Deferred.Or_error.t
module Entry : sig ... end
val uncheckout_all_entries : t -> ([ `Recovered of string list ] * [ `Errors of Core.Error.t option ]) Async.Deferred.t

Move all checked out entries back to their original queues. This command is useful to run on startup to recover from an unclean shutdown. Returns the list of entries that were recovered along with any errors that occurred.

val ls : t -> Async_smtp__.Message.Queue.t list -> Entry.t list Core.Or_error.t Async.Deferred.t
val enqueue : t -> log:Async_smtp__.Mail_log.t -> initial_status:Async_smtp__.Message.Status.t -> Async_smtp_types.Smtp_envelope.Routed.Batch.t -> flows:Async_smtp__.Mail_log.Flows.t -> original_msg:Async_smtp_types.Smtp_envelope.t -> (Async_smtp__.Message.t * Async_smtp_types.Smtp_envelope.Routed.t) list Core.Or_error.t Async.Deferred.t

The Deferred becomes determined once the messages have been synced to disk.

val send : Async_smtp__.Message.t -> log:Async_smtp__.Mail_log.t -> client_cache:Async_smtp__.Client_cache.t -> [ `Delivered | `Failed of Core.Error.t ] Core.Or_error.t Async.Deferred.t

send message ~log ~client_cache attempts delivery of message using the supplied client_cache for connections.

The outer Error.t in the result is used for unexpected errors. `Delivered | `Failed of Error.t describes the delivery attempt.

val freeze : Async_smtp__.Message.t -> log:Async_smtp__.Mail_log.t -> unit Core.Or_error.t Async.Deferred.t
val mark_for_send_now : retry_intervals:Async_smtp_types.Smtp_envelope.Retry_interval.t list -> Async_smtp__.Message.t -> log:Async_smtp__.Mail_log.t -> unit Core.Or_error.t Async.Deferred.t

Change a message's status to `Send_now. retry_intervals are added in front of the existing ones.

val remove : Async_smtp__.Message.t -> log:Async_smtp__.Mail_log.t -> unit Core.Or_error.t Async.Deferred.t
module On_disk_monitor : sig ... end