package sendmail
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=3d55b5baf77057239c1dc0a2893060303817c69f539c6f80d04f8f1c504cf24d
sha512=5eaa8ae98ce1d5bfd15e8093195492ec63b4b0277be63752428494d1090c6e7ceb54b7706b091ca6582b647f7ae4ce82c3cf475d61029855c0bc46d4762c61bb
doc/sendmail.starttls/Sendmail_with_starttls/index.html
Module Sendmail_with_starttlsSource
module Make_with_tls
(Value : VALUE) :
S
with type 'x send = 'x Value.send
and type 'x recv = 'x Value.recv
and type value_error = Value.error
and type encoder = Context_with_tls.encoder
and type decoder = Context_with_tls.decodertype error = [ | `Protocol of [ Value.error | `Tls_alert of Tls.Packet.alert_type | `Tls_failure of Tls.Engine.failure | `Tls_closed ]| `Unsupported_mechanism| `Encryption_required| `Weak_mechanism| `Authentication_rejected| `Authentication_failed| `Authentication_required| `Temporary_failure of tmp_error
]val sendmail :
's Colombe.Sigs.impl ->
('flow, 's) Colombe.Sigs.rdwr ->
'flow ->
Context_with_tls.t ->
Tls.Config.client ->
?authentication:authentication ->
domain:Colombe.Domain.t ->
reverse_path ->
forward_path list ->
(string * int * int, 's) stream ->
((unit, error) result, 's) Colombe.Sigs.iosendmail impl rdwr flow ctx tls_config ?authentication ~domain sender recipients mail where:
implis the scheduler (unix, lwt or async)rdwrread/write syscallflowwitness of the flow (can be a socket)ctxcontext used by the processtls_configTLS configuration used by STARTTLSauthenticationauthentication information used by the processsendersender of the mailrecipientsrecipients of the mailmailstream of the mail
This process tries to send a mail according RFC4409. It ensures to use STARTTLS (eg. RFC3207) while the process according TLS configuration tls_config. If authentication is given, it does the authentication only while TLS flow. Mail is sended only while TLS flow.
The stream mail must respects same assumptions as Sendmail_lwt.sendmail.
val many :
's Colombe.Sigs.impl ->
('flow, 's) Colombe.Sigs.rdwr ->
'flow ->
Context_with_tls.t ->
Tls.Config.client ->
?authentication:authentication ->
domain:Colombe.Domain.t ->
(reverse_path * forward_path) list ->
(string * int * int, 's) stream Seq.t ->
(((reverse_path * forward_path * (unit, error) result) list, error) result,
's)
Colombe.Sigs.iomany impl rdwr flow ctx tls_config ?authentication ~domain transactions sends multiple emails over a single TCP+STARTTLS connection. Each transaction is a (sender, recipients, mail) tuple. The connection is set up once (EHLO, STARTTLS, AUTH), then for each transaction: MAIL FROM, RCPT TO, DATA, body, DOT, RSET. Returns a list of results, one per transaction. If a transaction fails, the connection is reset and the next transaction is attempted.