feat: send confirmation email to sender
When users submit a contact form, they now receive a confirmation email acknowlledging receipt of their message. The backend also continues to send a notification email to the configured recipient. If the backend fails to send the acknowledgement email to the sender, it will assume the email is not valid and will therefore not transmit the contact request to the configured recipient. Changes: - Refactor `send_email()` to `send_emails()` that sends two emails: - Confirmation email from the submitter - Notification email to the configured recipient - Add `From<T>` implementations of various errors for new error type `ContactError`. - Errors now return a translation identifier for the frontend.
This commit is contained in:
40
README.md
40
README.md
@@ -1,5 +1,43 @@
|
||||
# phundrak.com Backend
|
||||
|
||||
<!--toc:start-->
|
||||
- [phundrak.com Backend](#phundrakcom-backend)
|
||||
- [Features](#features)
|
||||
- [API Endpoints](#api-endpoints)
|
||||
- [Configuration](#configuration)
|
||||
- [Configuration Example](#configuration-example)
|
||||
- [Rate Limiting](#rate-limiting)
|
||||
- [Development](#development)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Running the Server](#running-the-server)
|
||||
- [Building](#building)
|
||||
- [Testing](#testing)
|
||||
- [Testing Notes](#testing-notes)
|
||||
- [Code Quality](#code-quality)
|
||||
- [Linting](#linting)
|
||||
- [Continuous Checking with Bacon](#continuous-checking-with-bacon)
|
||||
- [Code Style](#code-style)
|
||||
- [Error Handling](#error-handling)
|
||||
- [Logging](#logging)
|
||||
- [Imports](#imports)
|
||||
- [Testing Conventions](#testing-conventions)
|
||||
- [Project Structure](#project-structure)
|
||||
- [Architecture](#architecture)
|
||||
- [Application Initialization Flow](#application-initialization-flow)
|
||||
- [Email Handling](#email-handling)
|
||||
- [Docker Deployment](#docker-deployment)
|
||||
- [Using Pre-built Images](#using-pre-built-images)
|
||||
- [Available Image Tags](#available-image-tags)
|
||||
- [Building Images Locally](#building-images-locally)
|
||||
- [Docker Compose Example](#docker-compose-example)
|
||||
- [CI/CD Pipeline](#cicd-pipeline)
|
||||
- [Automated Docker Publishing](#automated-docker-publishing)
|
||||
- [Workflow Details](#workflow-details)
|
||||
- [Registry Configuration](#registry-configuration)
|
||||
- [Required Secrets](#required-secrets)
|
||||
- [License](#license)
|
||||
<!--toc:end-->
|
||||
|
||||
The backend for [phundrak.com](https://phundrak.com), built with Rust and the [Poem](https://github.com/poem-web/poem) web framework.
|
||||
|
||||
## Features
|
||||
@@ -417,7 +455,7 @@ The workflow requires these GitHub secrets:
|
||||
- `DOCKER_PASSWORD` - Registry password or token
|
||||
- `CACHIX_AUTH_TOKEN` - (Optional) For Nix build caching
|
||||
|
||||
See [.github/workflows/README.md](../.github/workflows/README.md) for detailed setup instructions.
|
||||
See [.github/workflows/README.md](./.github/workflows/README.md) for detailed setup instructions.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user