module Peer_info : sig ... endval create : ?flows:Mail_log.Flows.t ‑> dest:Types.Address.t ‑> Async.Reader.t ‑> Async.Writer.t ‑> Client_config.t ‑> tval create_bsmtp : ?flows:Mail_log.Flows.t ‑> Async.Writer.t ‑> Client_config.t ‑> tval config : t ‑> Client_config.tval info : t ‑> Peer_info.t optionval is_using_tls : t ‑> boolval is_using_auth_login : t ‑> boolval with_session : t ‑> log:Mail_log.t ‑> component:Mail_log.Component.t ‑> credentials:Types.Credentials.t option ‑> f:(t ‑> 'a Async.Deferred.Or_error.t) ‑> 'a Async.Deferred.Or_error.tval do_helo : t ‑> log:Mail_log.t ‑> component:Mail_log.Component.t ‑> unit Async.Deferred.Or_error.tval send : t ‑> log:Mail_log.t ‑> ?flows:Mail_log.Flows.t ‑> component:Mail_log.Component.t ‑> here:Lexing.position ‑> Types.Command.t ‑> unit Async.Deferred.Or_error.tval receive : ?on_eof:(?partial:Types.Reply.partial ‑> unit ‑> Types.Reply.t Async.Deferred.Or_error.t) ‑> ?timeout:Core.Time.Span.t ‑> ?flows:Mail_log.Flows.t ‑> t ‑> log:Mail_log.t ‑> component:Mail_log.Component.t ‑> here:Lexing.position ‑> [ `Bsmtp | `Received of Types.Reply.t ] Async.Deferred.Or_error.tval send_receive : ?on_eof:(?partial:Types.Reply.partial ‑> unit ‑> Types.Reply.t Async.Deferred.Or_error.t) ‑> ?timeout:Core.Time.Span.t ‑> t ‑> log:Mail_log.t ‑> ?flows:Mail_log.Flows.t ‑> component:Mail_log.Component.t ‑> here:Lexing.position ‑> Types.Command.t ‑> [ `Bsmtp | `Received of Types.Reply.t ] Async.Deferred.Or_error.tval send_string : t ‑> log:Mail_log.t ‑> ?flows:Mail_log.Flows.t ‑> component:Mail_log.Component.t ‑> here:Lexing.position ‑> string ‑> unit Async.Deferred.Or_error.tval send_receive_string : ?on_eof:(?partial:Types.Reply.partial ‑> unit ‑> Types.Reply.t Async.Deferred.Or_error.t) ‑> ?timeout:Core.Time.Span.t ‑> t ‑> log:Mail_log.t ‑> ?flows:Mail_log.Flows.t ‑> component:Mail_log.Component.t ‑> here:Lexing.position ‑> string ‑> [ `Bsmtp | `Received of Types.Reply.t ] Async.Deferred.Or_error.tval writer : t ‑> Async.Writer.tval reader : t ‑> Async.Reader.t optionval remote_address : t ‑> Types.Address.t option