{"repo":"jdrouet/catapulte","free":true,"listed":false,"github":"https://github.com/jdrouet/catapulte","clone":"git clone https://github.com/jdrouet/catapulte.git","description":"Rust implementation of catapulte email sender","language":"Rust","stars":152,"topics":["email","smtp","template","mjml","hacktoberfest"],"license":"AGPL-3.0","category":"auth-billing-email","readme_excerpt":"Catapulte Make sending email easy. Using the API? See the usage guide for how to submit emails (plain, HTML, MJML, attachments, batches), read their state, and subscribe to lifecycle events. The rest of this readme covers running and configuring a server. User stories Within each persona, stories are ordered by priority (most important first). API consumer - [x] As an API consumer, I can ask an email (text or html) to be sent through a SMTP server, and get back a tracking id, so that I don't have to manage SMTP and retries myself. - [x] As an API consumer, I can ask an email to be sent from inline mjml plus variables, so that I keep template sources in my own repo. - [x] As an API consumer, I can ask an email with attachments to be sent through a SMTP server, so that I can send invoices, receipts or reports. - [x] As an API consumer, I can list emails I previously submitted with filters (status queued / sent / failed , time range, recipient, template, tracking id), paginated, so that I can check delivery state and debug without keeping my own mirror of the data. - [x] As an API consumer, I can pass an idempotency key on submission, so that retrying a failed request doesn't send the email twice. - [x] As an API consumer, I can submit a batch of emails in a single request and get back one tracking id per email, so that I can fan out a campaign without N round-trips. Partial acceptance is allowed: per-email validation errors are returned alongside the accepted ids. - [x] As an A","default_branch":null,"files":null,"tree":[],"storefront":"/r/jdrouet","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jdrouet/catapulte/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}