package uspf-lwt
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=9e7903a149b1a9708bf33d0b34ea243172feebe60737e81522f487711e910568
sha512=d95c6b61ded3b5fff91a13ab2ea9df43ccec26f0f5fd52fe4f6561575313898947a24b591fb85ea697fd703bd402af494491de5d5e9e0b18c6954c33f92f439f
Description
uspf-lwt is an implementation of the SPF verifier in OCaml compatible with MirageOS. It uses LWT as the scheduler.
Published: 13 Mar 2023
README
µSPF, a SPF verifier/signer in OCaml
uspf
is a simple library to check or sign an incoming emails from -data. See RFC 7208.
Usage
How to install it?
You must have an OPAM environment. Then, uspf
can be installed with:
$ opam install uspf
How to use it?
uspf
is a little tool which can be used to verify DNS records from some informations (like where comes from the incoming email - especially, what is the IP address of the sender).
From these informations and the DNS record, we are able to check if the IP address is allowed to send an email under a certain domain-name.
By this way, uspf
requires:
few informations (the IP address of the sender, its domain-name, etc.)
a DNS stack to get records
(* Informations required by uSPF *)
let ctx =
Uspf.empty
|> Uspf.with_sender (`MAILFROM address)
|> Uspf.with_ip ipaddr
(* DNS record *)
let record = Uspf.get ctx sched dns (module DNS)
(* Verification *)
let result = Uspf.check ctx sched dns (module DNS)
From the result, the user is able to emit a new RFC822 field via mrmime:
let field_name, value = Uspf.to_field ~ctx ?receiver result
let () =
Format.printf "%s: %s\n%!"
(Mrmime.Field_name.to_string field_name)
(Unstrctrd.to_utf_8_string value)
uspf
has received funding from the Next Generation Internet Initiative (NGI) within the framework of the DAPSI Project.