All Projects → jdrouet → catapulte

jdrouet / catapulte

Licence: other
Rust implementation of catapulte email sender

Programming Languages

rust
11053 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to catapulte

jolimail
Send nice emails
Stars: ✭ 78 (-30.97%)
Mutual labels:  smtp, mjml
mailrise
An SMTP gateway for Apprise notifications.
Stars: ✭ 352 (+211.5%)
Mutual labels:  smtp
Maddy
✉️ Composable all-in-one mail server.
Stars: ✭ 2,800 (+2377.88%)
Mutual labels:  smtp
Swaks
Swaks - Swiss Army Knife for SMTP
Stars: ✭ 239 (+111.5%)
Mutual labels:  smtp
Drymail
Makes sending emails easy and DRY — For Python 3.
Stars: ✭ 218 (+92.92%)
Mutual labels:  smtp
Tmail
Golang SMTP server
Stars: ✭ 251 (+122.12%)
Mutual labels:  smtp
Hermes
Golang package that generates clean, responsive HTML e-mails for sending transactional mail
Stars: ✭ 2,379 (+2005.31%)
Mutual labels:  smtp
ControlCenter
Mirrored from GitLab! Monitoring and automation for Open Source email servers, starting with Postfix. Please do not submit issues or PRs here - join us at: https://gitlab.com/lightmeter
Stars: ✭ 88 (-22.12%)
Mutual labels:  smtp
django-sitemessage
Reusable application for Django introducing a message delivery framework
Stars: ✭ 51 (-54.87%)
Mutual labels:  smtp
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+2688.5%)
Mutual labels:  smtp
Magento 2 Smtp
Magento 2 SMTP Extension helps the owner of store simply install SMTP (Simple Mail Transfer Protocol) server which transmits the messages into codes or numbers.
Stars: ✭ 228 (+101.77%)
Mutual labels:  smtp
Vmime
VMime Mail Library
Stars: ✭ 218 (+92.92%)
Mutual labels:  smtp
Davmail
DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway - Synced with main subversion repository at
Stars: ✭ 250 (+121.24%)
Mutual labels:  smtp
Hectane
Lightweight SMTP client written in Go
Stars: ✭ 200 (+76.99%)
Mutual labels:  smtp
SmsForwarder
短信转发器——监控Android手机短信、来电、APP通知,并根据指定规则转发到其他手机:钉钉群自定义机器人、钉钉企业内机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。包括主动控制服务端与客户端,让你轻松远程发短信、查短信、查通话、查话簿、查电量等。(V3.0 新增)PS.这个APK主要是学习与自用,如有BUG请提ISSUE,同时欢迎大家提PR指正
Stars: ✭ 8,386 (+7321.24%)
Mutual labels:  smtp
Aiosmtpd
A reimplementation of the Python stdlib smtpd.py based on asyncio.
Stars: ✭ 195 (+72.57%)
Mutual labels:  smtp
Mailer
A light-weight, modular, message representation and mail delivery framework for Python.
Stars: ✭ 225 (+99.12%)
Mutual labels:  smtp
Mailyak
An elegant MIME/SMTP email library with support for attachments
Stars: ✭ 244 (+115.93%)
Mutual labels:  smtp
mautic-plugin-grapesbuilder
Grapesjs integration for Mautic
Stars: ✭ 23 (-79.65%)
Mutual labels:  mjml
go-smtp-mock
SMTP mock server written on Golang. Mimic any 📤 SMTP server behavior for your test environment with fake SMTP server.
Stars: ✭ 76 (-32.74%)
Mutual labels:  smtp

Catapulte

Build Status codecov

Docker Pulls Docker Image Size (latest by date)

What is catapulte?

Catapulte is an open source mailer you can host yourself.

You can use it to quickly catapult your transactionnal emails to destination.

Deploy

Why did we build catapulte?

Catapulte comes from the frustration of using several email providers. We used to work with products like sendgrid, mailgun, mailchimp, sendinblue, etc.

But they have many disadvantages :

  • Most of them are not really transactionnal oriented, and users complain that their login emails take a long time to arrive.
  • You cannot host it nor use it on premise
  • It's American, with the patriot act, they are able to access your users data.
  • They usually don't have templating tools for our non tech coworkers that ask us to change a wording every 2 days. And when they do, the editors are like html online editors, so it ends up being our job to make the template anyway.

How to use it?

Catapulte is a simple service that renders your mjml template, interpolates the data and then sends it to a SMTP server. If you want to see how to create your own template, take a look at the /template folder in this repository.

You then have several options for starting catapulte. We recommend using Docker if you are on a amd64, i386 or arm64v8 architecture. By doing the following, you'll be able to have a running server that will render and send your email.

docker run -d \
  --name catapulte \
  -e SMTP__HOSTNAME=localhost \
  -e SMTP__PORT=25 \
  -e SMTP__USERNAME=optional \
  -e SMTP__PASSWORD=optional \
  -e SMTP__TLS_ENABLED=true \
  -e SMTP__ACCEPT_INVALID_CERT=false \
  -e TEMPLATE__TYPE=local \
  -e TEMPLATE__PATH=/templates \
  -p 3000:3000 \
  -v /path/to/your/templates:/templates:ro \
  jdrouet/catapulte:latest

Once your server started, you can simply send an email using an HTTP request.

curl -X POST -v \
  -H "Content-Type: application/json" \
  --data '{"from":"[email protected]","to":"[email protected]","params":{"some":"data"}}' \
  http://localhost:3000/templates/the-name-of-your-template/json

You can also send attachments using a multipart request.

curl -X POST -v \
  -F attachments=@asset/cat.jpg \
  -F [email protected] \
  -F [email protected] \
  -F params='{"some":"data"}' \
  http://localhost:3000/templates/user-login/multipart

You can configure it with some environment variable and can find more information in this wiki.

If you some API specification, the Open API specification is also available on /openapi.json when Catapulte is running.

To use it in production, we prepared a documentation on how to use Catapulte with Amazon Simple Email Service.

Sending to multiple recipients

You can send the same email to multiple recipients just by using an array in the to field, like this:

curl -X POST -v \
  -H "Content-Type: application/json" \
  --data '{"from":"[email protected]","to":["[email protected]","[email protected]"],"params":{"some":"data"}}' \
  http://localhost:3000/templates/the-name-of-your-template/json

Should you use it?

If, like us, you didn't find any good way of doing transactionnal emails, then YES!

Why you should use it :

  • You work in a startup

    • You don't have shit loads of money to spend on the mailing tools, so use something opensource, send your emails from your own SMTP (or from Amazon SES, it's cheap)
    • You don't have time to change the email template everyday, so let your Product Owner do it
    • You wanna be able to add this little feature, just do a pull request...
  • You work in a big company

    • You cannot use those external services because you're not allowed to put your user's data on an external service.
    • You cannot access external services because it's blocked by the proxy
    • You want to customise the way you authenticate to your SMTP
    • You want something user friendly enough that your manager can write the emails

Thank you!

Buy Me A Coffee

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].