package async_smtp

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

module Session : sig ... end

Signature

type session = Session.t
val mechanism : string
val negotiate : log:Async.Log.t -> session -> send_challenge_and_expect_response:(string -> string Smtp_monad.t) -> session Smtp_monad.t

perform the server side authentication negotiation.

send_challenge_and_expect_response should be used to perform a challenge/response exchange. If the client sent an initial response then the initial challenge will be quietly discarded.

If the authentication flow has been completed, return Allow session or Deny msg as appropriate to complete the flow.

If the negotiation fails for any reason (e.g. malformed client message or network error) send_challenge_and_expect_response will raise, you should allow this to bubble up.

You should use Monitor.protect to do any necessary cleanup.

OCaml

Innovation. Community. Security.