C : sig ... end
val mechanism : string
perform the client side authentication negotiation.
send_response_and_expect_challenge
should be used to perform a
challenge/response exchange.
`Start_auth
will initiate the AUTH exchange without an initial response. Sending
a `Response
initiates the AUTH exchange with an initial response if the exchange
has not been started yet.
If the negotiation fails for any reason (e.g. bad credentials or network error)
send_response_and_expect_challenge
will raise, you should allow this to bubble
up.
You should use Monitor.protect
to do any necessary cleanup.
It is an error not to call send_response_and_expect_challenge
at least once, and
it is an error to call it after the exchange has been completed.
val negotiate : log:Async_smtp__.Mail_log.t ‑> remote:Async_smtp_types.Smtp_socket_address.t option ‑> send_response_and_expect_challenge:([ `Start_auth | `Response of string ] ‑> [ `Challenge of string | `Auth_completed ] Async.Deferred.t) ‑> unit Async.Deferred.t
perform the client side authentication negotiation.
send_response_and_expect_challenge
should be used to perform a
challenge/response exchange.
`Start_auth
will initiate the AUTH exchange without an initial response. Sending
a `Response
initiates the AUTH exchange with an initial response if the exchange
has not been started yet.
If the negotiation fails for any reason (e.g. bad credentials or network error)
send_response_and_expect_challenge
will raise, you should allow this to bubble
up.
You should use Monitor.protect
to do any necessary cleanup.
It is an error not to call send_response_and_expect_challenge
at least once, and
it is an error to call it after the exchange has been completed.