package sihl-email
Install
Dune Dependency
Authors
Maintainers
Sources
md5=a071020e3532eac75c61c2b064a8fd00
sha512=2225e1352344d86b9299f599ae3f9d5576e78ce88663eae6201bc50b4819dd2e10070aeba5c44b75b50429791754df0a7ee27cd9889132739a8a93cdd7221e8e
doc/index.html
Sihl Email
This module provides the email service and the email template service.
Email service
The email service provides API for sending emails. Currently SMTP and Sendgrid are supported.
Installation
Backend
First, choose a backend in service/service.ml
:
module Email = Sihl_email.Smtp
If you want to use the same backend multiple times with different configs, you can use the Make
functors. The functor argument has to have a fetch
function that takes a unit and returns the configuration for the backend wrapped in Lwt.t
. This allows reading the config from IO.
module MarketingSmtpConfig = struct
let fetch () = Lwt.return {sender="marketing@mail.io"; username=...}
end
module CustomerServiceSmtpConfig = struct
let fetch () = Lwt.return {sender="help@mail.io"; username=...}
...
end
module MarketingMail = Sihl_email.MakeSmtp (MarketingSmtpConfig)
module CustomerServiceMail = Sihl_email.MakeSmtp (CustomerServiceSmtpConfig)
Registration
Then, register the service in run/run.ml
:
let services = [ Service.Email.register () ]
Configuration
Run make sihl
to get a list of required configurations.
Usage
The API is documented in Sihl.Contract.Email.Sig
.
Template service
The template service can be used to create and edit email templates. Email templates are rendered with parameters to emails, that can be sent with the email service
. Currently MariaDb (Sihl_cache.MariaDb
) and PostgreSql (Sihl_cache.PostgreSql
) are supported.
Installation
Backend
First, choose a backend in service/service.ml
:
module Email_template = Sihl_email.Temlate.PostgreSql
Registration
Then, register the service in run/run.ml
:
let services = [ Service.Email_template.register () ]
Migrations
Run make sihl migrate
to run pending migrations.
Usage
The API is documented in Sihl.Contract.Email_template.Sig
.