{"id":13637002,"url":"https://github.com/jdrouet/jolimail","last_synced_at":"2025-09-29T02:31:28.427Z","repository":{"id":38333704,"uuid":"265807680","full_name":"jdrouet/jolimail","owner":"jdrouet","description":"Send nice emails","archived":false,"fork":false,"pushed_at":"2023-12-21T13:52:43.000Z","size":9205,"stargazers_count":138,"open_issues_count":38,"forks_count":14,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-01-13T00:32:14.118Z","etag":null,"topics":["docker","hacktoberfest","mailing","mjml","opensource","rust-lang","self-hosted","smtp","smtp-server"],"latest_commit_sha":null,"homepage":"https://jolimail.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdrouet.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":".github/FUNDING.yml","license":"license.md","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"jdrouet","issuehunt":null,"otechie":null,"custom":["https://www.buymeacoffee.com/jdrouet"]}},"created_at":"2020-05-21T09:28:34.000Z","updated_at":"2024-12-30T22:27:26.000Z","dependencies_parsed_at":"2024-08-02T00:20:34.306Z","dependency_job_id":null,"html_url":"https://github.com/jdrouet/jolimail","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdrouet%2Fjolimail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdrouet%2Fjolimail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdrouet%2Fjolimail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdrouet%2Fjolimail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdrouet","download_url":"https://codeload.github.com/jdrouet/jolimail/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234581661,"owners_count":18855969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","hacktoberfest","mailing","mjml","opensource","rust-lang","self-hosted","smtp","smtp-server"],"created_at":"2024-08-02T00:01:09.187Z","updated_at":"2025-09-29T02:31:23.000Z","avatar_url":"https://github.com/jdrouet.png","language":"TypeScript","funding_links":["https://liberapay.com/jdrouet","https://www.buymeacoffee.com/jdrouet","https://liberapay.com/jdrouet/"],"categories":["Libraries","库 Libraries","TypeScript"],"sub_categories":["Email","电子邮件 Email"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"80\" src=\"https://raw.githubusercontent.com/jdrouet/jolimail/main/resources/logo.svg\"\u003e\n\u003c/p\u003e\n\n**Jolimail** is an open source alternative to all the transactionnal email solutions.\n\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![pipeline status](https://gitlab.com/jeremie.drouet/jolimail/badges/main/pipeline.svg)](https://gitlab.com/jeremie.drouet/jolimail/-/commits/main)\n[![codecov](https://codecov.io/gh/jdrouet/jolimail/branch/main/graph/badge.svg)](https://codecov.io/gh/jdrouet/jolimail)\n\n![Docker Pulls](https://img.shields.io/docker/pulls/jdrouet/jolimail)\n[![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/jdrouet/jolimail?sort=date)](https://hub.docker.com/r/jdrouet/jolimail)\n\n[![Gitter](https://badges.gitter.im/jolimail/community.svg)](https://gitter.im/jolimail/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n## Why did we build jolimail?\n\nJolimail comes from the frustration of using several email providers.\nWe used to work with products like [sendgrid](https://sendgrid.com/),\n[mailgun](https://www.mailgun.com/), [mailchimp](https://mailchimp.com/), [sendinblue](https://www.sendinblue.com/), etc.\n\nBut they have many disadvantages :\n\n- Most of them are not really transactional oriented, and users complain that their login emails take a long time to arrive.\n- You cannot host it nor use it on premise\n- It's American, with the patriot act, they are able to access your users data.\n- They usually don't have templating tools for our non tech coworkers that ask us to change a wording every 2 days.\n  And when they do, the editors are like html online editors, so it ends up being our job to make the template anyway.\n\n## How to use it?\n\nJolimail is a simple application that allows you to create your email templates directly in the browser and have a preview.\n\nYou can start it in different ways but we recommend using Docker if you are on a amd64, i386 or arm64 architecture.\nBy doing the following, you'll be able to have a running jolimail server that will provide your email template, a [catapulte](https://github.com/jdrouet/catapulte) instance and a [fake smtp server](https://github.com/ReachFive/fake-smtp-server).\n\n```bash\ngit clone https://github.com/jdrouet/jolimail.git\ncd jolimail\ndocker-compose -f docker-compose.example.yml up\n```\n\nThen you should be able to reach jolimail [here](http://localhost:8080) and the smtp server [here](http://localhost:1080).\n\nIf you want to use it in a production environment, you can will just need a postgres instance where the templates will be stored.\n\nYou can also deploy it on Heroku with the following button\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/jdrouet/jolimail)\n\n## Should you use it?\n\nIf, like us, you didn't find any good way of doing transactional emails, then Yes!\n\n## Why you should use it :\n\n- You work in a startup\n\n  - 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)\n  - You don't have time to change the email template everyday, so let your Product Owner do it\n  - You wanna be able to add this little feature, just do a pull request...\n\n- You work in a big company\n\n  - You cannot use those external services because you're not allowed to put your user's data on an external service.\n  - You cannot access external services because it's blocked by the proxy\n  - You want to customise the way you authenticate to your SMTP\n  - You want something user friendly enough that your manager can write the emails\n\n## Thank you!\n\n[\u003cimg src=\"https://liberapay.com/assets/liberapay/icon-v2_white-on-yellow.svg?etag=.Z1LYSBJ8Z6GWUeLUUEf2XA~~\" height=\"35px\" /\u003e](https://liberapay.com/jdrouet/)\n[\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"35px\" /\u003e](https://www.buymeacoffee.com/jdrouet)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdrouet%2Fjolimail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdrouet%2Fjolimail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdrouet%2Fjolimail/lists"}