Module Async_smtp__.Client_raw
module Peer_info : sig ... end
val create : ?flows:Async_smtp__.Mail_log.Flows.t -> emulate_tls_for_test:bool -> remote_address:Core.Host_and_port.t -> ?local_ip_address:Async.Socket.Address.Inet.t -> ?remote_ip_address:Async.Socket.Address.Inet.t -> Async.Reader.t -> Async.Writer.t -> Async_smtp__.Client_config.t -> t
val create_bsmtp : ?flows:Async_smtp__.Mail_log.Flows.t -> Async.Writer.t -> Async_smtp__.Client_config.t -> t
val config : t -> Async_smtp__.Client_config.t
val info : t -> Peer_info.t option
val is_using_tls : t -> bool
val with_session : t -> log:Async_smtp__.Mail_log.t -> component:Async_smtp__.Mail_log.Component.t -> credentials:Async_smtp__.Credentials.t -> f:(t -> 'a Async.Deferred.Or_error.t) -> 'a Async.Deferred.Or_error.t
val do_helo : t -> log:Async_smtp__.Mail_log.t -> component:Async_smtp__.Mail_log.Component.t -> unit Async.Deferred.Or_error.t
val send : t -> log:Async_smtp__.Mail_log.t -> ?flows:Async_smtp__.Mail_log.Flows.t -> component:Async_smtp__.Mail_log.Component.t -> here:Stdlib.Lexing.position -> Async_smtp.Smtp_command.t -> unit Async.Deferred.Or_error.t
val receive : ?on_eof:(?partial:Async_smtp.Smtp_reply.partial -> unit -> Async_smtp.Smtp_reply.t Async.Deferred.Or_error.t) -> ?timeout:Core.Time.Span.t -> ?flows:Async_smtp__.Mail_log.Flows.t -> t -> log:Async_smtp__.Mail_log.t -> component:Async_smtp__.Mail_log.Component.t -> here:Stdlib.Lexing.position -> [ `Bsmtp | `Received of Async_smtp.Smtp_reply.t ] Async.Deferred.Or_error.t
val send_receive : ?on_eof:(?partial:Async_smtp.Smtp_reply.partial -> unit -> Async_smtp.Smtp_reply.t Async.Deferred.Or_error.t) -> ?timeout:Core.Time.Span.t -> t -> log:Async_smtp__.Mail_log.t -> ?flows:Async_smtp__.Mail_log.Flows.t -> component:Async_smtp__.Mail_log.Component.t -> here:Stdlib.Lexing.position -> Async_smtp.Smtp_command.t -> [ `Bsmtp | `Received of Async_smtp.Smtp_reply.t ] Async.Deferred.Or_error.t
val send_string : t -> log:Async_smtp__.Mail_log.t -> ?flows:Async_smtp__.Mail_log.Flows.t -> component:Async_smtp__.Mail_log.Component.t -> here:Stdlib.Lexing.position -> string -> unit Async.Deferred.Or_error.t
val send_receive_string : ?on_eof:(?partial:Async_smtp.Smtp_reply.partial -> unit -> Async_smtp.Smtp_reply.t Async.Deferred.Or_error.t) -> ?timeout:Core.Time.Span.t -> t -> log:Async_smtp__.Mail_log.t -> ?flows:Async_smtp__.Mail_log.Flows.t -> component:Async_smtp__.Mail_log.Component.t -> here:Stdlib.Lexing.position -> string -> [ `Bsmtp | `Received of Async_smtp.Smtp_reply.t ] Async.Deferred.Or_error.t
val writer : t -> Async.Writer.t
val reader : t -> Async.Reader.t option
val remote_address : t -> Core.Host_and_port.t option
val local_ip_address : t -> Async.Socket.Address.Inet.t option
val remote_ip_address : t -> Async.Socket.Address.Inet.t option