package emile
All checked builds passInstall
dune-project
Dependency
Authors
Maintainers
Sources
sha256=1759253996b53b84ff1a2b76ff30c3614bc61cb02ff8a500480be4a96a202164
sha512=b53df652cd9c585d2720cf1ad6b877a11e3779b4edda08d6b965557721d46538cd10dd8a7a3a6316dc6a3785ae66167785529619e31f40e7dfde01faaf692c7f
Description
A parser of email address according RFC822, RFC2822, RFC5321 and RFC6532. It handles UTF-8 email addresses and encoded-word according RFC2047.
Added to opam-repository:
README
Emile (& Images)
Emile is a library to parse an e-mail address in OCaml. This project is an extraction of mrmime.
This implementation follow some RFCs:
We handle UTF-8 (RFC 6532), domain defined on the SMTP protocol (RFC 5321), and general e-mail address purpose (RFC 822, RFC 2822, RFC 5322) without folding-whitespace.
Folding whitespace
According RFC 822, an e-mail address into an e-mail can be splitted by a folding-whitespace. However, this kind of form is not an usual case where user mostly wants to parse input from a form (for example). At the end, emile is not able to parse this kind of input:
A Group(Some people)
:Chris Jones <c@(Chris's host.)public.example>,
joe@example.org,
John <jdoe@one.test> (my dear friend); (the end of the group)"However, a pre-process (like unstrctrd) can fold input and give you an usual output. emile can not be used into an e-mail context without this kind of pre-process.
Domain
Then, for domain part (explained on RFC 5321 - SMTP protocol), we handle this kind of domain (IPv4 and IPv6 domain) with ipaddr:
first.last@[12.34.56.78]
first.last@[IPv6:1111:2222:3333::4444:12.34.56.78]It's possible to notify multiple domains for one local-part like this:
<@a.com,b.com:john@doe.com>It's a valid form according RFC 882.
Comments
Even if we don't handle the folding-whitespace, we are able to discard comments.
a(a(b(c)d(e(f))g)h(i)j)@iana.orgAdvise
If you think it's easy to parse an e-mail address, you should look tests.
Dependencies (8)
Dev Dependencies (1)
-
alcotest
with-test
Optional Dependencies (1)
Used by (10)
-
colombe
>= "0.13.0" - dream-mirage
- functoria
-
git
>= "3.2.0" -
git-kv
>= "0.2.0" - letsencrypt-mirage
-
mirage
>= "4.7.0" -
mrmime
>= "0.3.1" -
received
>= "0.4.0" -
sendmail
>= "0.4.0"
Conflicts
None
Build status
Results of building emile with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.
Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.
| Version | OCaml 4.11 | OCaml 4.14 | OCaml 5.2 | OCaml 5.4 | OCaml 5.5 |
|---|---|---|---|---|---|
| 1.1 (this version) | good | good | good | good | good |
- good Package successfully built
- partial One of the dependencies failed to build
- bad Package failed to build
- n/a Package is not available in this environment
- internal Internal failure