Initial commit
This commit is contained in:
commit
3264e54723
20 changed files with 2269 additions and 0 deletions
64
README.md
Normal file
64
README.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# checker-happydeliver
|
||||
|
||||
happyDomain checker that drives a [happyDeliver](https://git.nemunai.re/happyDomain/happyDeliver)
|
||||
instance to assess outbound email deliverability for a domain.
|
||||
|
||||
The checker:
|
||||
|
||||
1. Allocates a fresh recipient address on a happyDeliver instance
|
||||
(`POST /api/test`).
|
||||
2. Sends a real test message **from the tested domain** to that address,
|
||||
using SMTP credentials supplied by the user.
|
||||
3. Polls happyDeliver until the message is analysed.
|
||||
4. Stores happyDeliver's report verbatim as the observation, exposes
|
||||
per-section scores as metrics, and emits one rule per section
|
||||
(DNS, authentication, spam, blacklist, header, content, plus overall)
|
||||
that fires CRIT when the score drops under a user-configured minimum.
|
||||
|
||||
## Options
|
||||
|
||||
### Admin
|
||||
|
||||
| Id | Type | Description |
|
||||
|----------------------|--------|-------------|
|
||||
| `happydeliver_url` | string | Default base URL of the happyDeliver API. |
|
||||
| `happydeliver_token` | secret | Default bearer token for the happyDeliver API. |
|
||||
|
||||
### User / per-domain
|
||||
|
||||
| Id | Type | Default | Description |
|
||||
|----------------------|--------|-------------|-------------|
|
||||
| `happydeliver_url` | string | (admin) | Override the happyDeliver URL. |
|
||||
| `happydeliver_token` | secret | (admin) | Override the happyDeliver token. |
|
||||
| `smtp_host` | string | (none) | Submission server. **Required.** |
|
||||
| `smtp_port` | number | `587` | Submission port. |
|
||||
| `smtp_username` | string | (none) | SMTP username (omit for anonymous submission). |
|
||||
| `smtp_password` | secret | (none) | SMTP password. |
|
||||
| `smtp_tls` | choice | `starttls` | `starttls`, `tls`, or `none`. |
|
||||
| `from_address` | string | (none) | From address. **Required.** |
|
||||
| `subject_override` | string | (default) | Override the test subject. |
|
||||
| `body_text_override` | text | (default) | Override the plain-text body. |
|
||||
| `body_html_override` | text | (default) | Override the HTML body. |
|
||||
| `wait_timeout` | number | `900` | Seconds to wait for analysis. |
|
||||
| `poll_interval` | number | `5` | Seconds between polls (clamped to [2, 60]). |
|
||||
| `min_score_<section>`| number | per-section | Minimum acceptable score for each section. |
|
||||
|
||||
### Per-rule minimum scores
|
||||
|
||||
Defaults: `overall=70`, `dns=70`, `authentication=80`, `spam=70`,
|
||||
`blacklist=90`, `header=70`, `content=60`. Each can be customised through
|
||||
the rule options shown in the happyDomain UI.
|
||||
|
||||
## Metrics
|
||||
|
||||
One `happydeliver_score` metric per section, labelled with `section=<name>`
|
||||
(values: `overall`, `dns`, `authentication`, `spam`, `blacklist`, `header`,
|
||||
`content`).
|
||||
|
||||
## Build
|
||||
|
||||
```sh
|
||||
make # standalone binary (HTTP server on :8080)
|
||||
make plugin # plugin.so loadable by happyDomain
|
||||
make docker # container image
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue