Sourceval reply_line : string -> (int * bool * string) option Sourceval reply : int -> string list -> string list Sourcetype command = | Helo of string| Ehlo of string| Mail_from of string| Rcpt_to of string| Data| Rset| Noop| Quit| Unknown of string
Sourcetype envelope = {sender : string;recipients : string list;text : string;
} Sourceval stuff : string -> string list Sourceval unstuff : string list -> string Sourcetype outcome = | Sent of int * string list| Refused of string
Sourceval plain : user:string -> password:string -> string