ℹ️ The development repository is hosted on SourceHut.
If you use mailgun.com, mailjet.com or sendinblue.com to manage
contacts/mailing lists but do not want your users to share data with
an third-party sign-up form, Subscribe
can help.
If you have several mailing lists (possibly handled by several
different providers among mailgun.com, mailjet.com or sendinblue.com)
and want to list various list subscription options on a single page,
Subscribe
can help.
- Support mailgun.com, mailjet.com or sendinblue.com mailing lists
- Include/exclude mailing lists one by one or with regular expressions
- Let the admin of a list receive an email every
x
subscriptions - Customize the HTML header and footer of the web interface
- Use your own stylesheet (as long as it’s based on bulma.io)
- UI and transactional emails in english and french
Configuring subscribe
is done in two steps: you first need to set
environment variables for global options (including the default
credentials for transactional emails), then to edit the config.edn
file for mailing lists.
Application variables:
export SUBSCRIBE_PORT=3000 export SUBSCRIBE_BASEURL="http://yourdomain.com"
Email credentials:
export SUBSCRIBE_SMTP_LOGIN="postmaster@xxx" export SUBSCRIBE_SMTP_PASSWORD="your-password" export SUBSCRIBE_SMTP_HOST="smtp.mailgun.org" export SUBSCRIBE_SMTP_PORT=587
Backend-specific variables:
# To handle mailgun.com mailing lists: export MAILGUN_API_BASEURL="https://api.mailgun.net/v3" # or "https://api.eu.mailgun.net/v3" for EU domains export MAILGUN_API_KEY="your-key" # To handle sendinblue.com mailing lists: export SENDINBLUE_API_KEY="your-key" # To handle mailjet.com mailing lists: export MAILJET_API_KEY="your-key" export MAILJET_API_SECRET="your-password"
Note that only mailjet.com requires both an API key and password, mailgun.com and sendinblue.com only requires an API key.
Copy config_example.edn
to config.edn
and edit it.
The mandatory configuration options are :admin-email
and :backends
.
~$ git clone https://git.sr.ht/~bzg/subscribe ~$ cd subscribe/ ... [Set up your environment variables and config.edn] ~$ clj -M:test
... [Set up environment variables] ~$ git clone https://git.sr.ht/~bzg/subscribe ~$ cd subscribe/ ... [Edit config.edn to configure mailing lists] ~$ clj -M:run
Then go to http://localhost:3000 or to your custom base URL.
... [Set up environment variables] ~$ git clone https://git.sr.ht/~bzg/subscribe ~$ cd subscribe/ ... [Edit config.edn to configure mailing lists] ~$ clj -M:uberdeps ~$ java -cp target/subscribe.jar clojure.main -m core
Assuming your environments variables are stored in ~/.subscribe_envs
and you want to expose the 3000 port:
~$ git clone https://git.sr.ht/~bzg/subscribe ~$ cd subscribe/ ... [Edit config.edn to configure mailing lists] ~$ docker build -t subscribe . ~$ docker run -it -p 3000:3000 --env-file=~/.subscribe_envs subscribe
Then go to http://localhost:3000.
Contributions are welcome. You can send feedback and patches to ~bzg/[email protected]. For patches, please configure your local copy of the repository to add a prefix to the subject line of your emails:
~$ git config format.subjectPrefix 'PATCH subscribe'
If you like Clojure(script), please consider supporting maintainers by donating to clojuriststogether.org.
© 2019-2024 Bastien Guerry
subscribe
is licensed under the Eclipse Public License 2.0.